shopizer-developers
Changes
pom.xml 115(+80 -35)
README.md 2(+1 -1)
RELEASE-NOTES.md 12(+9 -3)
shopizer-canadapost/.classpath 37(+37 -0)
shopizer-canadapost/.project 36(+36 -0)
shopizer-canadapost/pom.xml 203(+203 -0)
shopizer-canadapost/pom.xml.releaseBackup 203(+203 -0)
shopizer-canadapost/README.md 25(+25 -0)
shopizer-canadapost/release.properties 16(+16 -0)
shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/common/CcAddressDetailsType.java 231(+231 -0)
shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/common/CcDetailsType.java 210(+210 -0)
shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/common/CcType.java 53(+53 -0)
shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/common/LinkType.java 154(+154 -0)
shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/common/ObjectFactory.java 84(+84 -0)
shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/discovery/CcAddressDetailsType.java 231(+231 -0)
shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/discovery/CcDetailsType.java 210(+210 -0)
shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/discovery/CcType.java 53(+53 -0)
shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/discovery/Link.java 156(+156 -0)
shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/discovery/Links.java 78(+78 -0)
shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/discovery/NumberRangeType.java 93(+93 -0)
shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/discovery/ObjectFactory.java 175(+175 -0)
shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/discovery/Option.java 372(+372 -0)
shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/discovery/Options.java 226(+226 -0)
shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/discovery/package-info.java 9(+9 -0)
shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/discovery/RelType.java 58(+58 -0)
shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/discovery/Service.java 866(+866 -0)
shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/discovery/Services.java 205(+205 -0)
shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/messages/Messages.java 177(+177 -0)
shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/messages/ObjectFactory.java 55(+55 -0)
shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/messages/package-info.java 9(+9 -0)
shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/rating/CcAddressDetailsType.java 231(+231 -0)
shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/rating/CcDetailsType.java 210(+210 -0)
shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/rating/CcType.java 53(+53 -0)
shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/rating/Link.java 156(+156 -0)
shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/rating/MailingScenario.java 1264(+1264 -0)
shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/rating/ObjectFactory.java 255(+255 -0)
shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/rating/package-info.java 9(+9 -0)
shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/rating/PriceQuotes.java 1775(+1775 -0)
shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/rating/TaxType.java 95(+95 -0)
shopizer-canadapost/src/main/java/com/shopizer/modules/shipping/canadapost/CanadaPostQuoteModule.java 361(+361 -0)
shopizer-canadapost/src/test/java/com/shopizer/modules/shipping/canadapost/test/ShippingCanadaPostTestCase.java 186(+186 -0)
shopizer-canadapost/src/test/resources/spring/.svn/text-base/settings_product.json.svn-base 11(+11 -0)
shopizer-canadapost/src/test/resources/spring/.svn/text-base/settings_product_fr.json.svn-base 11(+11 -0)
shopizer-canadapost/src/test/resources/spring/.svn/text-base/shopizer-search.xml.svn-base 188(+188 -0)
shopizer-canadapost/src/test/resources/spring/.svn/text-base/spring-context-test.xml.svn-base 21(+21 -0)
shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/common/CcAddressDetailsType.class 0(+0 -0)
shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/common/CcDetailsType.class 0(+0 -0)
shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/common/CcType.class 0(+0 -0)
shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/common/LinkType.class 0(+0 -0)
shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/common/ObjectFactory.class 0(+0 -0)
shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/CcAddressDetailsType.class 0(+0 -0)
shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/CcDetailsType.class 0(+0 -0)
shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/CcType.class 0(+0 -0)
shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/Link.class 0(+0 -0)
shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/Links.class 0(+0 -0)
shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/NumberRangeType.class 0(+0 -0)
shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/ObjectFactory.class 0(+0 -0)
shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/Option$ConflictingOptions.class 0(+0 -0)
shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/Option$PrerequisiteOptions.class 0(+0 -0)
shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/Option.class 0(+0 -0)
shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/Options$Option.class 0(+0 -0)
shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/Options.class 0(+0 -0)
shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/package-info.class 0(+0 -0)
shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/RelType.class 0(+0 -0)
shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/Service$Options$Option.class 0(+0 -0)
shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/Service$Options.class 0(+0 -0)
shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/Service$Restrictions$DimensionalRestrictions.class 0(+0 -0)
shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/Service$Restrictions.class 0(+0 -0)
shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/Service.class 0(+0 -0)
shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/Services$Service.class 0(+0 -0)
shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/Services.class 0(+0 -0)
shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/messages/Messages$Message.class 0(+0 -0)
shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/messages/Messages.class 0(+0 -0)
shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/messages/ObjectFactory.class 0(+0 -0)
shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/messages/package-info.class 0(+0 -0)
shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/CcAddressDetailsType.class 0(+0 -0)
shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/CcDetailsType.class 0(+0 -0)
shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/CcType.class 0(+0 -0)
shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/MailingScenario$Destination$Domestic.class 0(+0 -0)
shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/MailingScenario$Destination$International.class 0(+0 -0)
shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/MailingScenario$Destination$UnitedStates.class 0(+0 -0)
shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/MailingScenario$Destination.class 0(+0 -0)
shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/MailingScenario$Options$Option.class 0(+0 -0)
shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/MailingScenario$Options.class 0(+0 -0)
shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/MailingScenario$ParcelCharacteristics$Dimensions.class 0(+0 -0)
shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/MailingScenario$ParcelCharacteristics.class 0(+0 -0)
shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/MailingScenario$Services.class 0(+0 -0)
shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/MailingScenario.class 0(+0 -0)
shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/ObjectFactory.class 0(+0 -0)
shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/package-info.class 0(+0 -0)
shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/PriceQuotes$PriceQuote$PriceDetails$Adjustments$Adjustment$Qualifier.class 0(+0 -0)
shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/PriceQuotes$PriceQuote$PriceDetails$Adjustments$Adjustment.class 0(+0 -0)
shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/PriceQuotes$PriceQuote$PriceDetails$Adjustments.class 0(+0 -0)
shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/PriceQuotes$PriceQuote$PriceDetails$Options$Option$Qualifier.class 0(+0 -0)
shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/PriceQuotes$PriceQuote$PriceDetails$Options$Option.class 0(+0 -0)
shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/PriceQuotes$PriceQuote$PriceDetails$Options.class 0(+0 -0)
shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/PriceQuotes$PriceQuote$PriceDetails$Taxes.class 0(+0 -0)
shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/PriceQuotes$PriceQuote$PriceDetails.class 0(+0 -0)
shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/PriceQuotes$PriceQuote$ServiceStandard.class 0(+0 -0)
shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/PriceQuotes$PriceQuote$WeightDetails.class 0(+0 -0)
shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/PriceQuotes$PriceQuote.class 0(+0 -0)
shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/PriceQuotes.class 0(+0 -0)
shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/TaxType.class 0(+0 -0)
shopizer-canadapost/target/classes/com/shopizer/modules/shipping/canadapost/CanadaPostQuoteModule.class 0(+0 -0)
shopizer-canadapost/target/classes/META-INF/maven/com.shopizer/shopizer-shipping-canadapost-module/pom.properties 7(+7 -0)
shopizer-canadapost/target/classes/META-INF/maven/com.shopizer/shopizer-shipping-canadapost-module/pom.xml 203(+203 -0)
shopizer-canadapost/target/test-classes/com/shopizer/modules/shipping/canadapost/test/ShippingCanadaPostTestCase.class 0(+0 -0)
shopizer-shipping-distance-module/.classpath 37(+37 -0)
shopizer-shipping-distance-module/.project 36(+36 -0)
shopizer-shipping-distance-module/pom.xml 225(+225 -0)
shopizer-shipping-distance-module/src/main/java/com/shopizer/modules/shipping/distance/ShippingDistancePreProcessorImpl.java 238(+238 -0)
shopizer-shipping-distance-module/src/test/java/com/shopizer/modules/shipping/distance/test/ShippingDistanceProcessorTestCase.java 69(+69 -0)
shopizer-shipping-distance-module/src/test/resources/spring/.svn/text-base/product.json.svn-base 14(+14 -0)
shopizer-shipping-distance-module/src/test/resources/spring/.svn/text-base/product_fr.json.svn-base 14(+14 -0)
shopizer-shipping-distance-module/src/test/resources/spring/.svn/text-base/settings_product.json.svn-base 11(+11 -0)
shopizer-shipping-distance-module/src/test/resources/spring/.svn/text-base/settings_product_fr.json.svn-base 11(+11 -0)
shopizer-shipping-distance-module/src/test/resources/spring/.svn/text-base/shopizer-search.xml.svn-base 188(+188 -0)
shopizer-shipping-distance-module/src/test/resources/spring/.svn/text-base/spring-context-test.xml.svn-base 21(+21 -0)
shopizer-shipping-distance-module/src/test/resources/spring/processors/shopizer-core-shipping-processors.xml 25(+25 -0)
shopizer-shipping-distance-module/target/classes/com/shopizer/modules/shipping/distance/ShippingDistancePreProcessorImpl.class 0(+0 -0)
shopizer-shipping-distance-module/target/classes/META-INF/maven/com.shopizer/shopizer-shipping-distance-processor/pom.properties 7(+7 -0)
shopizer-shipping-distance-module/target/classes/META-INF/maven/com.shopizer/shopizer-shipping-distance-processor/pom.xml 225(+225 -0)
shopizer-shipping-distance-module/target/shopizer-shipping-distance-processor-2.5.0-SNAPSHOT.jar 0(+0 -0)
shopizer-shipping-distance-module/target/test-classes/com/shopizer/modules/shipping/distance/test/ShippingDistanceProcessorTestCase.class 0(+0 -0)
shopizer-shipping-distance-module/target/test-classes/spring/processors/shopizer-core-shipping-processors.xml 25(+25 -0)
sm-core/.classpath 36(+36 -0)
sm-core/.project 29(+29 -0)
sm-core/pom.xml 948(+221 -727)
sm-core/SALESMANAGER-TEST.h2.db 0(+0 -0)
sm-core/SALESMANAGER-TEST.trace.db 1014(+1014 -0)
sm-core/src/main/java/com/salesmanager/core/business/catalog/category/dao/CategoryDao.java 52(+0 -52)
sm-core/src/main/java/com/salesmanager/core/business/catalog/category/dao/CategoryDaoImpl.java 381(+0 -381)
sm-core/src/main/java/com/salesmanager/core/business/catalog/product/dao/attribute/ProductAttributeDao.java 24(+0 -24)
sm-core/src/main/java/com/salesmanager/core/business/catalog/product/dao/attribute/ProductAttributeDaoImpl.java 122(+0 -122)
sm-core/src/main/java/com/salesmanager/core/business/catalog/product/dao/attribute/ProductOptionDao.java 31(+0 -31)
sm-core/src/main/java/com/salesmanager/core/business/catalog/product/dao/attribute/ProductOptionDaoImpl.java 126(+0 -126)
sm-core/src/main/java/com/salesmanager/core/business/catalog/product/dao/attribute/ProductOptionValueDao.java 24(+0 -24)
sm-core/src/main/java/com/salesmanager/core/business/catalog/product/dao/attribute/ProductOptionValueDaoImpl.java 122(+0 -122)
sm-core/src/main/java/com/salesmanager/core/business/catalog/product/dao/availability/ProductAvailabilityDao.java 8(+0 -8)
sm-core/src/main/java/com/salesmanager/core/business/catalog/product/dao/availability/ProductAvailabilityDaoImpl.java 14(+0 -14)
sm-core/src/main/java/com/salesmanager/core/business/catalog/product/dao/file/DigitalProductDao.java 13(+0 -13)
sm-core/src/main/java/com/salesmanager/core/business/catalog/product/dao/file/DigitalProductDaoImpl.java 58(+0 -58)
sm-core/src/main/java/com/salesmanager/core/business/catalog/product/dao/image/ProductImageDao.java 10(+0 -10)
sm-core/src/main/java/com/salesmanager/core/business/catalog/product/dao/image/ProductImageDaoImpl.java 39(+0 -39)
sm-core/src/main/java/com/salesmanager/core/business/catalog/product/dao/manufacturer/ManufacturerDao.java 23(+0 -23)
sm-core/src/main/java/com/salesmanager/core/business/catalog/product/dao/manufacturer/ManufacturerDaoImpl.java 136(+0 -136)
sm-core/src/main/java/com/salesmanager/core/business/catalog/product/dao/price/ProductPriceDao.java 8(+0 -8)
sm-core/src/main/java/com/salesmanager/core/business/catalog/product/dao/price/ProductPriceDaoImpl.java 37(+0 -37)
sm-core/src/main/java/com/salesmanager/core/business/catalog/product/dao/relationship/ProductRelationshipDao.java 31(+0 -31)
sm-core/src/main/java/com/salesmanager/core/business/catalog/product/dao/review/ProductReviewDao.java 22(+0 -22)
sm-core/src/main/java/com/salesmanager/core/business/catalog/product/dao/review/ProductReviewDaoImpl.java 175(+0 -175)
sm-core/src/main/java/com/salesmanager/core/business/catalog/product/dao/type/ProductTypeDao.java 8(+0 -8)
sm-core/src/main/java/com/salesmanager/core/business/catalog/product/dao/type/ProductTypeDaoImpl.java 14(+0 -14)
sm-core/src/main/java/com/salesmanager/core/business/catalog/product/service/availability/ProductAvailabilityService.java 12(+0 -12)
sm-core/src/main/java/com/salesmanager/core/business/catalog/product/service/price/ProductPriceService.java 15(+0 -15)
sm-core/src/main/java/com/salesmanager/core/business/catalog/product/service/review/ProductReviewService.java 22(+0 -22)
sm-core/src/main/java/com/salesmanager/core/business/catalog/product/service/type/ProductTypeService.java 11(+0 -11)
sm-core/src/main/java/com/salesmanager/core/business/catalog/product/service/type/ProductTypeServiceImpl.java 34(+0 -34)
sm-core/src/main/java/com/salesmanager/core/business/configuration/CoreApplicationConfiguration.java 14(+14 -0)
sm-core/src/main/java/com/salesmanager/core/business/customer/dao/attribute/CustomerAttributeDao.java 21(+0 -21)
sm-core/src/main/java/com/salesmanager/core/business/customer/dao/attribute/CustomerAttributeDaoImpl.java 141(+0 -141)
sm-core/src/main/java/com/salesmanager/core/business/customer/dao/attribute/CustomerOptionDao.java 28(+0 -28)
sm-core/src/main/java/com/salesmanager/core/business/customer/dao/attribute/CustomerOptionDaoImpl.java 108(+0 -108)
sm-core/src/main/java/com/salesmanager/core/business/customer/dao/attribute/CustomerOptionSetDao.java 26(+0 -26)
sm-core/src/main/java/com/salesmanager/core/business/customer/dao/attribute/CustomerOptionSetDaoImpl.java 150(+0 -150)
sm-core/src/main/java/com/salesmanager/core/business/customer/dao/attribute/CustomerOptionValueDao.java 18(+0 -18)
sm-core/src/main/java/com/salesmanager/core/business/customer/dao/attribute/CustomerOptionValueDaoImpl.java 93(+0 -93)
sm-core/src/main/java/com/salesmanager/core/business/customer/exception/CustomerNotFoundException.java 22(+0 -22)
sm-core/src/main/java/com/salesmanager/core/business/customer/service/attribute/CustomerAttributeService.java 29(+0 -29)
sm-core/src/main/java/com/salesmanager/core/business/customer/service/attribute/CustomerAttributeServiceImpl.java 78(+0 -78)
sm-core/src/main/java/com/salesmanager/core/business/customer/service/attribute/CustomerOptionService.java 27(+0 -27)
sm-core/src/main/java/com/salesmanager/core/business/customer/service/attribute/CustomerOptionServiceImpl.java 94(+0 -94)
sm-core/src/main/java/com/salesmanager/core/business/customer/service/attribute/CustomerOptionSetService.java 35(+0 -35)
sm-core/src/main/java/com/salesmanager/core/business/customer/service/attribute/CustomerOptionSetServiceImpl.java 84(+0 -84)
sm-core/src/main/java/com/salesmanager/core/business/customer/service/attribute/CustomerOptionValueService.java 24(+0 -24)
sm-core/src/main/java/com/salesmanager/core/business/customer/service/attribute/CustomerOptionValueServiceImpl.java 94(+0 -94)
sm-core/src/main/java/com/salesmanager/core/business/customer/service/CustomerService.java 38(+0 -38)
sm-core/src/main/java/com/salesmanager/core/business/generic/dao/SalesManagerEntityDao.java 104(+0 -104)
sm-core/src/main/java/com/salesmanager/core/business/generic/dao/SalesManagerEntityDaoImpl.java 102(+0 -102)
sm-core/src/main/java/com/salesmanager/core/business/generic/dao/SalesManagerJpaDaoSupport.java 221(+0 -221)
sm-core/src/main/java/com/salesmanager/core/business/generic/service/SalesManagerEntityService.java 91(+0 -91)
sm-core/src/main/java/com/salesmanager/core/business/generic/service/SalesManagerEntityServiceImpl.java 121(+0 -121)
sm-core/src/main/java/com/salesmanager/core/business/generic/util/EntityManagerUtils.java 53(+0 -53)
sm-core/src/main/java/com/salesmanager/core/business/generic/util/GenericEntityUtils.java 44(+0 -44)
sm-core/src/main/java/com/salesmanager/core/business/merchant/dao/MerchantStoreDaoImpl.java 146(+0 -146)
sm-core/src/main/java/com/salesmanager/core/business/merchant/service/MerchantStoreService.java 20(+0 -20)
sm-core/src/main/java/com/salesmanager/core/business/merchant/service/MerchantStoreServiceImpl.java 159(+0 -159)
sm-core/src/main/java/com/salesmanager/core/business/modules/cms/common/StaticContentData.java 52(+52 -0)
sm-core/src/main/java/com/salesmanager/core/business/modules/cms/content/ContentImageGet.java 15(+15 -0)
sm-core/src/main/java/com/salesmanager/core/business/modules/cms/content/ContentImageRemove.java 14(+14 -0)
sm-core/src/main/java/com/salesmanager/core/business/modules/cms/content/infinispan/CmsStaticContentFileManagerImpl.java 31(+17 -14)
sm-core/src/main/java/com/salesmanager/core/business/modules/cms/content/local/CmsStaticContentFileManagerImpl.java 524(+524 -0)
sm-core/src/main/java/com/salesmanager/core/business/modules/cms/content/StaticContentFileManager.java 13(+13 -0)
sm-core/src/main/java/com/salesmanager/core/business/modules/cms/content/StaticContentFileManagerImpl.java 111(+111 -0)
sm-core/src/main/java/com/salesmanager/core/business/modules/cms/impl/CacheManagerImpl.java 65(+65 -0)
sm-core/src/main/java/com/salesmanager/core/business/modules/cms/impl/LocalCacheManagerImpl.java 19(+19 -0)
sm-core/src/main/java/com/salesmanager/core/business/modules/cms/impl/StaticContentCacheManagerImpl.java 42(+42 -0)
sm-core/src/main/java/com/salesmanager/core/business/modules/cms/impl/StoreCacheManagerImpl.java 42(+42 -0)
sm-core/src/main/java/com/salesmanager/core/business/modules/cms/impl/VendorCacheManager.java 41(+41 -0)
sm-core/src/main/java/com/salesmanager/core/business/modules/cms/product/infinispan/CmsImageFileManagerImpl.java 37(+20 -17)
sm-core/src/main/java/com/salesmanager/core/business/modules/cms/product/local/CmsImageFileManagerImpl.java 327(+327 -0)
sm-core/src/main/java/com/salesmanager/core/business/modules/cms/product/ProductFileManager.java 11(+11 -0)
sm-core/src/main/java/com/salesmanager/core/business/modules/cms/product/ProductFileManagerImpl.java 24(+12 -12)
sm-core/src/main/java/com/salesmanager/core/business/modules/cms/product/ProductImageGet.java 28(+28 -0)
sm-core/src/main/java/com/salesmanager/core/business/modules/cms/product/ProductImagePut.java 14(+14 -0)
sm-core/src/main/java/com/salesmanager/core/business/modules/cms/product/ProductImageRemove.java 17(+17 -0)
sm-core/src/main/java/com/salesmanager/core/business/modules/email/HtmlEmailSenderImpl.java 195(+195 -0)
sm-core/src/main/java/com/salesmanager/core/business/modules/integration/IntegrationException.java 62(+62 -0)
sm-core/src/main/java/com/salesmanager/core/business/modules/integration/payment/impl/BeanStreamPayment.java 62(+29 -33)
sm-core/src/main/java/com/salesmanager/core/business/modules/integration/payment/impl/MoneyOrderPayment.java 119(+119 -0)
sm-core/src/main/java/com/salesmanager/core/business/modules/integration/payment/impl/PayPalExpressCheckoutPayment.java 59(+30 -29)
sm-core/src/main/java/com/salesmanager/core/business/modules/integration/payment/impl/PayPalRestPayment.java 251(+251 -0)
sm-core/src/main/java/com/salesmanager/core/business/modules/integration/payment/impl/StripePayment.java 552(+552 -0)
sm-core/src/main/java/com/salesmanager/core/business/modules/integration/shipping/impl/CustomShippingQuoteRules.java 181(+181 -0)
sm-core/src/main/java/com/salesmanager/core/business/modules/integration/shipping/impl/CustomWeightBasedShippingQuote.java 161(+161 -0)
sm-core/src/main/java/com/salesmanager/core/business/modules/integration/shipping/impl/DefaultPackagingImpl.java 42(+21 -21)
sm-core/src/main/java/com/salesmanager/core/business/modules/integration/shipping/impl/PriceByDistanceShippingQuoteRules.java 124(+124 -0)
sm-core/src/main/java/com/salesmanager/core/business/modules/integration/shipping/impl/ShippingDecisionPreProcessorImpl.java 171(+171 -0)
sm-core/src/main/java/com/salesmanager/core/business/modules/integration/shipping/impl/ShippingInputParameters.java 76(+76 -0)
sm-core/src/main/java/com/salesmanager/core/business/modules/integration/shipping/impl/StorePickupShippingQuote.java 177(+177 -0)
sm-core/src/main/java/com/salesmanager/core/business/modules/integration/shipping/impl/UPSShippingQuote.java 94(+64 -30)
sm-core/src/main/java/com/salesmanager/core/business/modules/integration/shipping/impl/USPSShippingQuote.java 99(+64 -35)
sm-core/src/main/java/com/salesmanager/core/business/modules/order/ODSInvoiceModule.java 40(+22 -18)
sm-core/src/main/java/com/salesmanager/core/business/order/dao/orderaccount/OrderAccountDao.java 9(+0 -9)
sm-core/src/main/java/com/salesmanager/core/business/order/dao/orderaccount/OrderAccountDaoImpl.java 15(+0 -15)
sm-core/src/main/java/com/salesmanager/core/business/order/dao/orderproduct/OrderProductDao.java 8(+0 -8)
sm-core/src/main/java/com/salesmanager/core/business/order/dao/orderproduct/OrderProductDaoImpl.java 15(+0 -15)
sm-core/src/main/java/com/salesmanager/core/business/order/dao/orderproduct/OrderProductDownloadDao.java 12(+0 -12)
sm-core/src/main/java/com/salesmanager/core/business/order/dao/orderproduct/OrderProductDownloadDaoImpl.java 59(+0 -59)
sm-core/src/main/java/com/salesmanager/core/business/order/service/orderproduct/OrderProductDownloadService.java 17(+0 -17)
sm-core/src/main/java/com/salesmanager/core/business/order/service/orderproduct/OrderProductDownloadServiceImpl.java 58(+0 -58)
sm-core/src/main/java/com/salesmanager/core/business/payments/dao/TransactionDaoImpl.java 33(+0 -33)
sm-core/src/main/java/com/salesmanager/core/business/payments/service/PaymentService.java 103(+0 -103)
sm-core/src/main/java/com/salesmanager/core/business/payments/service/TransactionService.java 27(+0 -27)
sm-core/src/main/java/com/salesmanager/core/business/reference/country/dao/CountryDao.java 12(+0 -12)
sm-core/src/main/java/com/salesmanager/core/business/reference/country/dao/CountryDaoImpl.java 36(+0 -36)
sm-core/src/main/java/com/salesmanager/core/business/reference/country/service/CountryService.java 25(+0 -25)
sm-core/src/main/java/com/salesmanager/core/business/reference/country/service/CountryServiceImpl.java 125(+0 -125)
sm-core/src/main/java/com/salesmanager/core/business/reference/currency/dao/CurrencyDao.java 8(+0 -8)
sm-core/src/main/java/com/salesmanager/core/business/reference/currency/dao/CurrencyDaoImpl.java 35(+0 -35)
sm-core/src/main/java/com/salesmanager/core/business/reference/currency/service/CurrencyServiceImpl.java 25(+0 -25)
sm-core/src/main/java/com/salesmanager/core/business/reference/language/dao/LanguageDao.java 7(+0 -7)
sm-core/src/main/java/com/salesmanager/core/business/reference/language/dao/LanguageDaoImpl.java 10(+0 -10)
sm-core/src/main/java/com/salesmanager/core/business/reference/language/service/LanguageService.java 22(+0 -22)
sm-core/src/main/java/com/salesmanager/core/business/reference/language/service/LanguageServiceImpl.java 108(+0 -108)
sm-core/src/main/java/com/salesmanager/core/business/reference/zone/imports/ZoneLoader.java 31(+0 -31)
sm-core/src/main/java/com/salesmanager/core/business/reference/zone/imports/ZoneTransient.java 28(+0 -28)
sm-core/src/main/java/com/salesmanager/core/business/reference/zone/service/ZoneService.java 25(+0 -25)
sm-core/src/main/java/com/salesmanager/core/business/reference/zone/service/ZoneServiceImpl.java 132(+0 -132)
sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/category/CategoryRepository.java 70(+70 -0)
sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/category/CategoryRepositoryCustom.java 15(+15 -0)
sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/category/CategoryRepositoryImpl.java 96(+96 -0)
sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/product/attribute/ProductAttributeRepository.java 26(+26 -0)
sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/product/attribute/ProductOptionRepository.java 28(+28 -0)
sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/product/attribute/ProductOptionValueRepository.java 29(+29 -0)
sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/product/availability/ProductAvailabilityRepository.java 9(+9 -0)
sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/product/file/DigitalProductRepository.java 17(+17 -0)
sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/product/image/ProductImageRepository.java 15(+15 -0)
sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/product/manufacturer/ManufacturerRepository.java 29(+29 -0)
sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/product/price/ProductPriceRepository.java 15(+15 -0)
sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/product/ProductRepository.java 10(+10 -0)
sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/product/ProductRepositoryCustom.java 45(+45 -0)
sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/product/ProductRepositoryImpl.java 842(+379 -463)
sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/product/relationship/ProductRelationshipRepository.java 10(+10 -0)
sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/product/relationship/ProductRelationshipRepositoryCustom.java 31(+31 -0)
sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/product/relationship/ProductRelationshipRepositoryImpl.java 594(+295 -299)
sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/product/review/ProductReviewRepository.java 32(+32 -0)
sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/product/type/ProductTypeRepository.java 10(+10 -0)
sm-core/src/main/java/com/salesmanager/core/business/repositories/content/ContentRepository.java 38(+38 -0)
sm-core/src/main/java/com/salesmanager/core/business/repositories/content/ContentRepositoryCustom.java 19(+19 -0)
sm-core/src/main/java/com/salesmanager/core/business/repositories/content/ContentRepositoryImpl.java 108(+108 -0)
sm-core/src/main/java/com/salesmanager/core/business/repositories/customer/attribute/CustomerAttributeRepository.java 27(+27 -0)
sm-core/src/main/java/com/salesmanager/core/business/repositories/customer/attribute/CustomerOptionRepository.java 22(+22 -0)
sm-core/src/main/java/com/salesmanager/core/business/repositories/customer/attribute/CustomerOptionSetRepository.java 25(+25 -0)
sm-core/src/main/java/com/salesmanager/core/business/repositories/customer/attribute/CustomerOptionValueRepository.java 23(+23 -0)
sm-core/src/main/java/com/salesmanager/core/business/repositories/customer/CustomerRepository.java 27(+27 -0)
sm-core/src/main/java/com/salesmanager/core/business/repositories/customer/CustomerRepositoryCustom.java 14(+14 -0)
sm-core/src/main/java/com/salesmanager/core/business/repositories/customer/CustomerRepositoryImpl.java 148(+148 -0)
sm-core/src/main/java/com/salesmanager/core/business/repositories/merchant/MerchantRepository.java 12(+12 -0)
sm-core/src/main/java/com/salesmanager/core/business/repositories/order/orderaccount/OrderAccountRepository.java 10(+10 -0)
sm-core/src/main/java/com/salesmanager/core/business/repositories/order/orderproduct/OrderProductDownloadRepository.java 18(+18 -0)
sm-core/src/main/java/com/salesmanager/core/business/repositories/order/orderproduct/OrderProductRepository.java 10(+10 -0)
sm-core/src/main/java/com/salesmanager/core/business/repositories/order/OrderRepository.java 12(+12 -0)
sm-core/src/main/java/com/salesmanager/core/business/repositories/order/OrderRepositoryCustom.java 15(+15 -0)
sm-core/src/main/java/com/salesmanager/core/business/repositories/order/OrderRepositoryImpl.java 121(+121 -0)
sm-core/src/main/java/com/salesmanager/core/business/repositories/order/OrderTotalRepository.java 10(+10 -0)
sm-core/src/main/java/com/salesmanager/core/business/repositories/payments/TransactionRepository.java 14(+14 -0)
sm-core/src/main/java/com/salesmanager/core/business/repositories/reference/country/CountryRepository.java 20(+20 -0)
sm-core/src/main/java/com/salesmanager/core/business/repositories/reference/currency/CurrencyRepository.java 11(+11 -0)
sm-core/src/main/java/com/salesmanager/core/business/repositories/reference/language/LanguageRepository.java 14(+14 -0)
sm-core/src/main/java/com/salesmanager/core/business/repositories/reference/zone/ZoneRepository.java 21(+21 -0)
sm-core/src/main/java/com/salesmanager/core/business/repositories/shipping/ShippingOriginRepository.java 12(+12 -0)
sm-core/src/main/java/com/salesmanager/core/business/repositories/shoppingcart/ShoppingCartAttributeRepository.java 9(+9 -0)
sm-core/src/main/java/com/salesmanager/core/business/repositories/shoppingcart/ShoppingCartItemRepository.java 9(+9 -0)
sm-core/src/main/java/com/salesmanager/core/business/repositories/shoppingcart/ShoppingCartRepository.java 24(+24 -0)
sm-core/src/main/java/com/salesmanager/core/business/repositories/system/CustomerOptinRepository.java 14(+14 -0)
sm-core/src/main/java/com/salesmanager/core/business/repositories/system/MerchantConfigurationRepository.java 24(+24 -0)
sm-core/src/main/java/com/salesmanager/core/business/repositories/system/MerchantLogRepository.java 13(+13 -0)
sm-core/src/main/java/com/salesmanager/core/business/repositories/system/ModuleConfigurationRepository.java 16(+16 -0)
sm-core/src/main/java/com/salesmanager/core/business/repositories/system/OptinRepository.java 14(+14 -0)
sm-core/src/main/java/com/salesmanager/core/business/repositories/system/SystemConfigurationRepository.java 12(+12 -0)
sm-core/src/main/java/com/salesmanager/core/business/repositories/system/SystemNotificationRepository.java 10(+10 -0)
sm-core/src/main/java/com/salesmanager/core/business/repositories/tax/TaxClassRepository.java 21(+21 -0)
sm-core/src/main/java/com/salesmanager/core/business/repositories/tax/TaxRateRepository.java 31(+31 -0)
sm-core/src/main/java/com/salesmanager/core/business/repositories/user/GroupRepository.java 28(+28 -0)
sm-core/src/main/java/com/salesmanager/core/business/repositories/user/PermissionRepository.java 22(+22 -0)
sm-core/src/main/java/com/salesmanager/core/business/repositories/user/PermissionRepositoryCustom.java 14(+14 -0)
sm-core/src/main/java/com/salesmanager/core/business/repositories/user/PermissionRepositoryImpl.java 94(+94 -0)
sm-core/src/main/java/com/salesmanager/core/business/repositories/user/UserRepository.java 23(+23 -0)
sm-core/src/main/java/com/salesmanager/core/business/services/catalog/category/CategoryService.java 14(+7 -7)
sm-core/src/main/java/com/salesmanager/core/business/services/catalog/category/CategoryServiceImpl.java 89(+45 -44)
sm-core/src/main/java/com/salesmanager/core/business/services/catalog/product/attribute/ProductAttributeService.java 14(+7 -7)
sm-core/src/main/java/com/salesmanager/core/business/services/catalog/product/attribute/ProductAttributeServiceImpl.java 50(+25 -25)
sm-core/src/main/java/com/salesmanager/core/business/services/catalog/product/attribute/ProductOptionService.java 12(+6 -6)
sm-core/src/main/java/com/salesmanager/core/business/services/catalog/product/attribute/ProductOptionServiceImpl.java 39(+20 -19)
sm-core/src/main/java/com/salesmanager/core/business/services/catalog/product/attribute/ProductOptionValueService.java 14(+6 -8)
sm-core/src/main/java/com/salesmanager/core/business/services/catalog/product/attribute/ProductOptionValueServiceImpl.java 54(+22 -32)
sm-core/src/main/java/com/salesmanager/core/business/services/catalog/product/availability/ProductAvailabilityService.java 12(+12 -0)
sm-core/src/main/java/com/salesmanager/core/business/services/catalog/product/availability/ProductAvailabilityServiceImpl.java 23(+12 -11)
sm-core/src/main/java/com/salesmanager/core/business/services/catalog/product/file/DigitalProductService.java 16(+8 -8)
sm-core/src/main/java/com/salesmanager/core/business/services/catalog/product/file/DigitalProductServiceImpl.java 41(+21 -20)
sm-core/src/main/java/com/salesmanager/core/business/services/catalog/product/image/ProductImageService.java 16(+8 -8)
sm-core/src/main/java/com/salesmanager/core/business/services/catalog/product/image/ProductImageServiceImpl.java 73(+28 -45)
sm-core/src/main/java/com/salesmanager/core/business/services/catalog/product/manufacturer/ManufacturerService.java 16(+8 -8)
sm-core/src/main/java/com/salesmanager/core/business/services/catalog/product/manufacturer/ManufacturerServiceImpl.java 54(+24 -30)
sm-core/src/main/java/com/salesmanager/core/business/services/catalog/product/price/ProductPriceService.java 15(+15 -0)
sm-core/src/main/java/com/salesmanager/core/business/services/catalog/product/price/ProductPriceServiceImpl.java 21(+11 -10)
sm-core/src/main/java/com/salesmanager/core/business/services/catalog/product/PricingService.java 16(+8 -8)
sm-core/src/main/java/com/salesmanager/core/business/services/catalog/product/PricingServiceImpl.java 23(+12 -11)
sm-core/src/main/java/com/salesmanager/core/business/services/catalog/product/ProductService.java 23(+11 -12)
sm-core/src/main/java/com/salesmanager/core/business/services/catalog/product/ProductServiceImpl.java 215(+150 -65)
sm-core/src/main/java/com/salesmanager/core/business/services/catalog/product/relationship/ProductRelationshipService.java 16(+8 -8)
sm-core/src/main/java/com/salesmanager/core/business/services/catalog/product/relationship/ProductRelationshipServiceImpl.java 51(+26 -25)
sm-core/src/main/java/com/salesmanager/core/business/services/catalog/product/review/ProductReviewService.java 27(+27 -0)
sm-core/src/main/java/com/salesmanager/core/business/services/catalog/product/review/ProductReviewServiceImpl.java 50(+29 -21)
sm-core/src/main/java/com/salesmanager/core/business/services/catalog/product/type/ProductTypeService.java 11(+11 -0)
sm-core/src/main/java/com/salesmanager/core/business/services/catalog/product/type/ProductTypeServiceImpl.java 34(+34 -0)
sm-core/src/main/java/com/salesmanager/core/business/services/common/generic/SalesManagerEntityService.java 76(+76 -0)
sm-core/src/main/java/com/salesmanager/core/business/services/common/generic/SalesManagerEntityServiceImpl.java 79(+79 -0)
sm-core/src/main/java/com/salesmanager/core/business/services/common/generic/TransactionalAspectAwareService.java 4(+2 -2)
sm-core/src/main/java/com/salesmanager/core/business/services/content/ContentService.java 25(+13 -12)
sm-core/src/main/java/com/salesmanager/core/business/services/content/ContentServiceImpl.java 97(+55 -42)
sm-core/src/main/java/com/salesmanager/core/business/services/customer/attribute/CustomerAttributeService.java 31(+31 -0)
sm-core/src/main/java/com/salesmanager/core/business/services/customer/attribute/CustomerAttributeServiceImpl.java 79(+79 -0)
sm-core/src/main/java/com/salesmanager/core/business/services/customer/attribute/CustomerOptionService.java 28(+28 -0)
sm-core/src/main/java/com/salesmanager/core/business/services/customer/attribute/CustomerOptionServiceImpl.java 97(+97 -0)
sm-core/src/main/java/com/salesmanager/core/business/services/customer/attribute/CustomerOptionSetService.java 36(+36 -0)
sm-core/src/main/java/com/salesmanager/core/business/services/customer/attribute/CustomerOptionSetServiceImpl.java 87(+87 -0)
sm-core/src/main/java/com/salesmanager/core/business/services/customer/attribute/CustomerOptionValueService.java 25(+25 -0)
sm-core/src/main/java/com/salesmanager/core/business/services/customer/attribute/CustomerOptionValueServiceImpl.java 96(+96 -0)
sm-core/src/main/java/com/salesmanager/core/business/services/customer/CustomerService.java 40(+40 -0)
sm-core/src/main/java/com/salesmanager/core/business/services/customer/CustomerServiceImpl.java 55(+29 -26)
sm-core/src/main/java/com/salesmanager/core/business/services/merchant/MerchantStoreService.java 16(+16 -0)
sm-core/src/main/java/com/salesmanager/core/business/services/merchant/MerchantStoreServiceImpl.java 141(+141 -0)
sm-core/src/main/java/com/salesmanager/core/business/services/order/orderproduct/OrderProductDownloadService.java 18(+18 -0)
sm-core/src/main/java/com/salesmanager/core/business/services/order/orderproduct/OrderProductDownloadServiceImpl.java 38(+38 -0)
sm-core/src/main/java/com/salesmanager/core/business/services/order/OrderServiceImpl.java 106(+54 -52)
sm-core/src/main/java/com/salesmanager/core/business/services/payments/PaymentService.java 103(+103 -0)
sm-core/src/main/java/com/salesmanager/core/business/services/payments/PaymentServiceImpl.java 84(+49 -35)
sm-core/src/main/java/com/salesmanager/core/business/services/payments/TransactionService.java 29(+29 -0)
sm-core/src/main/java/com/salesmanager/core/business/services/payments/TransactionServiceImpl.java 38(+20 -18)
sm-core/src/main/java/com/salesmanager/core/business/services/reference/country/CountryService.java 25(+25 -0)
sm-core/src/main/java/com/salesmanager/core/business/services/reference/country/CountryServiceImpl.java 123(+123 -0)
sm-core/src/main/java/com/salesmanager/core/business/services/reference/currency/CurrencyService.java 6(+3 -3)
sm-core/src/main/java/com/salesmanager/core/business/services/reference/currency/CurrencyServiceImpl.java 28(+28 -0)
sm-core/src/main/java/com/salesmanager/core/business/services/reference/init/InitializationDatabase.java 4(+2 -2)
sm-core/src/main/java/com/salesmanager/core/business/services/reference/init/InitializationDatabaseImpl.java 69(+35 -34)
sm-core/src/main/java/com/salesmanager/core/business/services/reference/language/LanguageService.java 22(+22 -0)
sm-core/src/main/java/com/salesmanager/core/business/services/reference/language/LanguageServiceImpl.java 106(+106 -0)
sm-core/src/main/java/com/salesmanager/core/business/services/reference/loader/ConfigurationModulesLoader.java 107(+107 -0)
sm-core/src/main/java/com/salesmanager/core/business/services/reference/loader/IntegrationModulesLoader.java 190(+190 -0)
sm-core/src/main/java/com/salesmanager/core/business/services/reference/loader/ZonesLoader.java 143(+143 -0)
sm-core/src/main/java/com/salesmanager/core/business/services/reference/zone/ZoneService.java 25(+25 -0)
sm-core/src/main/java/com/salesmanager/core/business/services/reference/zone/ZoneServiceImpl.java 132(+132 -0)
sm-core/src/main/java/com/salesmanager/core/business/services/reference/zone/ZoneTransient.java 28(+28 -0)
sm-core/src/main/java/com/salesmanager/core/business/services/search/SearchServiceImpl.java 74(+37 -37)
sm-core/src/main/java/com/salesmanager/core/business/services/shipping/ShippingOriginService.java 19(+19 -0)
sm-core/src/main/java/com/salesmanager/core/business/services/shipping/ShippingOriginServiceImpl.java 40(+40 -0)
sm-core/src/main/java/com/salesmanager/core/business/services/shipping/ShippingService.java 208(+208 -0)
sm-core/src/main/java/com/salesmanager/core/business/services/shipping/ShippingServiceImpl.java 209(+156 -53)
sm-core/src/main/java/com/salesmanager/core/business/services/shoppingcart/ShoppingCartCalculationService.java 48(+48 -0)
sm-core/src/main/java/com/salesmanager/core/business/services/shoppingcart/ShoppingCartCalculationServiceImpl.java 121(+121 -0)
sm-core/src/main/java/com/salesmanager/core/business/services/shoppingcart/ShoppingCartService.java 80(+80 -0)
sm-core/src/main/java/com/salesmanager/core/business/services/shoppingcart/ShoppingCartServiceImpl.java 538(+274 -264)
sm-core/src/main/java/com/salesmanager/core/business/services/system/EmailServiceImpl.java 67(+67 -0)
sm-core/src/main/java/com/salesmanager/core/business/services/system/MerchantConfigurationService.java 31(+31 -0)
sm-core/src/main/java/com/salesmanager/core/business/services/system/MerchantConfigurationServiceImpl.java 115(+115 -0)
sm-core/src/main/java/com/salesmanager/core/business/services/system/MerchantLogService.java 9(+9 -0)
sm-core/src/main/java/com/salesmanager/core/business/services/system/MerchantLogServiceImpl.java 38(+38 -0)
sm-core/src/main/java/com/salesmanager/core/business/services/system/ModuleConfigurationService.java 20(+20 -0)
sm-core/src/main/java/com/salesmanager/core/business/services/system/ModuleConfigurationServiceImpl.java 183(+183 -0)
sm-core/src/main/java/com/salesmanager/core/business/services/system/SystemConfigurationService.java 12(+12 -0)
sm-core/src/main/java/com/salesmanager/core/business/services/system/SystemConfigurationServiceImpl.java 34(+34 -0)
sm-core/src/main/java/com/salesmanager/core/business/services/tax/TaxClassServiceImpl.java 57(+57 -0)
sm-core/src/main/java/com/salesmanager/core/business/services/tax/TaxRateServiceImpl.java 73(+73 -0)
sm-core/src/main/java/com/salesmanager/core/business/services/user/PermissionService.java 33(+33 -0)
sm-core/src/main/java/com/salesmanager/core/business/services/user/PermissionServiceImpl.java 90(+90 -0)
sm-core/src/main/java/com/salesmanager/core/business/services/user/UserServiceLDAPImpl.java 99(+99 -0)
sm-core/src/main/java/com/salesmanager/core/business/shipping/dao/ShippingOriginDAOImpl.java 50(+0 -50)
sm-core/src/main/java/com/salesmanager/core/business/shipping/service/ShippingOriginService.java 20(+0 -20)
sm-core/src/main/java/com/salesmanager/core/business/shipping/service/ShippingOriginServiceImpl.java 35(+0 -35)
sm-core/src/main/java/com/salesmanager/core/business/shipping/service/ShippingService.java 198(+0 -198)
sm-core/src/main/java/com/salesmanager/core/business/shoppingcart/dao/ShoppingCartDao.java 34(+0 -34)
sm-core/src/main/java/com/salesmanager/core/business/shoppingcart/dao/ShoppingCartDaoImpl.java 160(+0 -160)
sm-core/src/main/java/com/salesmanager/core/business/shoppingcart/dao/ShoppingCartItemDao.java 10(+0 -10)
sm-core/src/main/java/com/salesmanager/core/business/shoppingcart/dao/ShoppingCartItemDaoImpl.java 14(+0 -14)
sm-core/src/main/java/com/salesmanager/core/business/shoppingcart/service/ShoppingCartCalculationService.java 43(+0 -43)
sm-core/src/main/java/com/salesmanager/core/business/shoppingcart/service/ShoppingCartCalculationServiceImpl.java 123(+0 -123)
sm-core/src/main/java/com/salesmanager/core/business/shoppingcart/service/ShoppingCartService.java 86(+0 -86)
sm-core/src/main/java/com/salesmanager/core/business/system/dao/MerchantConfigurationDao.java 21(+0 -21)
sm-core/src/main/java/com/salesmanager/core/business/system/dao/MerchantConfigurationDaoImpl.java 69(+0 -69)
sm-core/src/main/java/com/salesmanager/core/business/system/dao/ModuleConfigurationDao.java 14(+0 -14)
sm-core/src/main/java/com/salesmanager/core/business/system/dao/ModuleConfigurationDaoImpl.java 52(+0 -52)
sm-core/src/main/java/com/salesmanager/core/business/system/dao/SystemConfigurationDao.java 8(+0 -8)
sm-core/src/main/java/com/salesmanager/core/business/system/dao/SystemConfigurationDaoImpl.java 14(+0 -14)
sm-core/src/main/java/com/salesmanager/core/business/system/dao/SystemNotificationDaoImpl.java 14(+0 -14)
sm-core/src/main/java/com/salesmanager/core/business/system/service/EmailServiceImpl.java 66(+0 -66)
sm-core/src/main/java/com/salesmanager/core/business/system/service/MerchantConfigurationService.java 31(+0 -31)
sm-core/src/main/java/com/salesmanager/core/business/system/service/MerchantConfigurationServiceImpl.java 116(+0 -116)
sm-core/src/main/java/com/salesmanager/core/business/system/service/MerchantLogService.java 12(+0 -12)
sm-core/src/main/java/com/salesmanager/core/business/system/service/MerchantLogServiceImpl.java 36(+0 -36)
sm-core/src/main/java/com/salesmanager/core/business/system/service/ModuleConfigurationService.java 20(+0 -20)
sm-core/src/main/java/com/salesmanager/core/business/system/service/ModuleConfigurationServiceImpl.java 190(+0 -190)
sm-core/src/main/java/com/salesmanager/core/business/system/service/SystemConfigurationService.java 12(+0 -12)
sm-core/src/main/java/com/salesmanager/core/business/system/service/SystemConfigurationServiceImpl.java 34(+0 -34)
sm-core/src/main/java/com/salesmanager/core/business/tax/dao/taxclass/TaxClassDaoImpl.java 78(+0 -78)
sm-core/src/main/java/com/salesmanager/core/business/tax/dao/taxrate/TaxRateDaoImpl.java 185(+0 -185)
sm-core/src/main/java/com/salesmanager/core/business/tax/model/taxrate/TaxRateDescription.java 52(+0 -52)
sm-core/src/main/java/com/salesmanager/core/business/tax/service/TaxClassServiceImpl.java 56(+0 -56)
sm-core/src/main/java/com/salesmanager/core/business/user/service/PermissionServiceImpl.java 100(+0 -100)
sm-core/src/main/java/com/salesmanager/core/business/user/service/UserServiceLDAPImpl.java 106(+0 -106)
sm-core/src/main/java/com/salesmanager/core/business/utils/ajax/AjaxPageableResponse.java 108(+108 -0)
sm-core/src/main/java/com/salesmanager/core/business/utils/ApplicationContextListenerUtils.java 20(+20 -0)
sm-core/src/main/java/com/salesmanager/core/business/utils/query/ProductQueryBuilder.java 67(+67 -0)
sm-core/src/main/java/com/salesmanager/core/modules/cms/content/StaticContentFileManager.java 13(+0 -13)
sm-core/src/main/java/com/salesmanager/core/modules/cms/content/StaticContentFileManagerImpl.java 110(+0 -110)
sm-core/src/main/java/com/salesmanager/core/modules/cms/impl/StaticContentCacheManagerImpl.java 42(+0 -42)
sm-core/src/main/java/com/salesmanager/core/modules/integration/IntegrationException.java 61(+0 -61)
sm-core/src/main/java/com/salesmanager/core/modules/integration/payment/impl/MoneyOrderPayment.java 119(+0 -119)
sm-core/src/main/java/com/salesmanager/core/modules/integration/payment/impl/PayPalRestPayment.java 262(+0 -262)
sm-core/src/main/java/com/salesmanager/core/modules/integration/payment/impl/StripePayment.java 745(+0 -745)
sm-core/src/main/java/com/salesmanager/core/modules/integration/shipping/impl/CanadaPostShippingQuote.java 565(+0 -565)
sm-core/src/main/java/com/salesmanager/core/modules/integration/shipping/impl/CustomShippingQuoteRules.java 159(+0 -159)
sm-core/src/main/java/com/salesmanager/core/modules/integration/shipping/impl/CustomWeightBasedShippingQuote.java 156(+0 -156)
sm-core/src/main/java/com/salesmanager/core/modules/integration/shipping/impl/ShippingDecisionPreProcessorImpl.java 159(+0 -159)
sm-core/src/main/java/com/salesmanager/core/modules/integration/shipping/impl/ShippingInputParameters.java 76(+0 -76)
sm-core/src/main/java/com/salesmanager/core/utils/reference/ConfigurationModulesLoader.java 103(+0 -103)
sm-core/src/main/java/com/salesmanager/core/utils/reference/IntegrationModulesLoader.java 190(+0 -190)
sm-core/src/main/resources/search/product.json 26(+13 -13)
sm-core/src/main/resources/spring/shopizer-core-modules.xml 421(+225 -196)
sm-core/src/test/java/com/salesmanager/test/catalog/SearchByProductAttributeTestCase.java 443(+0 -443)
sm-core/src/test/java/com/salesmanager/test/common/AbstractSalesManagerCoreTestCase.java 169(+169 -0)
sm-core/src/test/java/com/salesmanager/test/core/SalesManagerCoreTestExecutionListener.java 29(+0 -29)
sm-core/src/test/resources/database.properties 33(+17 -16)
sm-core/target/classes/configs.properties 16(+16 -0)
sm-core/target/classes/reference/zoneconfig.json 1888(+1888 -0)
sm-core/target/classes/search/keyword.json 11(+11 -0)
sm-core/target/classes/search/product.json 15(+15 -0)
sm-core/target/classes/spring/ehcache.xml 27(+27 -0)
sm-core/target/classes/spring/shopizer-search.xml 204(+204 -0)
sm-core/target/test-classes/log4j.properties 14(+14 -0)
sm-core-model/.classpath 27(+27 -0)
sm-core-model/.project 36(+36 -0)
sm-core-model/pom.xml 547(+50 -497)
sm-core-model/pom.xml.bak 34(+34 -0)
sm-core-model/src/main/java/com/salesmanager/core/business/exception/ConversionException.java 2(+1 -1)
sm-core-model/src/main/java/com/salesmanager/core/model/catalog/category/CategoryDescription.java 10(+6 -4)
sm-core-model/src/main/java/com/salesmanager/core/model/catalog/product/attribute/AttributeCriteria.java 2(+1 -1)
sm-core-model/src/main/java/com/salesmanager/core/model/catalog/product/attribute/ProductAttribute.java 6(+3 -3)
sm-core-model/src/main/java/com/salesmanager/core/model/catalog/product/attribute/ProductOption.java 14(+8 -6)
sm-core-model/src/main/java/com/salesmanager/core/model/catalog/product/attribute/ProductOptionDescription.java 4(+2 -2)
sm-core-model/src/main/java/com/salesmanager/core/model/catalog/product/attribute/ProductOptionType.java 2(+1 -1)
sm-core-model/src/main/java/com/salesmanager/core/model/catalog/product/attribute/ProductOptionValue.java 25(+6 -19)
sm-core-model/src/main/java/com/salesmanager/core/model/catalog/product/attribute/ProductOptionValueDescription.java 4(+2 -2)
sm-core-model/src/main/java/com/salesmanager/core/model/catalog/product/availability/ProductAvailability.java 10(+5 -5)
sm-core-model/src/main/java/com/salesmanager/core/model/catalog/product/description/ProductDescription.java 9(+5 -4)
sm-core-model/src/main/java/com/salesmanager/core/model/catalog/product/file/DigitalProduct.java 6(+3 -3)
sm-core-model/src/main/java/com/salesmanager/core/model/catalog/product/file/ProductImageSize.java 2(+1 -1)
sm-core-model/src/main/java/com/salesmanager/core/model/catalog/product/image/ProductImage.java 25(+21 -4)
sm-core-model/src/main/java/com/salesmanager/core/model/catalog/product/image/ProductImageDescription.java 4(+2 -2)
sm-core-model/src/main/java/com/salesmanager/core/model/catalog/product/manufacturer/Manufacturer.java 12(+6 -6)
sm-core-model/src/main/java/com/salesmanager/core/model/catalog/product/manufacturer/ManufacturerDescription.java 7(+4 -3)
sm-core-model/src/main/java/com/salesmanager/core/model/catalog/product/price/FinalPrice.java 2(+1 -1)
sm-core-model/src/main/java/com/salesmanager/core/model/catalog/product/price/ProductPrice.java 6(+3 -3)
sm-core-model/src/main/java/com/salesmanager/core/model/catalog/product/price/ProductPriceDescription.java 4(+2 -2)
sm-core-model/src/main/java/com/salesmanager/core/model/catalog/product/price/ProductPriceType.java 2(+1 -1)
sm-core-model/src/main/java/com/salesmanager/core/model/catalog/product/ProductCriteria.java 6(+3 -3)
sm-core-model/src/main/java/com/salesmanager/core/model/catalog/product/relationship/ProductRelationship.java 8(+4 -4)
sm-core-model/src/main/java/com/salesmanager/core/model/catalog/product/relationship/ProductRelationshipType.java 2(+1 -1)
sm-core-model/src/main/java/com/salesmanager/core/model/catalog/product/review/ProductReview.java 14(+7 -7)
sm-core-model/src/main/java/com/salesmanager/core/model/catalog/product/review/ProductReviewDescription.java 6(+3 -3)
sm-core-model/src/main/java/com/salesmanager/core/model/catalog/product/type/ProductType.java 12(+5 -7)
sm-core-model/src/main/java/com/salesmanager/core/model/customer/attribute/CustomerAttribute.java 6(+3 -3)
sm-core-model/src/main/java/com/salesmanager/core/model/customer/attribute/CustomerOption.java 12(+6 -6)
sm-core-model/src/main/java/com/salesmanager/core/model/customer/attribute/CustomerOptionDescription.java 4(+2 -2)
sm-core-model/src/main/java/com/salesmanager/core/model/customer/attribute/CustomerOptionSet.java 4(+2 -2)
sm-core-model/src/main/java/com/salesmanager/core/model/customer/attribute/CustomerOptionType.java 2(+1 -1)
sm-core-model/src/main/java/com/salesmanager/core/model/customer/attribute/CustomerOptionValue.java 27(+12 -15)
sm-core-model/src/main/java/com/salesmanager/core/model/customer/attribute/CustomerOptionValueDescription.java 4(+2 -2)
sm-core-model/src/main/java/com/salesmanager/core/model/order/orderaccount/OrderAccount.java 6(+3 -3)
sm-core-model/src/main/java/com/salesmanager/core/model/order/orderaccount/OrderAccountProduct.java 4(+2 -2)
sm-core-model/src/main/java/com/salesmanager/core/model/order/orderproduct/OrderProduct.java 6(+3 -3)
sm-core-model/src/main/java/com/salesmanager/core/model/order/orderproduct/OrderProductAttribute.java 2(+1 -1)
sm-core-model/src/main/java/com/salesmanager/core/model/order/orderproduct/OrderProductDownload.java 4(+2 -2)
sm-core-model/src/main/java/com/salesmanager/core/model/order/orderproduct/OrderProductPrice.java 2(+1 -1)
sm-core-model/src/main/java/com/salesmanager/core/model/order/orderstatus/OrderStatusHistory.java 4(+2 -2)
sm-core-model/src/main/java/com/salesmanager/core/model/reference/country/CountryDescription.java 9(+5 -4)
sm-core-model/src/main/java/com/salesmanager/core/model/reference/geozone/GeoZoneDescription.java 7(+4 -3)
sm-core-model/src/main/java/com/salesmanager/core/model/reference/zone/ZoneDescription.java 6(+3 -3)
sm-core-model/src/main/java/com/salesmanager/core/model/shipping/ShippingConfiguration.java 2(+1 -1)
sm-core-model/src/main/java/com/salesmanager/core/model/shipping/ShippingOptionPriceType.java 2(+1 -1)
sm-core-model/src/main/java/com/salesmanager/core/model/shoppingcart/ShoppingCartAttributeItem.java 12(+6 -6)
sm-core-model/src/main/java/com/salesmanager/core/model/shoppingcart/ShoppingCartItem.java 27(+16 -11)
sm-core-model/src/main/java/com/salesmanager/core/model/system/CustomIntegrationConfiguration.java 2(+1 -1)
sm-core-model/src/main/java/com/salesmanager/core/model/system/IntegrationConfiguration.java 7(+5 -2)
sm-core-model/src/main/java/com/salesmanager/core/model/system/MerchantConfigurationType.java 2(+1 -1)
sm-core-model/src/main/java/com/salesmanager/core/model/system/optin/CustomerOptin.java 131(+131 -0)
sm-core-model/src/main/java/com/salesmanager/core/model/tax/taxrate/TaxRateDescription.java 4(+2 -2)
sm-core-modules/.classpath 26(+26 -0)
sm-core-modules/.project 36(+36 -0)
sm-core-modules/pom.xml 108(+6 -102)
sm-core-modules/src/main/java/com/salesmanager/core/modules/integration/IntegrationException.java 2(+1 -1)
sm-core-modules/src/main/java/com/salesmanager/core/modules/integration/payment/model/PaymentModule.java 16(+8 -8)
sm-core-modules/src/main/java/com/salesmanager/core/modules/integration/shipping/model/CustomShippingQuoteItem.java 0(+0 -0)
sm-core-modules/src/main/java/com/salesmanager/core/modules/integration/shipping/model/CustomShippingQuotesConfiguration.java 6(+2 -4)
sm-core-modules/src/main/java/com/salesmanager/core/modules/integration/shipping/model/CustomShippingQuotesRegion.java 0(+0 -0)
sm-core-modules/src/main/java/com/salesmanager/core/modules/integration/shipping/model/CustomShippingQuoteWeightItem.java 0(+0 -0)
sm-core-modules/src/main/java/com/salesmanager/core/modules/integration/shipping/model/Packaging.java 8(+4 -4)
sm-core-modules/src/main/java/com/salesmanager/core/modules/integration/shipping/model/ShippingQuoteModule.java 20(+10 -10)
sm-core-modules/src/main/java/com/salesmanager/core/modules/integration/shipping/model/ShippingQuotePrePostProcessModule.java 72(+40 -32)
sm-core-modules/src/main/java/com/salesmanager/core/modules/integration/shipping/model/ShippingQuotePreProcessModule.java 37(+0 -37)
sm-search/.classpath 36(+36 -0)
sm-search/.metadata/.lock 0(+0 -0)
sm-search/.metadata/.log 14(+14 -0)
sm-search/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources 0(+0 -0)
sm-search/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.core.resources.prefs 2(+2 -0)
sm-search/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jst.j2ee.webservice.ui.prefs 2(+2 -0)
sm-search/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.m2e.discovery.prefs 2(+2 -0)
sm-search/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.context.core.prefs 2(+2 -0)
sm-search/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.monitor.ui.prefs 2(+2 -0)
sm-search/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.tasks.ui.prefs 3(+3 -0)
sm-search/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.cvs.ui.prefs 2(+2 -0)
sm-search/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs 4(+4 -0)
sm-search/.metadata/.plugins/org.eclipse.m2e.logback.configuration/logback.1.4.0.20130601-0317.xml 41(+41 -0)
sm-search/.metadata/.plugins/org.eclipse.rse.core/initializerMarks/org.eclipse.rse.internal.core.RSELocalConnectionInitializer.mark 0(+0 -0)
sm-search/.metadata/.plugins/org.eclipse.rse.core/profiles/PRF.canl-1fpkn32_3900/FP.local.files_0/node.properties 57(+57 -0)
sm-search/.metadata/.plugins/org.eclipse.rse.core/profiles/PRF.canl-1fpkn32_3900/H.local_16/node.properties 25(+25 -0)
sm-search/.metadata/.plugins/org.eclipse.rse.core/profiles/PRF.canl-1fpkn32_3900/node.properties 7(+7 -0)
sm-search/.metadata/version.ini 1(+1 -0)
sm-search/.project 23(+23 -0)
sm-search/pom.xml 229(+229 -0)
sm-search/RemoteSystemsTempFiles/.project 12(+12 -0)
sm-search/src/.svn/all-wcprops 5(+5 -0)
sm-search/src/.svn/entries 34(+34 -0)
sm-search/src/main/resources/log4j.xml 45(+45 -0)
sm-search/src/test/resources/.svn/entries 31(+31 -0)
sm-search/src/test/resources/spring/.svn/entries 232(+232 -0)
sm-search/target/classes/log4j.xml 45(+45 -0)
sm-search/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst 43(+43 -0)
sm-search/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst 43(+43 -0)
sm-search/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst 5(+5 -0)
sm-search/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst 5(+5 -0)
sm-shop/.classpath 37(+37 -0)
sm-shop/.project 37(+37 -0)
sm-shop/.settings/.jsdtscope 12(+12 -0)
sm-shop/pom.xml 627(+119 -508)
sm-shop/src/main/java/com/salesmanager/shop/admin/controller/categories/CategoryController.java 508(+508 -0)
sm-shop/src/main/java/com/salesmanager/shop/admin/controller/configurations/CacheController.java 109(+109 -0)
sm-shop/src/main/java/com/salesmanager/shop/admin/controller/configurations/ConfigurationController.java 226(+226 -0)
sm-shop/src/main/java/com/salesmanager/shop/admin/controller/configurations/SystemConfigurationController.java 87(+87 -0)
sm-shop/src/main/java/com/salesmanager/shop/admin/controller/content/ContentBoxesController.java 221(+221 -0)
sm-shop/src/main/java/com/salesmanager/shop/admin/controller/content/ContentImageController.java 263(+263 -0)
sm-shop/src/main/java/com/salesmanager/shop/admin/controller/content/ContentPagesController.java 371(+371 -0)
sm-shop/src/main/java/com/salesmanager/shop/admin/controller/content/StaticContentController.java 248(+248 -0)
sm-shop/src/main/java/com/salesmanager/shop/admin/controller/customers/CustomerController.java 39(+21 -18)
sm-shop/src/main/java/com/salesmanager/shop/admin/controller/customers/CustomerOptionsController.java 342(+342 -0)
sm-shop/src/main/java/com/salesmanager/shop/admin/controller/customers/CustomerOptionsSetController.java 367(+367 -0)
sm-shop/src/main/java/com/salesmanager/shop/admin/controller/customers/CustomerOptionsValueController.java 350(+350 -0)
sm-shop/src/main/java/com/salesmanager/shop/admin/controller/merchant/MerchantStoreController.java 486(+486 -0)
sm-shop/src/main/java/com/salesmanager/shop/admin/controller/merchant/StoreBrandingController.java 193(+193 -0)
sm-shop/src/main/java/com/salesmanager/shop/admin/controller/merchant/StoreLandingController.java 239(+239 -0)
sm-shop/src/main/java/com/salesmanager/shop/admin/controller/orders/OrderActionsControler.java 566(+566 -0)
sm-shop/src/main/java/com/salesmanager/shop/admin/controller/orders/OrderControler.java 477(+477 -0)
sm-shop/src/main/java/com/salesmanager/shop/admin/controller/orders/OrdersController.java 178(+178 -0)
sm-shop/src/main/java/com/salesmanager/shop/admin/controller/payments/PaymentsController.java 175(+175 -0)
sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/CustomProductGroupsController.java 452(+452 -0)
sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/DigitalProductController.java 186(+186 -0)
sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/FeaturedItemsController.java 256(+256 -0)
sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ManufacturerController.java 498(+498 -0)
sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/OptionsController.java 345(+345 -0)
sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/OptionsValueController.java 437(+437 -0)
sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ProductAttributeController.java 532(+532 -0)
sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ProductController.java 32(+17 -15)
sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ProductImagesController.java 494(+494 -0)
sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ProductKeywordsController.java 352(+352 -0)
sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ProductPriceController.java 510(+510 -0)
sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ProductReviewController.java 229(+229 -0)
sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ProductsController.java 261(+261 -0)
sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/RelatedItemsController.java 313(+313 -0)
sm-shop/src/main/java/com/salesmanager/shop/admin/controller/shipping/CustomShippingMethodsController.java 10(+5 -5)
sm-shop/src/main/java/com/salesmanager/shop/admin/controller/shipping/ShippingConfigsController.java 228(+228 -0)
sm-shop/src/main/java/com/salesmanager/shop/admin/controller/shipping/ShippingMethodsController.java 189(+189 -0)
sm-shop/src/main/java/com/salesmanager/shop/admin/controller/shipping/ShippingOptionsController.java 176(+176 -0)
sm-shop/src/main/java/com/salesmanager/shop/admin/controller/shipping/ShippingOriginController.java 171(+171 -0)
sm-shop/src/main/java/com/salesmanager/shop/admin/controller/shipping/ShippingPackagingController.java 140(+140 -0)
sm-shop/src/main/java/com/salesmanager/shop/admin/controller/tax/TaxClassController.java 304(+304 -0)
sm-shop/src/main/java/com/salesmanager/shop/admin/controller/tax/TaxConfigurationController.java 89(+89 -0)
sm-shop/src/main/java/com/salesmanager/shop/admin/controller/tax/TaxRatesController.java 471(+471 -0)
sm-shop/src/main/java/com/salesmanager/shop/admin/controller/user/GroupsController.java 150(+150 -0)
sm-shop/src/main/java/com/salesmanager/shop/admin/controller/user/PermissionController.java 119(+119 -0)
sm-shop/src/main/java/com/salesmanager/shop/admin/controller/user/SecurityController.java 67(+67 -0)
sm-shop/src/main/java/com/salesmanager/shop/admin/model/customer/attribute/CustomerAttributes.java 18(+18 -0)
sm-shop/src/main/java/com/salesmanager/shop/admin/model/customer/attribute/CustomerOption.java 70(+70 -0)
sm-shop/src/main/java/com/salesmanager/shop/admin/model/customer/attribute/CustomerOptionValue.java 22(+22 -0)
sm-shop/src/main/java/com/salesmanager/shop/admin/model/merchant/StoreLandingDescription.java 65(+65 -0)
sm-shop/src/main/java/com/salesmanager/shop/admin/security/SecurityDataAccessException.java 20(+20 -0)
sm-shop/src/main/java/com/salesmanager/shop/admin/security/UserAuthenticationSuccessHandler.java 48(+48 -0)
sm-shop/src/main/java/com/salesmanager/shop/model/catalog/category/CategoryDescription.java 14(+14 -0)
sm-shop/src/main/java/com/salesmanager/shop/model/catalog/category/PersistableCategory.java 29(+29 -0)
sm-shop/src/main/java/com/salesmanager/shop/model/catalog/manufacturer/ManufacturerDescription.java 15(+15 -0)
sm-shop/src/main/java/com/salesmanager/shop/model/catalog/manufacturer/ManufacturerEntity.java 23(+23 -0)
sm-shop/src/main/java/com/salesmanager/shop/model/catalog/manufacturer/PersistableManufacturer.java 21(+21 -0)
sm-shop/src/main/java/com/salesmanager/shop/model/catalog/manufacturer/ReadableManufacturer.java 20(+20 -0)
sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/attribute/PersistableProductAttribute.java 13(+13 -0)
sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/attribute/PersistableProductOption.java 21(+21 -0)
sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/attribute/PersistableProductOptionValue.java 23(+23 -0)
sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/attribute/ProductAttribute.java 28(+28 -0)
sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/attribute/ProductAttributeEntity.java 43(+43 -0)
sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/attribute/ProductOption.java 21(+21 -0)
sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/attribute/ProductOptionDescription.java 15(+15 -0)
sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/attribute/ProductOptionEntity.java 28(+28 -0)
sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/attribute/ProductOptionValue.java 21(+21 -0)
sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/attribute/ProductOptionValueDescription.java 15(+15 -0)
sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/attribute/ProductOptionValueEntity.java 21(+21 -0)
sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/attribute/ReadableProductAttribute.java 12(+12 -0)
sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/PersistableProduct.java 68(+68 -0)
sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/PersistableProductPrice.java 10(+10 -0)
sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/PersistableProductReview.java 25(+25 -0)
sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/ProductDescription.java 12(+12 -0)
sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/ProductPriceEntity.java 78(+78 -0)
sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/ProductReviewEntity.java 55(+55 -0)
sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/ReadableProductList.java 29(+29 -0)
sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/ReadableProductPrice.java 34(+34 -0)
sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/ReadableProductReview.java 21(+21 -0)
sm-shop/src/main/java/com/salesmanager/shop/model/customer/attribute/CustomerAttribute.java 16(+16 -0)
sm-shop/src/main/java/com/salesmanager/shop/model/customer/attribute/CustomerAttributeEntity.java 22(+22 -0)
sm-shop/src/main/java/com/salesmanager/shop/model/customer/attribute/CustomerOptionDescription.java 15(+15 -0)
sm-shop/src/main/java/com/salesmanager/shop/model/customer/attribute/CustomerOptionEntity.java 34(+34 -0)
sm-shop/src/main/java/com/salesmanager/shop/model/customer/attribute/CustomerOptionValue.java 15(+15 -0)
sm-shop/src/main/java/com/salesmanager/shop/model/customer/attribute/CustomerOptionValueDescription.java 15(+15 -0)
sm-shop/src/main/java/com/salesmanager/shop/model/customer/attribute/CustomerOptionValueEntity.java 27(+27 -0)
sm-shop/src/main/java/com/salesmanager/shop/model/customer/attribute/PersistableCustomerAttribute.java 25(+25 -0)
sm-shop/src/main/java/com/salesmanager/shop/model/customer/attribute/PersistableCustomerOption.java 23(+23 -0)
sm-shop/src/main/java/com/salesmanager/shop/model/customer/attribute/PersistableCustomerOptionValue.java 23(+23 -0)
sm-shop/src/main/java/com/salesmanager/shop/model/customer/attribute/ReadableCustomerAttribute.java 26(+26 -0)
sm-shop/src/main/java/com/salesmanager/shop/model/customer/attribute/ReadableCustomerOption.java 22(+22 -0)
sm-shop/src/main/java/com/salesmanager/shop/model/customer/attribute/ReadableCustomerOptionValue.java 22(+22 -0)
sm-shop/src/main/java/com/salesmanager/shop/model/customer/SecuredShopPersistableCustomer.java 24(+24 -0)
sm-shop/src/main/java/com/salesmanager/shop/model/order/ReadableOrderProductAttribute.java 36(+36 -0)
sm-shop/src/main/java/com/salesmanager/shop/model/order/ReadableOrderProductDownload.java 61(+61 -0)
sm-shop/src/main/java/com/salesmanager/shop/model/shoppingcart/ShoppingCartAttribute.java 50(+50 -0)
sm-shop/src/main/java/com/salesmanager/shop/populator/catalog/PersistableCategoryPopulator.java 145(+145 -0)
sm-shop/src/main/java/com/salesmanager/shop/populator/catalog/PersistableProductOptionPopulator.java 75(+75 -0)
sm-shop/src/main/java/com/salesmanager/shop/populator/catalog/PersistableProductOptionValuePopulator.java 83(+83 -0)
sm-shop/src/main/java/com/salesmanager/shop/populator/catalog/PersistableProductPopulator.java 354(+354 -0)
sm-shop/src/main/java/com/salesmanager/shop/populator/catalog/PersistableProductReviewPopulator.java 133(+133 -0)
sm-shop/src/main/java/com/salesmanager/shop/populator/catalog/ReadableCategoryPopulator.java 71(+71 -0)
sm-shop/src/main/java/com/salesmanager/shop/populator/catalog/ReadableFinalPricePopulator.java 58(+58 -0)
sm-shop/src/main/java/com/salesmanager/shop/populator/catalog/ReadableProductPopulator.java 214(+214 -0)
sm-shop/src/main/java/com/salesmanager/shop/populator/catalog/ReadableProductPricePopulator.java 63(+63 -0)
sm-shop/src/main/java/com/salesmanager/shop/populator/catalog/ReadableProductReviewPopulator.java 60(+60 -0)
sm-shop/src/main/java/com/salesmanager/shop/populator/customer/CustomerBillingAddressPopulator.java 52(+52 -0)
sm-shop/src/main/java/com/salesmanager/shop/populator/customer/CustomerDeliveryAddressPopulator.java 78(+78 -0)
sm-shop/src/main/java/com/salesmanager/shop/populator/customer/CustomerEntityPopulator.java 108(+108 -0)
sm-shop/src/main/java/com/salesmanager/shop/populator/customer/CustomerOptionPopulator.java 68(+68 -0)
sm-shop/src/main/java/com/salesmanager/shop/populator/customer/PersistableCustomerBillingAddressPopulator.java 62(+62 -0)
sm-shop/src/main/java/com/salesmanager/shop/populator/customer/PersistableCustomerOptionPopulator.java 82(+82 -0)
sm-shop/src/main/java/com/salesmanager/shop/populator/customer/PersistableCustomerOptionValuePopulator.java 75(+75 -0)
sm-shop/src/main/java/com/salesmanager/shop/populator/customer/PersistableCustomerPopulator.java 96(+96 -0)
sm-shop/src/main/java/com/salesmanager/shop/populator/customer/PersistableCustomerShippingAddressPopulator.java 97(+97 -0)
sm-shop/src/main/java/com/salesmanager/shop/populator/customer/ReadableCustomerDeliveryAddressPopulator.java 145(+145 -0)
sm-shop/src/main/java/com/salesmanager/shop/populator/customer/ReadableCustomerPopulator.java 114(+114 -0)
sm-shop/src/main/java/com/salesmanager/shop/populator/manufacturer/PersistableManufacturerPopulator.java 85(+85 -0)
sm-shop/src/main/java/com/salesmanager/shop/populator/manufacturer/ReadableManufacturerPopulator.java 55(+55 -0)
sm-shop/src/main/java/com/salesmanager/shop/populator/order/PersistableOrderPopulator.java 227(+227 -0)
sm-shop/src/main/java/com/salesmanager/shop/populator/order/PersistableOrderProductPopulator.java 167(+167 -0)
sm-shop/src/main/java/com/salesmanager/shop/populator/order/ReadableOrderPopulator.java 159(+159 -0)
sm-shop/src/main/java/com/salesmanager/shop/populator/order/ReadableOrderProductDownloadPopulator.java 39(+39 -0)
sm-shop/src/main/java/com/salesmanager/shop/populator/order/ReadableOrderProductPopulator.java 151(+151 -0)
sm-shop/src/main/java/com/salesmanager/shop/populator/order/ReadableOrderTotalPopulator.java 78(+78 -0)
sm-shop/src/main/java/com/salesmanager/shop/populator/order/ReadableShippingSummaryPopulator.java 80(+80 -0)
sm-shop/src/main/java/com/salesmanager/shop/populator/order/ReadableShopOrderPopulator.java 117(+117 -0)
sm-shop/src/main/java/com/salesmanager/shop/populator/order/ShoppingCartItemPopulator.java 87(+87 -0)
sm-shop/src/main/java/com/salesmanager/shop/populator/shoppingCart/ShoppingCartDataPopulator.java 199(+199 -0)
sm-shop/src/main/java/com/salesmanager/shop/populator/shoppingCart/ShoppingCartModelPopulator.java 276(+276 -0)
sm-shop/src/main/java/com/salesmanager/shop/populator/store/ReadableMerchantStorePopulator.java 53(+53 -0)
sm-shop/src/main/java/com/salesmanager/shop/store/controller/category/facade/CategoryFacade.java 24(+24 -0)
sm-shop/src/main/java/com/salesmanager/shop/store/controller/category/facade/CategoryFacadeImpl.java 152(+152 -0)
sm-shop/src/main/java/com/salesmanager/shop/store/controller/category/ShoppingCategoryController.java 729(+729 -0)
sm-shop/src/main/java/com/salesmanager/shop/store/controller/content/ShopContentController.java 65(+65 -0)
sm-shop/src/main/java/com/salesmanager/shop/store/controller/customer/CustomerAccountController.java 576(+576 -0)
sm-shop/src/main/java/com/salesmanager/shop/store/controller/customer/CustomerDashboardController.java 135(+135 -0)
sm-shop/src/main/java/com/salesmanager/shop/store/controller/customer/CustomerLoginController.java 212(+212 -0)
sm-shop/src/main/java/com/salesmanager/shop/store/controller/customer/CustomerOrdersController.java 160(+160 -0)
sm-shop/src/main/java/com/salesmanager/shop/store/controller/customer/CustomerProductReviewController.java 234(+234 -0)
sm-shop/src/main/java/com/salesmanager/shop/store/controller/customer/CustomerRegistrationController.java 348(+348 -0)
sm-shop/src/main/java/com/salesmanager/shop/store/controller/customer/facade/CustomerFacade.java 91(+91 -0)
sm-shop/src/main/java/com/salesmanager/shop/store/controller/customer/facade/CustomerFacadeImpl.java 554(+554 -0)
sm-shop/src/main/java/com/salesmanager/shop/store/controller/items/facade/ProductItemsFacade.java 18(+18 -0)
sm-shop/src/main/java/com/salesmanager/shop/store/controller/items/facade/ProductItemsFacadeImpl.java 67(+67 -0)
sm-shop/src/main/java/com/salesmanager/shop/store/controller/items/ListItemsController.java 79(+79 -0)
sm-shop/src/main/java/com/salesmanager/shop/store/controller/order/facade/OrderFacade.java 110(+110 -0)
sm-shop/src/main/java/com/salesmanager/shop/store/controller/order/facade/OrderFacadeImpl.java 109(+80 -29)
sm-shop/src/main/java/com/salesmanager/shop/store/controller/order/ShoppingOrderConfirmationController.java 197(+197 -0)
sm-shop/src/main/java/com/salesmanager/shop/store/controller/order/ShoppingOrderController.java 385(+348 -37)
sm-shop/src/main/java/com/salesmanager/shop/store/controller/order/ShoppingOrderDownloadController.java 114(+114 -0)
sm-shop/src/main/java/com/salesmanager/shop/store/controller/order/ShoppingOrderPaymentController.java 257(+257 -0)
sm-shop/src/main/java/com/salesmanager/shop/store/controller/product/facade/ProductFacade.java 53(+53 -0)
sm-shop/src/main/java/com/salesmanager/shop/store/controller/product/facade/ProductFacadeImpl.java 200(+200 -0)
sm-shop/src/main/java/com/salesmanager/shop/store/controller/product/ShopProductController.java 410(+410 -0)
sm-shop/src/main/java/com/salesmanager/shop/store/controller/search/facade/SearchFacade.java 16(+16 -0)
sm-shop/src/main/java/com/salesmanager/shop/store/controller/search/facade/SearchFacadeImpl.java 41(+41 -0)
sm-shop/src/main/java/com/salesmanager/shop/store/controller/search/SearchController.java 302(+302 -0)
sm-shop/src/main/java/com/salesmanager/shop/store/controller/shoppingCart/facade/ShoppingCartFacade.java 49(+49 -0)
sm-shop/src/main/java/com/salesmanager/shop/store/controller/shoppingCart/facade/ShoppingCartFacadeImpl.java 551(+551 -0)
sm-shop/src/main/java/com/salesmanager/shop/store/controller/shoppingCart/MiniCartController.java 93(+93 -0)
sm-shop/src/main/java/com/salesmanager/shop/store/controller/shoppingCart/ShoppingCartController.java 453(+453 -0)
sm-shop/src/main/java/com/salesmanager/shop/store/controller/store/ContactController.java 181(+181 -0)
sm-shop/src/main/java/com/salesmanager/shop/store/security/ServicesAuthenticationEntryPoint.java 19(+19 -0)
sm-shop/src/main/java/com/salesmanager/shop/store/security/ServicesAuthenticationSuccessHandler.java 42(+42 -0)
sm-shop/src/main/java/com/salesmanager/shop/store/services/category/ShoppingCategoryRESTController.java 211(+211 -0)
sm-shop/src/main/java/com/salesmanager/shop/store/services/customer/CustomerRESTController.java 394(+394 -0)
sm-shop/src/main/java/com/salesmanager/shop/store/services/order/OrderRESTController.java 277(+277 -0)
sm-shop/src/main/java/com/salesmanager/shop/store/services/product/ProductItemsRESTController.java 179(+179 -0)
sm-shop/src/main/java/com/salesmanager/shop/store/services/product/ShopProductRESTController.java 863(+863 -0)
sm-shop/src/main/java/com/salesmanager/shop/store/services/search/SearchRESTController.java 70(+70 -0)
sm-shop/src/main/java/com/salesmanager/shop/store/services/store/StoreContactRESTController.java 178(+178 -0)
sm-shop/src/main/java/com/salesmanager/shop/store/services/system/SystemRESTController.java 156(+156 -0)
sm-shop/src/main/java/com/salesmanager/shop/store/services/utility/CallbackController.java 64(+64 -0)
sm-shop/src/main/java/com/salesmanager/web/admin/controller/categories/CategoryController.java 506(+0 -506)
sm-shop/src/main/java/com/salesmanager/web/admin/controller/configurations/CacheController.java 107(+0 -107)
sm-shop/src/main/java/com/salesmanager/web/admin/controller/configurations/ConfigurationController.java 215(+0 -215)
sm-shop/src/main/java/com/salesmanager/web/admin/controller/configurations/SystemConfigurationController.java 86(+0 -86)
sm-shop/src/main/java/com/salesmanager/web/admin/controller/content/ContentBoxesController.java 221(+0 -221)
sm-shop/src/main/java/com/salesmanager/web/admin/controller/content/ContentImageController.java 257(+0 -257)
sm-shop/src/main/java/com/salesmanager/web/admin/controller/content/ContentPagesController.java 371(+0 -371)
sm-shop/src/main/java/com/salesmanager/web/admin/controller/content/StaticContentController.java 239(+0 -239)
sm-shop/src/main/java/com/salesmanager/web/admin/controller/customers/CustomerOptionsController.java 342(+0 -342)
sm-shop/src/main/java/com/salesmanager/web/admin/controller/customers/CustomerOptionsSetController.java 367(+0 -367)
sm-shop/src/main/java/com/salesmanager/web/admin/controller/customers/CustomerOptionsValueController.java 350(+0 -350)
sm-shop/src/main/java/com/salesmanager/web/admin/controller/merchant/MerchantStoreController.java 479(+0 -479)
sm-shop/src/main/java/com/salesmanager/web/admin/controller/merchant/StoreBrandingController.java 193(+0 -193)
sm-shop/src/main/java/com/salesmanager/web/admin/controller/merchant/StoreLandingController.java 239(+0 -239)
sm-shop/src/main/java/com/salesmanager/web/admin/controller/orders/OrderActionsControler.java 561(+0 -561)
sm-shop/src/main/java/com/salesmanager/web/admin/controller/orders/OrdersController.java 178(+0 -178)
sm-shop/src/main/java/com/salesmanager/web/admin/controller/payments/PaymentsController.java 175(+0 -175)
sm-shop/src/main/java/com/salesmanager/web/admin/controller/products/CustomProductGroupsController.java 452(+0 -452)
sm-shop/src/main/java/com/salesmanager/web/admin/controller/products/DigitalProductController.java 186(+0 -186)
sm-shop/src/main/java/com/salesmanager/web/admin/controller/products/FeaturedItemsController.java 256(+0 -256)
sm-shop/src/main/java/com/salesmanager/web/admin/controller/products/ManufacturerController.java 498(+0 -498)
sm-shop/src/main/java/com/salesmanager/web/admin/controller/products/OptionsController.java 345(+0 -345)
sm-shop/src/main/java/com/salesmanager/web/admin/controller/products/OptionsValueController.java 430(+0 -430)
sm-shop/src/main/java/com/salesmanager/web/admin/controller/products/ProductAttributeController.java 532(+0 -532)
sm-shop/src/main/java/com/salesmanager/web/admin/controller/products/ProductImagesController.java 306(+0 -306)
sm-shop/src/main/java/com/salesmanager/web/admin/controller/products/ProductKeywordsController.java 352(+0 -352)
sm-shop/src/main/java/com/salesmanager/web/admin/controller/products/ProductPriceController.java 510(+0 -510)
sm-shop/src/main/java/com/salesmanager/web/admin/controller/products/ProductReviewController.java 229(+0 -229)
sm-shop/src/main/java/com/salesmanager/web/admin/controller/products/ProductsController.java 261(+0 -261)
sm-shop/src/main/java/com/salesmanager/web/admin/controller/products/RelatedItemsController.java 313(+0 -313)
sm-shop/src/main/java/com/salesmanager/web/admin/controller/shipping/ShippingConfigsController.java 228(+0 -228)
sm-shop/src/main/java/com/salesmanager/web/admin/controller/shipping/ShippingMethodsController.java 189(+0 -189)
sm-shop/src/main/java/com/salesmanager/web/admin/controller/shipping/ShippingOptionsController.java 176(+0 -176)
sm-shop/src/main/java/com/salesmanager/web/admin/controller/shipping/ShippingOriginController.java 171(+0 -171)
sm-shop/src/main/java/com/salesmanager/web/admin/controller/shipping/ShippingPackagingController.java 140(+0 -140)
sm-shop/src/main/java/com/salesmanager/web/admin/controller/tax/TaxClassController.java 304(+0 -304)
sm-shop/src/main/java/com/salesmanager/web/admin/controller/tax/TaxConfigurationController.java 89(+0 -89)
sm-shop/src/main/java/com/salesmanager/web/admin/controller/tax/TaxRatesController.java 471(+0 -471)
sm-shop/src/main/java/com/salesmanager/web/admin/controller/user/PermissionController.java 119(+0 -119)
sm-shop/src/main/java/com/salesmanager/web/admin/entity/customer/attribute/CustomerAttributes.java 18(+0 -18)
sm-shop/src/main/java/com/salesmanager/web/admin/entity/customer/attribute/CustomerOption.java 70(+0 -70)
sm-shop/src/main/java/com/salesmanager/web/admin/entity/customer/attribute/CustomerOptionValue.java 22(+0 -22)
sm-shop/src/main/java/com/salesmanager/web/admin/entity/merchant/StoreLandingDescription.java 65(+0 -65)
sm-shop/src/main/java/com/salesmanager/web/admin/security/SecurityDataAccessException.java 20(+0 -20)
sm-shop/src/main/java/com/salesmanager/web/admin/security/UserAuthenticationSuccessHandler.java 48(+0 -48)
sm-shop/src/main/java/com/salesmanager/web/entity/catalog/category/CategoryDescription.java 14(+0 -14)
sm-shop/src/main/java/com/salesmanager/web/entity/catalog/category/PersistableCategory.java 29(+0 -29)
sm-shop/src/main/java/com/salesmanager/web/entity/catalog/manufacturer/ManufacturerDescription.java 15(+0 -15)
sm-shop/src/main/java/com/salesmanager/web/entity/catalog/manufacturer/ManufacturerEntity.java 23(+0 -23)
sm-shop/src/main/java/com/salesmanager/web/entity/catalog/manufacturer/PersistableManufacturer.java 21(+0 -21)
sm-shop/src/main/java/com/salesmanager/web/entity/catalog/manufacturer/ReadableManufacturer.java 20(+0 -20)
sm-shop/src/main/java/com/salesmanager/web/entity/catalog/product/attribute/PersistableProductAttribute.java 13(+0 -13)
sm-shop/src/main/java/com/salesmanager/web/entity/catalog/product/attribute/PersistableProductOption.java 21(+0 -21)
sm-shop/src/main/java/com/salesmanager/web/entity/catalog/product/attribute/PersistableProductOptionValue.java 23(+0 -23)
sm-shop/src/main/java/com/salesmanager/web/entity/catalog/product/attribute/ProductAttribute.java 28(+0 -28)
sm-shop/src/main/java/com/salesmanager/web/entity/catalog/product/attribute/ProductAttributeEntity.java 43(+0 -43)
sm-shop/src/main/java/com/salesmanager/web/entity/catalog/product/attribute/ProductOption.java 21(+0 -21)
sm-shop/src/main/java/com/salesmanager/web/entity/catalog/product/attribute/ProductOptionDescription.java 15(+0 -15)
sm-shop/src/main/java/com/salesmanager/web/entity/catalog/product/attribute/ProductOptionEntity.java 28(+0 -28)
sm-shop/src/main/java/com/salesmanager/web/entity/catalog/product/attribute/ProductOptionValue.java 21(+0 -21)
sm-shop/src/main/java/com/salesmanager/web/entity/catalog/product/attribute/ProductOptionValueDescription.java 15(+0 -15)
sm-shop/src/main/java/com/salesmanager/web/entity/catalog/product/attribute/ProductOptionValueEntity.java 21(+0 -21)
sm-shop/src/main/java/com/salesmanager/web/entity/catalog/product/attribute/ReadableProductAttribute.java 12(+0 -12)
sm-shop/src/main/java/com/salesmanager/web/entity/catalog/product/PersistableProduct.java 68(+0 -68)
sm-shop/src/main/java/com/salesmanager/web/entity/catalog/product/PersistableProductPrice.java 10(+0 -10)
sm-shop/src/main/java/com/salesmanager/web/entity/catalog/product/PersistableProductReview.java 25(+0 -25)
sm-shop/src/main/java/com/salesmanager/web/entity/catalog/product/ProductDescription.java 12(+0 -12)
sm-shop/src/main/java/com/salesmanager/web/entity/catalog/product/ProductPriceEntity.java 78(+0 -78)
sm-shop/src/main/java/com/salesmanager/web/entity/catalog/product/ProductReviewEntity.java 55(+0 -55)
sm-shop/src/main/java/com/salesmanager/web/entity/catalog/product/ReadableProductList.java 29(+0 -29)
sm-shop/src/main/java/com/salesmanager/web/entity/catalog/product/ReadableProductPrice.java 34(+0 -34)
sm-shop/src/main/java/com/salesmanager/web/entity/catalog/product/ReadableProductReview.java 21(+0 -21)
sm-shop/src/main/java/com/salesmanager/web/entity/customer/attribute/CustomerAttribute.java 16(+0 -16)
sm-shop/src/main/java/com/salesmanager/web/entity/customer/attribute/CustomerAttributeEntity.java 22(+0 -22)
sm-shop/src/main/java/com/salesmanager/web/entity/customer/attribute/CustomerOptionDescription.java 15(+0 -15)
sm-shop/src/main/java/com/salesmanager/web/entity/customer/attribute/CustomerOptionEntity.java 34(+0 -34)
sm-shop/src/main/java/com/salesmanager/web/entity/customer/attribute/CustomerOptionValue.java 15(+0 -15)
sm-shop/src/main/java/com/salesmanager/web/entity/customer/attribute/CustomerOptionValueDescription.java 15(+0 -15)
sm-shop/src/main/java/com/salesmanager/web/entity/customer/attribute/CustomerOptionValueEntity.java 27(+0 -27)
sm-shop/src/main/java/com/salesmanager/web/entity/customer/attribute/PersistableCustomerAttribute.java 25(+0 -25)
sm-shop/src/main/java/com/salesmanager/web/entity/customer/attribute/PersistableCustomerOption.java 23(+0 -23)
sm-shop/src/main/java/com/salesmanager/web/entity/customer/attribute/PersistableCustomerOptionValue.java 23(+0 -23)
sm-shop/src/main/java/com/salesmanager/web/entity/customer/attribute/ReadableCustomerAttribute.java 26(+0 -26)
sm-shop/src/main/java/com/salesmanager/web/entity/customer/attribute/ReadableCustomerOption.java 22(+0 -22)
sm-shop/src/main/java/com/salesmanager/web/entity/customer/attribute/ReadableCustomerOptionValue.java 22(+0 -22)
sm-shop/src/main/java/com/salesmanager/web/entity/customer/SecuredShopPersistableCustomer.java 50(+0 -50)
sm-shop/src/main/java/com/salesmanager/web/entity/order/ReadableOrderProductAttribute.java 36(+0 -36)
sm-shop/src/main/java/com/salesmanager/web/entity/order/ReadableOrderProductDownload.java 61(+0 -61)
sm-shop/src/main/java/com/salesmanager/web/entity/shoppingcart/ShoppingCartAttribute.java 50(+0 -50)
sm-shop/src/main/java/com/salesmanager/web/populator/catalog/PersistableCategoryPopulator.java 145(+0 -145)
sm-shop/src/main/java/com/salesmanager/web/populator/catalog/PersistableProductOptionPopulator.java 75(+0 -75)
sm-shop/src/main/java/com/salesmanager/web/populator/catalog/PersistableProductOptionValuePopulator.java 83(+0 -83)
sm-shop/src/main/java/com/salesmanager/web/populator/catalog/PersistableProductPopulator.java 342(+0 -342)
sm-shop/src/main/java/com/salesmanager/web/populator/catalog/PersistableProductReviewPopulator.java 133(+0 -133)
sm-shop/src/main/java/com/salesmanager/web/populator/catalog/ReadableCategoryPopulator.java 71(+0 -71)
sm-shop/src/main/java/com/salesmanager/web/populator/catalog/ReadableFinalPricePopulator.java 58(+0 -58)
sm-shop/src/main/java/com/salesmanager/web/populator/catalog/ReadableProductPopulator.java 172(+0 -172)
sm-shop/src/main/java/com/salesmanager/web/populator/catalog/ReadableProductPricePopulator.java 63(+0 -63)
sm-shop/src/main/java/com/salesmanager/web/populator/catalog/ReadableProductReviewPopulator.java 60(+0 -60)
sm-shop/src/main/java/com/salesmanager/web/populator/customer/CustomerBillingAddressPopulator.java 52(+0 -52)
sm-shop/src/main/java/com/salesmanager/web/populator/customer/CustomerDeliveryAddressPopulator.java 78(+0 -78)
sm-shop/src/main/java/com/salesmanager/web/populator/customer/CustomerEntityPopulator.java 108(+0 -108)
sm-shop/src/main/java/com/salesmanager/web/populator/customer/CustomerOptionPopulator.java 68(+0 -68)
sm-shop/src/main/java/com/salesmanager/web/populator/customer/PersistableCustomerBillingAddressPopulator.java 62(+0 -62)
sm-shop/src/main/java/com/salesmanager/web/populator/customer/PersistableCustomerOptionPopulator.java 82(+0 -82)
sm-shop/src/main/java/com/salesmanager/web/populator/customer/PersistableCustomerOptionValuePopulator.java 75(+0 -75)
sm-shop/src/main/java/com/salesmanager/web/populator/customer/PersistableCustomerPopulator.java 95(+0 -95)
sm-shop/src/main/java/com/salesmanager/web/populator/customer/PersistableCustomerShippingAddressPopulator.java 97(+0 -97)
sm-shop/src/main/java/com/salesmanager/web/populator/customer/ReadableCustomerPopulator.java 114(+0 -114)
sm-shop/src/main/java/com/salesmanager/web/populator/manufacturer/PersistableManufacturerPopulator.java 85(+0 -85)
sm-shop/src/main/java/com/salesmanager/web/populator/manufacturer/ReadableManufacturerPopulator.java 55(+0 -55)
sm-shop/src/main/java/com/salesmanager/web/populator/order/PersistableOrderPopulator.java 226(+0 -226)
sm-shop/src/main/java/com/salesmanager/web/populator/order/PersistableOrderProductPopulator.java 167(+0 -167)
sm-shop/src/main/java/com/salesmanager/web/populator/order/ReadableOrderProductDownloadPopulator.java 39(+0 -39)
sm-shop/src/main/java/com/salesmanager/web/populator/order/ReadableOrderProductPopulator.java 139(+0 -139)
sm-shop/src/main/java/com/salesmanager/web/populator/order/ReadableOrderTotalPopulator.java 78(+0 -78)
sm-shop/src/main/java/com/salesmanager/web/populator/order/ReadableShippingSummaryPopulator.java 59(+0 -59)
sm-shop/src/main/java/com/salesmanager/web/populator/order/ReadableShopOrderPopulator.java 114(+0 -114)
sm-shop/src/main/java/com/salesmanager/web/populator/order/ShoppingCartItemPopulator.java 87(+0 -87)
sm-shop/src/main/java/com/salesmanager/web/populator/shoppingCart/ShoppingCartDataPopulator.java 184(+0 -184)
sm-shop/src/main/java/com/salesmanager/web/populator/shoppingCart/ShoppingCartModelPopulator.java 276(+0 -276)
sm-shop/src/main/java/com/salesmanager/web/populator/store/ReadableMerchantStorePopulator.java 53(+0 -53)
sm-shop/src/main/java/com/salesmanager/web/services/controller/category/ShoppingCategoryRESTController.java 211(+0 -211)
sm-shop/src/main/java/com/salesmanager/web/services/controller/customer/CustomerRESTController.java 394(+0 -394)
sm-shop/src/main/java/com/salesmanager/web/services/controller/order/OrderRESTController.java 277(+0 -277)
sm-shop/src/main/java/com/salesmanager/web/services/controller/product/ShopProductRESTController.java 634(+0 -634)
sm-shop/src/main/java/com/salesmanager/web/services/controller/store/StoreContactRESTController.java 178(+0 -178)
sm-shop/src/main/java/com/salesmanager/web/services/controller/system/SystemRESTController.java 76(+0 -76)
sm-shop/src/main/java/com/salesmanager/web/services/security/ServicesAuthenticationEntryPoint.java 19(+0 -19)
sm-shop/src/main/java/com/salesmanager/web/services/security/ServicesAuthenticationSuccessHandler.java 42(+0 -42)
sm-shop/src/main/java/com/salesmanager/web/shop/controller/category/facade/CategoryFacade.java 24(+0 -24)
sm-shop/src/main/java/com/salesmanager/web/shop/controller/category/facade/CategoryFacadeImpl.java 152(+0 -152)
sm-shop/src/main/java/com/salesmanager/web/shop/controller/category/ShoppingCategoryController.java 707(+0 -707)
sm-shop/src/main/java/com/salesmanager/web/shop/controller/content/ShopContentController.java 65(+0 -65)
sm-shop/src/main/java/com/salesmanager/web/shop/controller/customer/CustomerAccountController.java 576(+0 -576)
sm-shop/src/main/java/com/salesmanager/web/shop/controller/customer/CustomerDashboardController.java 135(+0 -135)
sm-shop/src/main/java/com/salesmanager/web/shop/controller/customer/CustomerLoginController.java 168(+0 -168)
sm-shop/src/main/java/com/salesmanager/web/shop/controller/customer/CustomerOrdersController.java 160(+0 -160)
sm-shop/src/main/java/com/salesmanager/web/shop/controller/customer/CustomerProductReviewController.java 226(+0 -226)
sm-shop/src/main/java/com/salesmanager/web/shop/controller/customer/CustomerRegistrationController.java 304(+0 -304)
sm-shop/src/main/java/com/salesmanager/web/shop/controller/customer/facade/CustomerFacade.java 91(+0 -91)
sm-shop/src/main/java/com/salesmanager/web/shop/controller/customer/facade/CustomerFacadeImpl.java 565(+0 -565)
sm-shop/src/main/java/com/salesmanager/web/shop/controller/order/facade/OrderFacade.java 110(+0 -110)
sm-shop/src/main/java/com/salesmanager/web/shop/controller/order/ShoppingOrderConfirmationController.java 193(+0 -193)
sm-shop/src/main/java/com/salesmanager/web/shop/controller/order/ShoppingOrderDownloadController.java 114(+0 -114)
sm-shop/src/main/java/com/salesmanager/web/shop/controller/order/ShoppingOrderPaymentController.java 255(+0 -255)
sm-shop/src/main/java/com/salesmanager/web/shop/controller/product/facade/ProductFacade.java 11(+0 -11)
sm-shop/src/main/java/com/salesmanager/web/shop/controller/product/facade/ProductFacadeImpl.java 71(+0 -71)
sm-shop/src/main/java/com/salesmanager/web/shop/controller/product/ShopProductController.java 403(+0 -403)
sm-shop/src/main/java/com/salesmanager/web/shop/controller/search/SearchController.java 295(+0 -295)
sm-shop/src/main/java/com/salesmanager/web/shop/controller/shoppingCart/facade/ShoppingCartFacade.java 48(+0 -48)
sm-shop/src/main/java/com/salesmanager/web/shop/controller/shoppingCart/facade/ShoppingCartFacadeImpl.java 513(+0 -513)
sm-shop/src/main/java/com/salesmanager/web/shop/controller/shoppingCart/MiniCartController.java 93(+0 -93)
sm-shop/src/main/java/com/salesmanager/web/shop/controller/shoppingCart/ShoppingCartController.java 400(+0 -400)
sm-shop/src/main/java/com/salesmanager/web/shop/controller/store/ContactController.java 166(+0 -166)
sm-shop/src/main/resources/log4j.properties 15(+15 -0)
sm-shop/src/main/webapp/pages/shop/common/cart/cart.jsp 366(+224 -142)
sm-shop/src/main/webapp/pages/shop/common/checkout/checkout.jsp 2646(+1470 -1176)
sm-shop/src/main/webapp/resources/css/sm.css 629(+353 -276)
sm-shop/src/main/webapp/resources/js/ckeditor/plugins/placeholder/lang/_translationstatus.txt 0(+0 -0)
sm-shop/src/main/webapp/resources/js/ckeditor/plugins/showblocks/images/block_blockquote.png 0(+0 -0)
sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/js/ckeditor/plugins/specialchar/lang/_translationstatus.txt 0(+0 -0)
sm-shop/src/main/webapp/resources/js/ckeditor/plugins/templates/templates/images/template1.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/js/ckeditor/plugins/templates/templates/images/template2.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/js/ckeditor/plugins/templates/templates/images/template3.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/canvas_clip_scroll.html 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/detailViewer_init.html 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/dynamicForm_annotations.html 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/dynamicForm_item_types.html 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/dynamicForm_layout.html 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/dynamicForm_validators.html 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/editableListGrid_init.html 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/event_propagation.html 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/imgButton/button.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/imgButton/button_Disabled.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/imgButton/button_Down.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/imgButton/button_Over.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/imgButton/button_Selected.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/imgButton/button_Selected_Disabled.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/imgButton/button_Selected_Down.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/imgButton/button_Selected_Over.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hscroll_corner.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hscroll_Disabled_corner.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hscroll_Disabled_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hscroll_Disabled_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hscroll_Disabled_track.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hscroll_Down_corner.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hscroll_Down_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hscroll_Down_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hscroll_Down_track.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hscroll_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hscroll_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hscroll_track.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hthumb_Disabled_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hthumb_Disabled_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hthumb_Disabled_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hthumb_Down_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hthumb_Down_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hthumb_Down_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hthumb_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hthumb_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hthumb_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vscroll_corner.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vscroll_Disabled_corner.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vscroll_Disabled_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vscroll_Disabled_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vscroll_Disabled_track.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vscroll_Down_corner.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vscroll_Down_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vscroll_Down_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vscroll_Down_track.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vscroll_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vscroll_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vscroll_track.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vthumb_Disabled_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vthumb_Disabled_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vthumb_Disabled_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vthumb_Down_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vthumb_Down_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vthumb_Down_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vthumb_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vthumb_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vthumb_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Disabled_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Disabled_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Disabled_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Down_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Down_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Down_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Over_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Over_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Over_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Selected_Disabled_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Selected_Disabled_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Selected_Disabled_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Selected_Down_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Selected_Down_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Selected_Down_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Selected_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Selected_Over_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Selected_Over_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Selected_Over_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Selected_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Selected_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/yinyang_icon.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/yinyang_inverted.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/images/yinyang_small.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/imgButton_selection.html 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/keypress_handling.html 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/refreshFromServer.html 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/replaceFromServer.html 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/slider_colormixer.html 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/stretchImgButton_selection.html 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/treeGrid_init_connectors.html 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/widget_attachment.html 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/widget_drag_appearance.html 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/widget_drag_resize.html 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/components/components/widget_position_size.html 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/add_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/back_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/close_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/close_Down.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/close_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/color_swatch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/column_preferences.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/configure.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/download.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/edit_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/exclamation.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/forward_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/freezeLeft.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/freezeRight.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/plus_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/remove_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/sort_ascending.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/sort_descending.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/text_linespacing.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/unfreeze.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Disabled_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Disabled_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Disabled_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Down_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Down_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Down_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Over_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Over_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Over_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Selected_Disabled_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Selected_Disabled_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Selected_Disabled_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Selected_Down_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Selected_Down_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Selected_Down_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Selected_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Selected_Over_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Selected_Over_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Selected_Over_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Selected_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Selected_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ColorPicker/crosshair.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ColorPicker/spectrum.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/cssButton/button_Disabled_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/cssButton/button_Down_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/cssButton/button_Over_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/cssButton/button_Selected_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/cssButton/button_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/arrow_closed.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/arrow_closed_down.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/arrow_closed_left.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/arrow_closed_right.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/arrow_open.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/arrow_open_down.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/arrow_open_left.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/arrow_open_right.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/arrow_open_up.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/arrow_opening.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/close_over.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/colHeader.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/colHeaderDisabled.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/colHeaderLabel.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/colHeaderLabelDown.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/colHeaderOver.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/colHeaderSelected.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/colHeaderSelectedOver.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/header_handle.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/header_handle_over.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/innerHeader.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/innerHeaderDown.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/innerHeaderSelected.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/innerHeaderSelectedOver.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/maximize.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/maximize_over.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/minimize.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/minimize_over.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/rowHeader.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/rowHeaderDisabled.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/rowHeaderLabel.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/rowHeaderLabelDown.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/rowHeaderLabelSelected.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/rowHeaderOver.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/rowHeaderSelected.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/rowHeaderSelectedOver.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/sort_down.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/sort_down_over.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/sort_down_selected.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/sort_down_selected_over.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/sort_up.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/sort_up_over.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/sort_up_selected.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/sort_up_selected_over.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DatabaseBrowser/column.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DatabaseBrowser/data.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DateChooser/arrow_left.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DateChooser/arrow_right.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DateChooser/doubleArrow_left.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DateChooser/doubleArrow_right.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Dialog/warn copy.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/checked.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/checked_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/checked_Down.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/ColorPicker_icon.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/ColorPicker_icon_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/date_control.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/date_control_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/default_formItem_icon.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/default_formItem_icon_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/default_formItem_icon_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/partialcheck.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/PopUpTextAreaEditor_icon.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/PropSheet_ColorPicker_icon.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/PropSheet_pickbutton.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/PropSheet_pickbutton_Disabled.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/Remove_icon.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/Remove_icon_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/Remove_icon_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/spinner_control_decrease.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/spinner_control_decrease_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/spinner_control_decrease_Focused.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/spinner_control_increase.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/spinner_control_increase_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/spinner_control_increase_Focused.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/text_control.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/text_control_Disabled.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/text_control_Over.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/unchecked.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/unchecked_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/unchecked_Down.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/unsetcheck.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/unsetcheck_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/unsetcheck_Down.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/unsetcheck_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/FileBrowser/createNewFolder.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/FileBrowser/file.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/FileBrowser/folder.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/FileBrowser/previousFolder.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/FileBrowser/refresh.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/FileBrowser/upOneLevel.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/arrow_down.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/arrow_down_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/arrow_down_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/arrow_left.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/arrow_left_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/arrow_left_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/arrow_right.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/arrow_right_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/arrow_right_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/arrow_up.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/arrow_up_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/arrow_up_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/calculator.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/calculator_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/calculator_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/cart.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/cart_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/cart_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/cascade.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/cascade_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/cascade_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/clipboard.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/clipboard_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/clipboard_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/clock.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/clock_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/clock_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/close.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/close_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/close_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/comment.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/comment_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/comment_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/document.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/document_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/double_arrow_down.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/double_arrow_down_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/double_arrow_down_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/double_arrow_left.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/double_arrow_left_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/double_arrow_left_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/double_arrow_right.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/double_arrow_right_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/double_arrow_right_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/double_arrow_up.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/double_arrow_up_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/double_arrow_up_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/favourite.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/favourite_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/favourite_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/find.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/find_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/find_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/help.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/help_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/help_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/home.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/home_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/home_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/mail.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/mail_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/mail_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/maximize.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/maximize_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/maximize_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/minimize.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/minimize_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/minimize_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/minus.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/minus_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/minus_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/person.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/person_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/person_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/pin_down.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/pin_down_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/pin_down_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/pin_left.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/pin_left_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/pin_left_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/plus.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/plus_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/plus_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/print.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/print_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/print_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/refresh.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/refresh_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/refresh_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/refresh_thin.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/refresh_thin_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/refresh_thin_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/save.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/save_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/save_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/settings.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/settings_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/settings_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/transfer.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/transfer_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/transfer_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/trash.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/trash_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/trash_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/zoom.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/zoom_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/zoom_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ImgButton/button.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ImgButton/button_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ImgButton/button_Down.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ImgButton/button_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/expander_closed.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/expander_opened.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/formula_menuItem.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/group_closed.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/group_opened.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/header_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/header_Down.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/header_menu.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/header_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/header_Selected.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/header_Selected_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/header_Selected_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/headerSprite.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/row_collapsed.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/row_expanded.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/row_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/row_Over_Selected.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/row_Selected.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/sort_ascending.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/sort_descending.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/check_disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/menu_background.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/menu_button.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/menu_button_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/menu_button_up.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/menu_button_up_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/menu_rollover.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/menu_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/submenu_disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/submenu_disabled_left.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/submenu_down.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/submenu_left.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/MultiUploadItem/icon_add_files.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/MultiUploadItem/icon_add_files_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/MultiUploadItem/icon_remove_files.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/MultiUploadItem/icon_remove_files_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Panel/panel_header.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/clear_picker.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/clear_picker_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/clear_picker_Down.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/clear_picker_Normal.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/clear_picker_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/comboBoxPicker.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/comboBoxPicker_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/comboBoxPicker_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/date_picker.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/date_picker_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/date_picker_Down.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/date_picker_Normal.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/date_picker_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/refresh_picker.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/refresh_picker_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/refresh_picker_Down.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/refresh_picker_Normal.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/refresh_picker_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/search_picker.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/search_picker_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/search_picker_Down.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/search_picker_Normal.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/search_picker_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_Disabled_h_empty_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_Disabled_h_empty_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_Disabled_h_empty_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_Disabled_h_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_Disabled_h_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_Disabled_h_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_Disabled_v_empty_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_Disabled_v_empty_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_Disabled_v_empty_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_Disabled_v_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_Disabled_v_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_Disabled_v_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_h_empty_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_h_empty_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_h_empty_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_h_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_h_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_h_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_v_empty_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_v_empty_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_v_empty_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_v_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_v_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_v_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RecordEditor/add.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RecordEditor/add_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RecordEditor/add_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RecordEditor/check.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RecordEditor/filter.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RecordEditor/filter_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RecordEditor/filter_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RecordEditor/query.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/background_color.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/background_color_Disabled.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/copy.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/copy_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/cut.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/cut_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/indent.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/indent_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/link_new.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/outdent.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/outdent_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/paste.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/paste_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/separator.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/separator_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/text_align_center.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/text_align_center_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/text_align_justified.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/text_align_justified_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/text_align_left.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/text_align_left_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/text_align_right.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/text_align_right_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/text_bold.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/text_color.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/text_color_Disabled.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/text_italic.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/text_underline.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SchemaViewer/complexType.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SchemaViewer/operation.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SchemaViewer/simpleType.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_corner.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_Disabled_corner.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_Disabled_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_Disabled_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_Disabled_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_Disabled_track.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_Down_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_Down_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_Down_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_Down_track.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_Over_corner.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_Over_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_Over_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_Over_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_Over_track.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_track.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_Disabled_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_Disabled_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_Disabled_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_Down_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_Down_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_Down_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_grip.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_grip_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_grip_Down.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_Over_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_Over_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_Over_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_corner.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_Disabled_corner.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_Disabled_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_Disabled_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_Disabled_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_Disabled_track.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_Down_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_Down_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_Down_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_Down_track.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_Over_corner.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_Over_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_Over_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_Over_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_Over_track.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_track.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_Disabled_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_Disabled_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_Disabled_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_Down_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_Down_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_Down_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_grip.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_grip_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_grip_Down.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_Over_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_Over_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_Over_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_closed_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_closed_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_closed_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_Disabled_closed_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_Disabled_closed_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_Disabled_closed_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_Disabled_opened_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_Disabled_opened_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_Disabled_opened_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_opened_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_opened_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_opened_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_Over_closed_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_Over_closed_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_Over_closed_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_Over_opened_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_Over_opened_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_Over_opened_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/opener_closed.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/opener_opened.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/opener_opened_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/opener_opened_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/opener_opened_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/background.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/progressCursorTracker.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds_center.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds1_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds1_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds1_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds1_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds1_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds1_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds1_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds1_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds10_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds10_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds10_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds10_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds10_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds10_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds10_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds10_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds2_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds2_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds2_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds2_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds2_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds2_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds2_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds2_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds3_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds3_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds3_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds3_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds3_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds3_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds3_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds3_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds4_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds4_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds4_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds4_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds4_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds4_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds4_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds4_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds5_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds5_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds5_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds5_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds5_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds5_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds5_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds5_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds6_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds6_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds6_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds6_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds6_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds6_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds6_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds6_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds7_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds7_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds7_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds7_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds7_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds7_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds7_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds7_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds8_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds8_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds8_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds8_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds8_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds8_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds8_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds8_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds9_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds9_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds9_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds9_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds9_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds9_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds9_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds9_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/hthumb_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/hthumb_down.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/htrack_Disabled_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/htrack_Disabled_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/htrack_Disabled_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/htrack_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/htrack_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/htrack_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/vthumb_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/vthumb_down.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/vtrack_Disabled_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/vtrack_Disabled_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/vtrack_Disabled_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/vtrack_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/vtrack_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/vtrack_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Splitbar/hsplit_bg.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Splitbar/hsplit_Disabled_bg.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Splitbar/hsplit_snap.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Splitbar/hsplit_snap_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Splitbar/vsplit_bg.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Splitbar/vsplit_Disabled_bg.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Splitbar/vsplit_snap.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Splitbar/vsplit_snap_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/baseline_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/baseline_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/baseline_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Disabled_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Disabled_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Disabled_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Over_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Over_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Over_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Selected_Disabled_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Selected_Disabled_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Selected_Disabled_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Selected_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Selected_Over_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Selected_Over_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Selected_Over_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Selected_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Selected_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/close_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Disabled_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Disabled_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Disabled_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Over_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Over_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Over_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Selected_Disabled_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Selected_Disabled_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Selected_Disabled_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Selected_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Selected_Over_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Selected_Over_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Selected_Over_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Selected_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Selected_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/baseline_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/baseline_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/baseline_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/close_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Disabled_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Disabled_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Disabled_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Over_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Over_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Over_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Selected_Disabled_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Selected_Disabled_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Selected_Disabled_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Selected_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Selected_Over_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Selected_Over_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Selected_Over_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Selected_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Selected_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/baseline_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/baseline_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/baseline_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/close_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Disabled_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Disabled_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Disabled_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Over_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Over_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Over_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Selected_Disabled_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Selected_Disabled_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Selected_Disabled_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Selected_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Selected_Over_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Selected_Over_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Selected_Over_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Selected_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Selected_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/close_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/picker_bottom.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/picker_Disabled_bottom.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/picker_Disabled_left.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/picker_Disabled_right.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/picker_Disabled_top.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/picker_Down_bottom.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/picker_Down_left.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/picker_Down_right.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/picker_Down_top.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/picker_left.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/picker_right.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/picker_top.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_bottom_back.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_bottom_forward.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Disabled_bottom_back.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Disabled_bottom_forward.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Disabled_left_back.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Disabled_left_forward.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Disabled_right_back.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Disabled_right_forward.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Disabled_top_back.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Disabled_top_forward.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Down_bottom_back.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Down_bottom_forward.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Down_left_back.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Down_left_forward.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Down_right_back.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Down_right_forward.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Down_top_back.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Down_top_forward.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_left_back.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_left_forward.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_right_back.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_right_forward.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_top_back.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_top_forward.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TileGrid/tileOver.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/background.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/background_vertical.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Disabled_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Disabled_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Disabled_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Down_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Down_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Down_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Over_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Over_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Over_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Selected_Disabled_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Selected_Disabled_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Selected_Disabled_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Selected_Down_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Selected_Down_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Selected_Down_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Selected_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Selected_Over_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Selected_Over_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Selected_Over_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Selected_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Selected_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/hresizer.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/hresizer_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/hseparator.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/hseparator_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/resizer.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/resizer_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/separator.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/separator_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/delete.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/delete_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/delete_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/down.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/down_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/down_last.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/down_last_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/down_last_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/down_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/left.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/left_all.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/left_all_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/left_all_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/left_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/left_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/right.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/right_all.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/right_all_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/right_all_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/right_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/right_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/up.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/up_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/up_first.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/up_first_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/up_first_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/up_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/connector_ancestor.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/connector_closed_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/connector_closed_middle.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/connector_closed_single.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/connector_closed_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/connector_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/connector_middle.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/connector_opened_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/connector_opened_middle.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/connector_opened_single.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/connector_opened_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/connector_single.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/connector_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/folder_closed.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/folder_drop.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/folder_file.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/folder_open.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/folder_opened.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/opener_closed.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/opener_opened.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Window/headerIcon.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Window/resizer_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Window/window_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Window/window_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Window/window_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Window/window_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/accept.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/add_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/approve.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/back.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/back_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/close.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/close_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/close_Down.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/close_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/color_swatch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/column_preferences.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/configure.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/download.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/edit.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/edit_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/exclamation.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/filter.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/first.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/forward.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/forward_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/freezeLeft.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/freezeRight.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/groupby.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/help.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/last.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/next.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/plus.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/plus_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/prev.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/print.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/redo.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/refresh.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/remove.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/remove_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/save.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/search.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/sort_ascending.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/sort_descending.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/text_linespacing.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/undo.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/unfreeze.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/ungroup.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/view.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Disabled_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Disabled_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Disabled_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Down_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Down_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Down_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Over_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Over_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Over_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Selected_Disabled_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Selected_Disabled_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Selected_Disabled_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Selected_Down_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Selected_Down_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Selected_Down_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Selected_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Selected_Over_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Selected_Over_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Selected_Over_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Selected_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Selected_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ColorPicker/crosshair.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ColorPicker/spectrum.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/cssButton/button_Disabled_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/cssButton/button_Down_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/cssButton/button_Over_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/cssButton/button_Selected_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/cssButton/button_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/arrow_closed.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/arrow_closed_down.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/arrow_closed_left.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/arrow_closed_right.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/arrow_open.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/arrow_open_down.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/arrow_open_left.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/arrow_open_right.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/arrow_open_up.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/arrow_opening.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/close.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/close_over.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/colHeader.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/colHeaderDisabled.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/colHeaderLabel.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/colHeaderLabelDown.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/colHeaderOver.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/colHeaderSelected.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/colHeaderSelectedOver.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/header_handle.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/header_handle_over.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/innerHeader.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/innerHeaderDown.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/innerHeaderSelected.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/innerHeaderSelectedOver.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/maximize.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/maximize_over.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/minimize.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/minimize_over.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/rowHeader.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/rowHeaderDisabled.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/rowHeaderLabel.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/rowHeaderLabelDown.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/rowHeaderLabelSelected.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/rowHeaderOver.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/rowHeaderSelected.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/rowHeaderSelectedOver.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/sort_down.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/sort_down_over.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/sort_down_selected.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/sort_down_selected_over.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/sort_up.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/sort_up_over.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/sort_up_selected.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/sort_up_selected_over.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DatabaseBrowser/column.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DatabaseBrowser/data.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DateChooser/arrow_left.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DateChooser/arrow_right.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DateChooser/doubleArrow_left.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DateChooser/doubleArrow_right.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Dialog/confirm.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Dialog/error.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Dialog/notify.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/checked.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/checked_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/checked_Down.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/ColorPicker_icon.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/ColorPicker_icon_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/date_control.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/date_control_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/default_formItem_icon.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/default_formItem_icon_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/default_formItem_icon_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/partialcheck.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/PopUpTextAreaEditor_icon.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/PropSheet_ColorPicker_icon.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/PropSheet_pickbutton.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/PropSheet_pickbutton_Disabled.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/Remove_icon.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/Remove_icon_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/Remove_icon_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/spinner_control_decrease.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/spinner_control_decrease_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/spinner_control_decrease_Focused.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/spinner_control_increase.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/spinner_control_increase_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/spinner_control_increase_Focused.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/text_control.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/text_control_Disabled.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/text_control_Over.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/unchecked.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/unchecked_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/unchecked_Down.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/unsetcheck.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/unsetcheck_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/unsetcheck_Down.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/unsetcheck_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/edges/edge_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/edges/edge_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/edges/edge_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/edges/edge_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/edges/edge_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/edges/edge_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/edges/edge_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/edges/edge_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/FileBrowser/createNewFolder.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/FileBrowser/file.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/FileBrowser/folder.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/FileBrowser/previousFolder.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/FileBrowser/refresh.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/FileBrowser/upOneLevel.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/arrow_down.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/arrow_down_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/arrow_down_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/arrow_left.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/arrow_left_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/arrow_left_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/arrow_right.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/arrow_right_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/arrow_right_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/arrow_up.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/arrow_up_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/arrow_up_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/calculator.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/calculator_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/calculator_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/cart.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/cart_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/cart_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/cascade.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/cascade_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/cascade_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/clipboard.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/clipboard_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/clipboard_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/clock.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/clock_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/clock_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/close.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/close_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/close_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/comment.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/comment_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/comment_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/document.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/document_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/double_arrow_down.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/double_arrow_down_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/double_arrow_down_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/double_arrow_left.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/double_arrow_left_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/double_arrow_left_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/double_arrow_right.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/double_arrow_right_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/double_arrow_right_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/double_arrow_up.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/double_arrow_up_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/double_arrow_up_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/favourite.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/favourite_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/favourite_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/find.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/find_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/find_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/help.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/help_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/help_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/home.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/home_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/home_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/mail.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/mail_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/mail_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/maximize.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/maximize_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/maximize_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/minimize.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/minimize_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/minimize_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/minus.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/minus_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/minus_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/person.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/person_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/person_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/pin_down.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/pin_down_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/pin_down_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/pin_left.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/pin_left_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/pin_left_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/plus.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/plus_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/plus_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/print.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/print_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/print_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/refresh.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/refresh_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/refresh_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/refresh_thin.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/refresh_thin_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/refresh_thin_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/save.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/save_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/save_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/settings.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/settings_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/settings_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/transfer.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/transfer_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/transfer_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/trash.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/trash_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/trash_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/zoom.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/zoom_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/zoom_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ImgButton/button.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ImgButton/button_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ImgButton/button_Down.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ImgButton/button_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/expander_closed.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/expander_opened.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/formula_menuItem.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/group_closed.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/group_opened.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/header.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/header_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/header_Down.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/header_menu.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/header_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/header_Selected.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/header_Selected_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/header_Selected_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/row.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/row_collapsed.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/row_expanded.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/row_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/row_Over_Selected.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/row_Selected.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/row_Selected_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/sort_ascending.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/sort_descending.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/loadingSmall.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/check_disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/menu_background.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/menu_button.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/menu_button_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/menu_button_up.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/menu_button_up_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/menu_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/menu_right.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/menu_rollover.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/menu_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/menu_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/submenu.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/submenu_disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/submenu_disabled_left.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/submenu_down.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/submenu_left.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/MultiUploadItem/icon_add_files.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/MultiUploadItem/icon_add_files_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/MultiUploadItem/icon_remove_files.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/MultiUploadItem/icon_remove_files_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Panel/panel_header.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/clear_picker.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/clear_picker_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/clear_picker_Down.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/clear_picker_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/comboBoxPicker.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/comboBoxPicker_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/comboBoxPicker_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/date_picker.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/date_picker_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/date_picker_Down.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/date_picker_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/refresh_picker.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/refresh_picker_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/refresh_picker_Down.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/refresh_picker_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/search_picker.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/search_picker_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/search_picker_Down.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/search_picker_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_Disabled_h_empty_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_Disabled_h_empty_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_Disabled_h_empty_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_Disabled_h_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_Disabled_h_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_Disabled_h_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_Disabled_v_empty_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_Disabled_v_empty_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_Disabled_v_empty_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_Disabled_v_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_Disabled_v_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_Disabled_v_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_h_empty_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_h_empty_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_h_empty_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_h_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_h_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_h_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_v_empty_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_v_empty_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_v_empty_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_v_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_v_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_v_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RecordEditor/add.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RecordEditor/add_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RecordEditor/add_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RecordEditor/check.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RecordEditor/filter.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RecordEditor/filter_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RecordEditor/filter_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RecordEditor/query.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/background_color.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/background_color_Disabled.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/copy.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/copy_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/cut.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/cut_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/indent.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/indent_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/link_new.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/outdent.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/outdent_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/paste.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/paste_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/separator.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/separator_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/text_align_center.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/text_align_center_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/text_align_justified.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/text_align_justified_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/text_align_left.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/text_align_left_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/text_align_right.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/text_align_right_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/text_bold.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/text_color.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/text_color_Disabled.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/text_italic.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/text_underline.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SchemaViewer/complexType.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SchemaViewer/operation.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SchemaViewer/simpleType.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_corner.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_Disabled_corner.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_Disabled_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_Disabled_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_Disabled_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_Disabled_track.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_Down_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_Down_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_Down_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_Down_track.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_Over_corner.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_Over_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_Over_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_Over_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_Over_track.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_track.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hthumb_Disabled_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hthumb_Disabled_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hthumb_Disabled_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hthumb_Down_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hthumb_Down_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hthumb_Down_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hthumb_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hthumb_grip.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hthumb_grip_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hthumb_Over_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hthumb_Over_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hthumb_Over_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hthumb_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hthumb_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_corner.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_Disabled_corner.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_Disabled_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_Disabled_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_Disabled_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_Disabled_track.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_Down_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_Down_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_Down_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_Down_track.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_Over_corner.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_Over_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_Over_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_Over_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_Over_track.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_track.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vthumb_Disabled_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vthumb_Disabled_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vthumb_Disabled_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vthumb_Down_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vthumb_Down_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vthumb_Down_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vthumb_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vthumb_grip.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vthumb_grip_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vthumb_Over_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vthumb_Over_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vthumb_Over_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vthumb_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vthumb_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_closed_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_closed_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_closed_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_Disabled_closed_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_Disabled_closed_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_Disabled_closed_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_Disabled_opened_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_Disabled_opened_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_Disabled_opened_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_opened_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_opened_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_opened_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_Over_closed_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_Over_closed_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_Over_closed_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_Over_opened_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_Over_opened_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_Over_opened_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/opener_closed.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/opener_opened.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/opener_opened_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/opener_opened_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/opener_opened_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/background.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/progressCursorTracker.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds_center.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds1_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds1_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds1_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds1_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds1_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds1_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds1_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds1_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds10_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds10_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds10_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds10_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds10_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds10_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds10_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds10_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds2_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds2_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds2_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds2_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds2_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds2_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds2_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds2_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds3_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds3_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds3_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds3_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds3_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds3_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds3_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds3_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds4_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds4_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds4_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds4_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds4_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds4_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds4_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds4_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds5_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds5_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds5_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds5_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds5_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds5_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds5_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds5_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds6_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds6_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds6_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds6_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds6_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds6_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds6_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds6_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds7_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds7_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds7_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds7_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds7_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds7_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds7_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds7_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds8_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds8_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds8_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds8_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds8_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds8_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds8_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds8_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds9_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds9_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds9_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds9_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds9_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds9_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds9_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds9_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/hthumb.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/hthumb_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/hthumb_down.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/htrack_Disabled_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/htrack_Disabled_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/htrack_Disabled_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/htrack_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/htrack_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/htrack_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/vthumb.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/vthumb_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/vthumb_down.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/vtrack_Disabled_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/vtrack_Disabled_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/vtrack_Disabled_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/vtrack_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/vtrack_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/vtrack_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Splitbar/hsplit_bg.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Splitbar/hsplit_Disabled_bg.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Splitbar/hsplit_snap.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Splitbar/hsplit_snap_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Splitbar/vsplit_bg.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Splitbar/vsplit_Disabled_bg.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Splitbar/vsplit_snap.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Splitbar/vsplit_snap_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/baseline_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/baseline_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/baseline_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Disabled_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Disabled_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Disabled_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Over_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Over_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Over_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Selected_Disabled_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Selected_Disabled_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Selected_Disabled_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Selected_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Selected_Over_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Selected_Over_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Selected_Over_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Selected_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Selected_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/close.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/close_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Disabled_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Disabled_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Disabled_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Over_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Over_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Over_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Selected_Disabled_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Selected_Disabled_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Selected_Disabled_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Selected_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Selected_Over_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Selected_Over_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Selected_Over_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Selected_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Selected_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/baseline_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/baseline_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/baseline_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/close.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/close_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Disabled_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Disabled_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Disabled_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Over_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Over_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Over_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Selected_Disabled_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Selected_Disabled_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Selected_Disabled_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Selected_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Selected_Over_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Selected_Over_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Selected_Over_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Selected_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Selected_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/baseline_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/baseline_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/baseline_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/close.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/close_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Disabled_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Disabled_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Disabled_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Over_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Over_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Over_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Selected_Disabled_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Selected_Disabled_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Selected_Disabled_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Selected_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Selected_Over_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Selected_Over_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Selected_Over_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Selected_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Selected_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/close.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/close_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/picker_bottom.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/picker_Disabled_bottom.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/picker_Disabled_left.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/picker_Disabled_right.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/picker_Disabled_top.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/picker_Down_bottom.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/picker_Down_left.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/picker_Down_right.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/picker_Down_top.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/picker_left.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/picker_right.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/picker_top.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_bottom_back.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_bottom_forward.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Disabled_bottom_back.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Disabled_bottom_forward.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Disabled_left_back.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Disabled_left_forward.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Disabled_right_back.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Disabled_right_forward.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Disabled_top_back.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Disabled_top_forward.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Down_bottom_back.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Down_bottom_forward.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Down_left_back.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Down_left_forward.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Down_right_back.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Down_right_forward.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Down_top_back.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Down_top_forward.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_left_back.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_left_forward.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_right_back.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_right_forward.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_top_back.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_top_forward.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TileGrid/tileOver.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/background.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/background_vertical.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Disabled_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Disabled_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Disabled_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Down_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Down_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Down_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Over_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Over_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Over_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Selected_Down_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Selected_Down_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Selected_Down_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Selected_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Selected_Over_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Selected_Over_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Selected_Over_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Selected_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Selected_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/hresizer.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/hresizer_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/hseparator.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/hseparator_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/resizer.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/resizer_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/separator.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/separator_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/delete.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/delete_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/delete_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/down.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/down_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/down_last.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/down_last_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/down_last_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/down_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/left.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/left_all.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/left_all_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/left_all_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/left_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/left_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/right.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/right_all.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/right_all_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/right_all_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/right_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/right_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/up.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/up_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/up_first.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/up_first_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/up_first_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/up_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/connector_ancestor.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/connector_closed_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/connector_closed_middle.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/connector_closed_single.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/connector_closed_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/connector_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/connector_middle.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/connector_opened_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/connector_opened_middle.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/connector_opened_single.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/connector_opened_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/connector_single.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/connector_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/file.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/folder_closed.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/folder_drop.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/folder_file.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/folder_open.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/folder_opened.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/opener_closed.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/opener_opened.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Window/headerIcon.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Window/resizer.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Window/resizer_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Window/window_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Window/window_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Window/window_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Window/window_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Window/window_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Window/window_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Window/window_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Window/window_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/unsupported_browser.html 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/add_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/back_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/close_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/close_Down.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/close_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/color_swatch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/column_preferences.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/edit_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/exclamation.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/forward_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/freezeLeft.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/freezeRight.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/plus_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/remove_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/sort_ascending.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/sort_descending.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/text_linespacing.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Disabled_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Disabled_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Disabled_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Down_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Down_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Down_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Over_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Over_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Over_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Selected_Down_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Selected_Down_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Selected_Down_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Selected_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Selected_Over_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Selected_Over_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Selected_Over_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Selected_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Selected_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ColorPicker/crosshair.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ColorPicker/spectrum.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/controls/comboBoxPicker.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/controls/comboBoxPicker_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/controls/comboBoxPicker_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/controls/date_control.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/controls/date_control_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/controls/spinner_control_decrease.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/controls/spinner_control_decrease_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/controls/spinner_control_decrease_Focused.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/controls/spinner_control_increase.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/controls/spinner_control_increase_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/controls/spinner_control_increase_Focused.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/cssButton/button_Disabled_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/cssButton/button_Down_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/cssButton/button_Over_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/cssButton/button_Selected_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/cssButton/button_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/arrow_closed.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/arrow_closed_down.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/arrow_closed_left.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/arrow_closed_right.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/arrow_open.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/arrow_open_down.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/arrow_open_left.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/arrow_open_right.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/arrow_open_up.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/arrow_opening.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/close_over.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/colHeader.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/colHeaderDisabled.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/colHeaderLabel.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/colHeaderLabelDown.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/colHeaderOver.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/colHeaderSelected.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/colHeaderSelectedOver.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/header_handle.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/header_handle_over.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/innerHeader.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/innerHeaderDown.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/innerHeaderSelected.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/innerHeaderSelectedOver.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/maximize_over.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/minimize_over.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/rowHeader.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/rowHeaderDisabled.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/rowHeaderLabel.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/rowHeaderLabelDown.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/rowHeaderLabelSelected.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/rowHeaderOver.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/rowHeaderSelected.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/rowHeaderSelectedOver.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/sort_down.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/sort_down_over.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/sort_down_selected.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/sort_down_selected_over.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/sort_up_over.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/sort_up_selected.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/sort_up_selected_over.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DatabaseBrowser/column.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DatabaseBrowser/data.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DateChooser/arrow_left.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DateChooser/arrow_right.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DateChooser/doubleArrow_left.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DateChooser/doubleArrow_right.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/checked.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/checked_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/checked_Down.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/ColorPicker_icon.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/ColorPicker_icon_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/date_control.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/date_control_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/default_formItem_icon.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/default_formItem_icon_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/default_formItem_icon_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/partialcheck.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/PopUpTextAreaEditor_icon.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/PropSheet_ColorPicker_icon.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/PropSheet_pickbutton.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/PropSheet_pickbutton_Disabled.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/Remove_icon.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/Remove_icon_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/Remove_icon_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/spinner_control_decrease.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/spinner_control_decrease_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/spinner_control_decrease_Focused.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/spinner_control_increase.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/spinner_control_increase_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/spinner_control_increase_Focused.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/text_control.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/text_control_Disabled.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/text_control_Over.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/unchecked.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/unchecked_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/unchecked_Down.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/unsetcheck.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/unsetcheck_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/unsetcheck_Down.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/unsetcheck_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/FileBrowser/createNewFolder.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/FileBrowser/folder.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/FileBrowser/previousFolder.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/FileBrowser/refresh.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/FileBrowser/upOneLevel.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/arrow_down.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/arrow_down_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/arrow_down_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/arrow_left.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/arrow_left_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/arrow_left_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/arrow_right.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/arrow_right_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/arrow_right_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/arrow_up.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/arrow_up_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/arrow_up_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/calculator.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/calculator_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/calculator_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/cart_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/cart_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/cascade.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/cascade_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/cascade_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/clipboard.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/clipboard_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/clipboard_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/clock_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/clock_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/close_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/close_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/comment.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/comment_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/comment_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/document.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/document_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/double_arrow_down.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/double_arrow_down_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/double_arrow_down_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/double_arrow_left.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/double_arrow_left_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/double_arrow_left_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/double_arrow_right.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/double_arrow_right_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/double_arrow_right_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/double_arrow_up.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/double_arrow_up_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/double_arrow_up_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/favourite.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/favourite_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/favourite_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/find_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/find_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/help_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/help_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/home_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/home_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/mail_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/mail_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/maximize.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/maximize_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/maximize_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/minimize.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/minimize_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/minimize_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/minus_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/minus_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/person.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/person_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/person_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/pin_down.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/pin_down_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/pin_down_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/pin_left.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/pin_left_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/pin_left_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/plus_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/plus_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/print_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/print_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/refresh.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/refresh_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/refresh_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/refresh_thin.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/refresh_thin_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/refresh_thin_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/save_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/save_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/settings.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/settings_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/settings_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/transfer.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/transfer_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/transfer_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/trash_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/trash_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/zoom_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/zoom_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ImgButton/button_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ImgButton/button_Down.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ImgButton/button_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/expander_closed.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/expander_opened.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/formula_menuItem.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/group_closed.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/group_opened.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/header_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/header_Down.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/header_menu.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/header_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/header_Selected.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/header_Selected_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/header_Selected_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/headerSprite.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/row_collapsed.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/row_expanded.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/row_Over_Selected.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/row_Selected.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/row_Selected_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/sort_ascending.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/sort_descending.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/check_disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/menu_background.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/menu_button_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/menu_button_up.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/menu_button_up_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/menu_rollover.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/submenu_disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/submenu_disabled_left.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/MultiUploadItem/icon_add_files.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/MultiUploadItem/icon_add_files_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/MultiUploadItem/icon_remove_files.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/MultiUploadItem/icon_remove_files_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Panel/panel_header.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/clear_picker.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/clear_picker_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/clear_picker_Down.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/clear_picker_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/comboBoxPicker.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/comboBoxPicker_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/comboBoxPicker_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/date_picker.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/date_picker_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/date_picker_Down.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/date_picker_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/refresh_picker.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/refresh_picker_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/refresh_picker_Down.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/refresh_picker_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/search_picker.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/search_picker_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/search_picker_Down.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/search_picker_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_Disabled_h_empty_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_Disabled_h_empty_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_Disabled_h_empty_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_Disabled_h_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_Disabled_h_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_Disabled_h_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_Disabled_v_empty_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_Disabled_v_empty_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_Disabled_v_empty_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_Disabled_v_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_Disabled_v_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_Disabled_v_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_h_empty_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_h_empty_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_h_empty_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_h_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_h_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_h_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_v_empty_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_v_empty_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_v_empty_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_v_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_v_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_v_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RecordEditor/add_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RecordEditor/add_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RecordEditor/check.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RecordEditor/filter.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RecordEditor/filter_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RecordEditor/filter_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RecordEditor/query.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/background_color.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/background_color_Disabled.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/copy.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/copy_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/cut.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/cut_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/indent.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/indent_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/link_new.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/outdent.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/outdent_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/paste.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/paste_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/separator.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/separator_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/text_align_center.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/text_align_center_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/text_align_justified.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/text_align_justified_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/text_align_left.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/text_align_left_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/text_align_right.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/text_align_right_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/text_bold.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/text_color.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/text_color_Disabled.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/text_italic.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/text_underline.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SchemaViewer/complexType.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SchemaViewer/operation.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SchemaViewer/simpleType.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_corner.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_Disabled_corner.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_Disabled_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_Disabled_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_Disabled_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_Disabled_track.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_Down_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_Down_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_Down_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_Down_track.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_Over_corner.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_Over_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_Over_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_Over_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_Over_track.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_track.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hthumb_Disabled_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hthumb_Disabled_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hthumb_Disabled_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hthumb_Down_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hthumb_Down_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hthumb_Down_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hthumb_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hthumb_grip.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hthumb_grip_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hthumb_Over_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hthumb_Over_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hthumb_Over_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hthumb_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hthumb_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_corner.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_Disabled_corner.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_Disabled_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_Disabled_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_Disabled_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_Disabled_track.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_Down_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_Down_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_Down_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_Down_track.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_Over_corner.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_Over_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_Over_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_Over_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_Over_track.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_track.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vthumb_Disabled_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vthumb_Disabled_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vthumb_Disabled_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vthumb_Down_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vthumb_Down_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vthumb_Down_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vthumb_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vthumb_grip.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vthumb_grip_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vthumb_Over_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vthumb_Over_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vthumb_Over_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vthumb_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vthumb_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_closed_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_closed_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_closed_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_Disabled_closed_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_Disabled_closed_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_Disabled_closed_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_Disabled_opened_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_Disabled_opened_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_Disabled_opened_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_opened_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_opened_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_opened_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_Over_closed_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_Over_closed_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_Over_closed_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_Over_opened_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_Over_opened_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_Over_opened_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/opener_closed.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/opener_opened.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/opener_opened_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/opener_opened_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/opener_opened_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/progressCursorTracker.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds_center.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds1_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds1_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds1_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds1_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds1_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds1_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds1_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds1_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds10_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds10_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds10_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds10_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds10_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds10_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds10_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds10_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds2_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds2_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds2_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds2_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds2_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds2_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds2_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds2_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds3_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds3_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds3_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds3_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds3_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds3_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds3_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds3_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds4_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds4_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds4_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds4_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds4_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds4_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds4_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds4_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds5_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds5_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds5_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds5_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds5_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds5_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds5_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds5_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds6_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds6_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds6_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds6_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds6_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds6_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds6_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds6_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds7_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds7_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds7_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds7_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds7_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds7_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds7_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds7_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds8_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds8_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds8_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds8_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds8_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds8_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds8_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds8_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds9_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds9_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds9_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds9_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds9_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds9_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds9_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds9_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/hthumb_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/hthumb_down.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/htrack_Disabled_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/htrack_Disabled_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/htrack_Disabled_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/htrack_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/htrack_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/vthumb_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/vthumb_down.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/vtrack_Disabled_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/vtrack_Disabled_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/vtrack_Disabled_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/vtrack_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/vtrack_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Splitbar/hsplit_bg.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Splitbar/hsplit_Disabled_bg.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Splitbar/hsplit_snap.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Splitbar/hsplit_snap_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Splitbar/vsplit_bg.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Splitbar/vsplit_Disabled_bg.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Splitbar/vsplit_snap.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Splitbar/vsplit_snap_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/baseline_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/baseline_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/baseline_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Disabled_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Disabled_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Disabled_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Over_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Over_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Over_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Selected_Disabled_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Selected_Disabled_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Selected_Disabled_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Selected_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Selected_Over_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Selected_Over_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Selected_Over_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Selected_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Selected_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/close_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Disabled_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Disabled_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Disabled_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Over_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Over_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Over_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Selected_Disabled_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Selected_Disabled_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Selected_Disabled_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Selected_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Selected_Over_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Selected_Over_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Selected_Over_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Selected_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Selected_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/baseline_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/baseline_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/baseline_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/close_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Disabled_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Disabled_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Disabled_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Over_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Over_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Over_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Selected_Disabled_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Selected_Disabled_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Selected_Disabled_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Selected_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Selected_Over_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Selected_Over_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Selected_Over_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Selected_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Selected_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/baseline_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/baseline_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/baseline_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/close_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Disabled_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Disabled_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Disabled_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Over_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Over_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Over_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Selected_Disabled_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Selected_Disabled_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Selected_Disabled_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Selected_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Selected_Over_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Selected_Over_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Selected_Over_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Selected_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Selected_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/picker_bottom.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/picker_Disabled_bottom.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/picker_Disabled_left.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/picker_Disabled_right.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/picker_Disabled_top.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/picker_Down_bottom.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/picker_Down_left.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/picker_Down_right.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/picker_Down_top.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/picker_left.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/picker_right.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_bottom_back.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_bottom_forward.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Disabled_bottom_back.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Disabled_bottom_forward.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Disabled_left_back.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Disabled_left_forward.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Disabled_right_back.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Disabled_right_forward.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Disabled_top_back.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Disabled_top_forward.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Down_bottom_back.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Down_bottom_forward.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Down_left_back.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Down_left_forward.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Down_right_back.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Down_right_forward.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Down_top_back.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Down_top_forward.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_left_back.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_left_forward.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_right_back.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_right_forward.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_top_back.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_top_forward.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/background.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/background_vertical.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Disabled_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Disabled_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Disabled_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Down_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Down_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Down_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Over_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Over_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Over_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Selected_Disabled_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Selected_Disabled_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Selected_Disabled_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Selected_Down_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Selected_Down_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Selected_Down_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Selected_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Selected_Over_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Selected_Over_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Selected_Over_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Selected_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Selected_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/hresizer.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/hresizer_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/hseparator.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/hseparator_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/resizer_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/separator.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/separator_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/delete.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/delete_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/delete_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/down.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/down_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/down_last.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/down_last_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/down_last_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/down_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/left.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/left_all.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/left_all_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/left_all_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/left_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/left_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/right.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/right_all.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/right_all_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/right_all_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/right_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/right_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/up_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/up_first.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/up_first_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/up_first_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/up_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/connector_ancestor.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/connector_closed_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/connector_closed_middle.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/connector_closed_single.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/connector_closed_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/connector_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/connector_middle.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/connector_opened_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/connector_opened_middle.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/connector_opened_single.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/connector_opened_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/connector_single.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/connector_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/folder_closed.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/folder_drop.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/folder_file.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/folder_open.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/folder_opened.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/opener_closed.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/opener_opened.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/close_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_alldown_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_alldown_Normal.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_alldown_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_allleft_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_allleft_Normal.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_allleft_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_allright_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_allright_Normal.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_allright_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_allup_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_allup_Normal.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_allup_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_automate_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_automate_Normal.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_automate_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_calculator_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_calculator_Normal.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_calculator_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_cart_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_cart_Normal.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_cart_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_cascade_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_cascade_Normal.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_cascade_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_clipboard_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_clipboard_Normal.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_clipboard_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_clock_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_clock_Normal.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_clock_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_comment_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_comment_Normal.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_comment_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_document_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_document_Normal.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_document_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_down_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_down_Normal.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_down_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_downpin_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_downpin_Normal.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_downpin_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_find_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_find_Normal.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_find_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_heart_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_heart_Normal.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_heart_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_help_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_help_Normal.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_help_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_home_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_home_Normal.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_home_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_left_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_left_Normal.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_left_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_leftpin_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_leftpin_Normal.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_leftpin_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_mail_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_mail_Normal.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_mail_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_minus_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_minus_Normal.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_minus_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_person_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_person_Normal.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_person_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_plus_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_plus_Normal.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_plus_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_print_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_print_Normal.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_print_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_reset_thick_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_reset_thick_Normal.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_reset_thick_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_reset_thin_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_reset_thin_Normal.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_reset_thin_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_right_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_right_Normal.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_right_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_save_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_save_Normal.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_save_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_transfer_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_transfer_Normal.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_transfer_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_trash_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_trash_Normal.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_trash_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_up_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_up_Normal.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_up_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_zoom_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_zoom_Normal.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_zoom_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/maximize_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/maximize_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/minimize_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/minimize_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/resizer_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/approve.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/column_preferences.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/configure.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/download.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/forward.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/freezeLeft.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/freezeRight.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/groupby.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/refresh.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/sort_ascending.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/sort_descending.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/unfreeze.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/ungroup.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/AdvancedFilter/Remove_Row_disabled_icon.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/AdvancedFilter/Remove_Row_icon.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Disabled_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Disabled_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Disabled_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Down_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Down_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Down_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Over_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Over_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Over_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Selected_Disabled_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Selected_Disabled_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Selected_Disabled_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Selected_Down_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Selected_Down_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Selected_Down_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Selected_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Selected_Over_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Selected_Over_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Selected_Over_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Selected_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Selected_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ColorChooser/auto_icon.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ColorChooser/transparent_icon.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ColorPicker/crosshair.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ColorPicker/spectrum.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/common/arrow_disabled_down.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/common/arrow_disabled_left.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/common/arrow_disabled_right.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/common/arrow_disabled_up.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/common/arrow_down.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/common/arrow_left.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/common/arrow_right.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/common/arrow_up.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/date_control.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/date_control_Disabled.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/date_control_Down.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/date_control_Over.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/dropdown_control.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/dropdown_control_Disabled.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/dropdown_control_down.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/dropdown_control_inside.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/dropdown_control_inside_Disabled.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/dropdown_control_inside_down.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/dropdown_control_inside_Over.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/dropdown_control_Over.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/helper_control.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/helper_control_Disabled.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/helper_control_Over.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/spinner_control_decrease.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/spinner_control_decrease_Disabled.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/spinner_control_decrease_down.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/spinner_control_decrease_Over.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/spinner_control_increase.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/spinner_control_increase_Disabled.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/spinner_control_increase_down.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/spinner_control_increase_Over.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/text_control.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/text_control_Disabled.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/text_control_down.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/text_control_Over.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_808080_BL.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_808080_BR.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_808080_TL.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_808080_TR.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_8080FF_BL.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_8080FF_BR.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_8080FF_TL.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_8080FF_TR.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_D6D6D6_BL.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_D6D6D6_BR.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_D6D6D6_TL.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_D6D6D6_TR.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_DDDDDD_BL.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_DDDDDD_BR.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_DDDDDD_TL.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_DDDDDD_TR.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_EEEEEE_BL.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_EEEEEE_BR.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_EEEEEE_TL.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_EEEEEE_TR.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_FFFFFF_BL.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_FFFFFF_BR.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_FFFFFF_TL.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_FFFFFF_TR.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/arrow_closed.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/arrow_closed_down.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/arrow_closed_left.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/arrow_closed_right.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/arrow_open.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/arrow_open_down.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/arrow_open_left.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/arrow_open_right.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/arrow_open_up.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/arrow_opening.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/close_over.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/colHeader.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/colHeaderLabel.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/colHeaderLabelDown.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/colHeaderOver.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/colHeaderSelected.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/colHeaderSelectedOver.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/CubeGrid.psd 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/header_handle.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/header_handle_over.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/innerHeader.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/innerHeaderSelected.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/innerHeaderSelectedOver.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/maximize.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/maximize_over.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/minimize.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/minimize_over.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/rowHeader.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/rowHeaderLabel.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/rowHeaderLabelDown.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/rowHeaderOver.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/rowHeaderSelected.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/rowHeaderSelectedOver.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/sort_down.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/sort_down_over.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/sort_down_selected.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/sort_down_selected_over.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/sort_up.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/sort_up_over.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/sort_up_selected.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/sort_up_selected_over.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/validation_error_icon.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DatabaseBrowser/column.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DatabaseBrowser/data.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DateChooser/arrow_left.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DateChooser/arrow_right.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DateChooser/doubleArrow_left.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DateChooser/doubleArrow_right.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/checked.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/checked_Disabled.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/checked_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/checked_Down.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/checked_Over.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/ColorPicker_icon.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/ComboBoxItem_PickButton_icon.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/ComboBoxItem_PickButton_icon_Disabled.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/ComboBoxItem_PickButton_icon_Over.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/date_control.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/DatePicker_icon.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/DatePicker_icon_Disabled.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/default_formItem_icon.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/default_formItem_icon_Disabled.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/default_formItem_icon_Over.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/PopUpTextAreaEditor_icon.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/PropSheet_ColorPicker_icon.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/PropSheet_pickbutton.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/PropSheet_pickbutton_Disabled.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/Remove_icon.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/Remove_icon_Disabled.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/Remove_icon_Over.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/SelectItem_PickButton_icon.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/SelectItem_PickButton_icon_Disabled.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/SelectItem_PickButton_icon_Over.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/Spinner_decrease_icon.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/Spinner_decrease_icon_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/Spinner_decrease_icon_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/Spinner_increase_icon.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/Spinner_increase_icon_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/Spinner_increase_icon_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/unchecked.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/unchecked_Disabled.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/unchecked_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/unchecked_Down.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/unchecked_Over.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/unsetcheck_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/validation_error.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/validation_error_icon.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/validation_error_icon.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_B.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_BL.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_BR.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_L.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_R.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_T.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_TL.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_TR.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_B.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_BL.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_BR.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_L.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_R.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_T.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_TL.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_TR.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_B.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_BL.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_BR.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_L.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_R.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_T.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_TL.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_TR.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_B.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_BL.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_BR.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_L.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_R.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_T.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_TL.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_TR.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/10_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/10_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/10_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/10_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/10_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/10_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/10_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/10_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/3_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/3_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/3_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/3_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/3_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/3_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/3_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/3_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/4_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/4_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/4_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/4_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/4_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/4_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/4_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/4_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/5_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/5_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/5_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/5_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/5_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/5_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/5_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/5_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/6_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/6_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/6_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/6_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/6_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/6_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/6_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/6_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/7_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/7_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/7_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/7_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/7_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/7_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/7_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/7_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/8_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/8_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/8_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/8_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/8_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/8_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/8_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/8_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/9_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/9_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/9_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/9_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/9_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/9_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/9_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/9_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/10_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/10_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/10_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/10_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/10_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/10_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/10_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/10_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/3_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/3_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/3_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/3_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/3_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/3_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/3_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/3_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/4_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/4_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/4_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/4_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/4_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/4_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/4_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/4_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/5_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/5_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/5_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/5_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/5_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/5_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/5_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/5_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/6_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/6_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/6_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/6_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/6_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/6_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/6_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/6_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/7_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/7_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/7_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/7_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/7_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/7_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/7_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/7_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/8_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/8_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/8_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/8_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/8_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/8_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/8_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/8_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/9_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/9_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/9_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/9_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/9_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/9_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/9_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/9_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/10_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/10_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/10_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/10_center.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/10_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/10_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/10_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/10_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/10_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/3_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/3_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/3_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/3_center.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/3_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/3_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/3_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/3_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/3_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/4_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/4_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/4_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/4_center.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/4_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/4_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/4_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/4_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/4_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/5_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/5_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/5_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/5_center.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/5_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/5_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/5_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/5_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/5_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/6_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/6_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/6_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/6_center.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/6_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/6_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/6_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/6_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/6_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/7_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/7_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/7_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/7_center.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/7_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/7_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/7_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/7_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/7_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/8_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/8_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/8_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/8_center.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/8_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/8_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/8_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/8_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/8_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/9_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/9_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/9_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/9_center.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/9_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/9_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/9_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/9_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/9_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/10_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/10_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/10_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/10_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/10_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/10_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/10_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/10_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/3_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/3_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/3_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/3_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/3_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/3_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/3_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/3_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/4_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/4_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/4_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/4_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/4_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/4_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/4_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/4_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/5_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/5_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/5_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/5_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/5_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/5_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/5_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/5_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/6_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/6_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/6_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/6_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/6_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/6_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/6_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/6_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/7_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/7_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/7_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/7_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/7_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/7_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/7_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/7_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/8_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/8_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/8_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/8_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/8_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/8_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/8_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/8_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/9_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/9_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/9_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/9_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/9_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/9_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/9_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/9_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/10_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/10_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/10_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/10_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/10_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/10_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/10_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/10_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/3_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/3_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/3_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/3_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/3_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/3_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/3_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/3_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/4_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/4_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/4_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/4_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/4_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/4_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/4_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/4_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/5_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/5_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/5_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/5_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/5_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/5_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/5_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/5_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/6_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/6_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/6_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/6_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/6_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/6_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/6_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/6_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/7_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/7_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/7_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/7_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/7_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/7_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/7_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/7_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/8_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/8_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/8_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/8_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/8_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/8_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/8_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/8_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/9_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/9_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/9_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/9_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/9_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/9_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/9_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/9_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/10_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/10_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/10_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/10_center.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/10_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/10_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/10_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/10_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/10_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/3_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/3_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/3_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/3_center.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/3_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/3_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/3_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/3_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/3_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/4_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/4_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/4_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/4_center.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/4_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/4_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/4_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/4_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/4_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/5_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/5_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/5_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/5_center.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/5_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/5_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/5_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/5_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/5_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/6_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/6_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/6_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/6_center.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/6_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/6_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/6_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/6_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/6_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/7_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/7_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/7_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/7_center.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/7_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/7_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/7_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/7_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/7_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/8_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/8_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/8_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/8_center.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/8_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/8_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/8_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/8_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/8_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/9_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/9_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/9_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/9_center.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/9_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/9_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/9_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/9_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/9_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/10_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/10_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/10_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/10_center.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/10_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/10_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/10_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/10_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/10_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/3_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/3_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/3_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/3_center.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/3_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/3_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/3_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/3_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/3_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/4_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/4_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/4_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/4_center.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/4_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/4_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/4_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/4_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/4_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/5_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/5_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/5_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/5_center.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/5_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/5_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/5_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/5_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/5_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/6_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/6_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/6_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/6_center.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/6_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/6_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/6_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/6_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/6_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/7_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/7_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/7_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/7_center.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/7_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/7_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/7_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/7_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/7_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/8_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/8_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/8_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/8_center.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/8_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/8_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/8_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/8_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/8_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/9_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/9_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/9_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/9_center.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/9_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/9_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/9_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/9_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/9_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/FileBrowser/createNewFolder.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/FileBrowser/file.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/FileBrowser/folder.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/FileBrowser/previousFolder.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/FileBrowser/refresh.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/FileBrowser/upOneLevel.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ImgButton/button.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ImgButton/button_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ImgButton/button_Down.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ImgButton/button_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/checked.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/formula_menuItem.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/group_closed.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/group_closed_rtl.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/group_Disabled_closed.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/group_Disabled_opened.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/group_opened.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/group_opening.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Disabled_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Disabled_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Disabled_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Disabled_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Disabled_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Disabled_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Down_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Down_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Down_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Down_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Down_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Down_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Over_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Over_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Over_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Over_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Over_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Over_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Disabled_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Disabled_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Disabled_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Disabled_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Disabled_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Disabled_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Down_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Down_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Down_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Down_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Down_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Down_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Over_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Over_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Over_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Over_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Over_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Over_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/headerMenuButton_icon.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/sort_ascending.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/sort_descending.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/tracker.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/validation_error_icon.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Menu/check_disabled.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Menu/menu_button.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Menu/menu_button_Disabled.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Menu/menu_button_up.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Menu/menu_button_up_Disabled.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Menu/submenu_disabled.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Menu/submenu_disabled_left.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Menu/submenu_down.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Menu/submenu_left.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/MultiFileItem/icon_add_files.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/MultiFileItem/icon_add_files_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/MultiFileItem/icon_remove_files.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/MultiFileItem/icon_remove_files_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/MultiUploadItem/icon_add_files.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/MultiUploadItem/icon_add_files_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/MultiUploadItem/icon_remove_files.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/MultiUploadItem/icon_remove_files_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/close_disabled.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/close_down.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/close_over.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/customize.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/customize_disabled.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/customize_down.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/customize_over.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/maximize.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/maximize_disabled.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/maximize_down.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/maximize_over.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/minimize.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/minimize_disabled.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/minimize_down.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/minimize_over.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/Portlet.psd 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Progressbar/Progressbar.psd 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Progressbar/progressbar_bar_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Progressbar/progressbar_bar_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Progressbar/progressbar_bar_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Progressbar/progressbar_empty_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Progressbar/progressbar_empty_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Progressbar/progressbar_empty_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Progressbar/spacer.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RecordEditor/add.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RecordEditor/add_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RecordEditor/add_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RecordEditor/check.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RecordEditor/filter.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RecordEditor/filter_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RecordEditor/filter_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RecordEditor/query.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/background_color.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/background_color_Disabled.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/copy.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/copy_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/cut.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/cut_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/indent.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/indent_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/link_new.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/outdent.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/outdent_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/paste.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/paste_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/separator.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/separator_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/text_align_center.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/text_align_center_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/text_align_justified.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/text_align_justified_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/text_align_left.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/text_align_left_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/text_align_right.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/text_align_right_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/text_bold.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/text_color.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/text_color_Disabled.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/text_italic.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/text_underline.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SchemaViewer/complexType.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SchemaViewer/operation.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SchemaViewer/simpleType.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hscroll_corner.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hscroll_Disabled_corner.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hscroll_Disabled_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hscroll_Disabled_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hscroll_Disabled_track.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hscroll_Down_corner.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hscroll_Down_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hscroll_Down_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hscroll_Down_track.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hscroll_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hscroll_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hscroll_track.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hthumb_Disabled_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hthumb_Disabled_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hthumb_Disabled_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hthumb_Down_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hthumb_Down_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hthumb_Down_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hthumb_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hthumb_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hthumb_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/scrollbar.psd 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vscroll_corner.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vscroll_Disabled_corner.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vscroll_Disabled_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vscroll_Disabled_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vscroll_Disabled_track.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vscroll_Down_corner.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vscroll_Down_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vscroll_Down_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vscroll_Down_track.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vscroll_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vscroll_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vscroll_track.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vthumb_Disabled_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vthumb_Disabled_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vthumb_Disabled_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vthumb_Down_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vthumb_Down_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vthumb_Down_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vthumb_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vthumb_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vthumb_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/header_closed_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/header_closed_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/header_closed_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/header_Disabled_closed_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/header_Disabled_closed_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/header_Disabled_closed_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/header_Disabled_opened_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/header_Disabled_opened_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/header_Disabled_opened_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/header_opened_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/header_opened_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/header_opened_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/opener_closed.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/opener_Disabled_closed.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/opener_Disabled_opened.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/opener_opened.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/blue/header_closed_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/blue/header_closed_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/blue/header_closed_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/blue/header_opened_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/blue/header_opened_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/blue/header_opened_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/header_closed_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/header_closed_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/header_closed_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/header_Disabled_closed_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/header_Disabled_closed_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/header_Disabled_closed_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/header_Disabled_opened_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/header_Disabled_opened_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/header_Disabled_opened_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/header_opened_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/header_opened_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/header_opened_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/progressCursorTracker.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds_center.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds1_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds1_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds1_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds1_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds1_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds1_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds1_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds1_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds10_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds10_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds10_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds10_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds10_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds10_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds10_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds10_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds2_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds2_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds2_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds2_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds2_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds2_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds2_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds2_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds3_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds3_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds3_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds3_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds3_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds3_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds3_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds3_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds4_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds4_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds4_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds4_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds4_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds4_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds4_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds4_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds5_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds5_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds5_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds5_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds5_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds5_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds5_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds5_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds6_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds6_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds6_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds6_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds6_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds6_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds6_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds6_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds7_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds7_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds7_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds7_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds7_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds7_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds7_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds7_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds8_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds8_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds8_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds8_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds8_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds8_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds8_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds8_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds9_B.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds9_BL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds9_BR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds9_L.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds9_R.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds9_T.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds9_TL.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds9_TR.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/hthumb_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/hthumb_down.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/htrack_Disabled_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/htrack_Disabled_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/htrack_Disabled_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/htrack_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/htrack_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/htrack_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/vthumb_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/vthumb_down.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/vtrack_Disabled_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/vtrack_Disabled_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/vtrack_Disabled_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/vtrack_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/vtrack_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/vtrack_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/hsplit_Down_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/hsplit_Down_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/hsplit_Down_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/hsplit_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/hsplit_grip.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/hsplit_grip_Down.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/hsplit_grip_Over.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/hsplit_Over_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/hsplit_Over_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/hsplit_Over_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/hsplit_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/hsplit_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/vsplit_Down_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/vsplit_Down_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/vsplit_Down_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/vsplit_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/vsplit_grip.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/vsplit_grip_Down.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/vsplit_grip_Over.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/vsplit_Over_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/vsplit_Over_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/vsplit_Over_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/vsplit_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/vsplit_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hgrip_Down.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_Down_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_Down_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_Down_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_grip.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_grip_Down.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_grip_Over.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_Over_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_Over_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_Over_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_snap.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_snap_closed.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_snap_Down.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_snap_Down_closed.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_snap_Over.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_snap_Over_closed.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vgrip_Down.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_Down_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_Down_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_Down_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_grip.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_grip_Down.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_grip_Over.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_Over_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_Over_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_Over_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_snap.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_snap_closed.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_snap_Down.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_snap_Down_closed.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_snap_Over.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_snap_Over_closed.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/hsplit_down_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/hsplit_down_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/hsplit_down_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/hsplit_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/hsplit_over_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/hsplit_over_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/hsplit_over_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/hsplit_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/hsplit_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/vsplit_down_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/vsplit_down_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/vsplit_down_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/vsplit_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/vsplit_over_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/vsplit_over_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/vsplit_over_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/vsplit_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/vsplit_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/baseline_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/baseline_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/baseline_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/baseline_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/baseline_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/baseline_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Disabled_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Disabled_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Disabled_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Disabled_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Disabled_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Disabled_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Down_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Down_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Down_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Down_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Down_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Down_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Over_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Over_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Over_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Over_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Over_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Over_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Disabled_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Disabled_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Disabled_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Disabled_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Disabled_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Disabled_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Down_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Down_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Down_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Down_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Down_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Down_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Over_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Over_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Over_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Over_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Over_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Over_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/baseline_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/baseline_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/baseline_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/baseline_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/baseline_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/baseline_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Disabled_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Disabled_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Disabled_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Disabled_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Disabled_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Disabled_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Down_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Down_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Down_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Down_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Down_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Down_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Over_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Over_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Over_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Over_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Over_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Over_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Disabled_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Disabled_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Disabled_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Disabled_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Disabled_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Disabled_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Down_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Down_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Down_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Down_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Down_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Down_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Over_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Over_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Over_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Over_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Over_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Over_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/baseline_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/baseline_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/baseline_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/baseline_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/baseline_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/baseline_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Disabled_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Disabled_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Disabled_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Disabled_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Disabled_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Disabled_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Down_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Down_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Down_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Down_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Down_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Down_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Over_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Over_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Over_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Over_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Over_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Over_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Disabled_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Disabled_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Disabled_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Disabled_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Disabled_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Disabled_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Down_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Down_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Down_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Down_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Down_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Down_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Over_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Over_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Over_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Over_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Over_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Over_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/baseline_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/baseline_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/baseline_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/baseline_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/baseline_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/baseline_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Disabled_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Disabled_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Disabled_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Disabled_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Disabled_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Disabled_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Down_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Down_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Down_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Down_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Down_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Down_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Over_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Over_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Over_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Over_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Over_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Over_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Disabled_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Disabled_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Disabled_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Disabled_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Disabled_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Disabled_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Down_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Down_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Down_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Down_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Down_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Down_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Over_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Over_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Over_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Over_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Over_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Over_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_stretch.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/close_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/hpicker_Disabled.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/hpicker_Down.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/hscroll_back.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/hscroll_Disabled_back.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/hscroll_Disabled_forward.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/hscroll_Down_back.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/hscroll_Down_forward.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/hscroll_forward.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/vpicker_Disabled.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/vpicker_Down.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/vscroll_back.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/vscroll_Disabled_back.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/vscroll_Disabled_forward.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/vscroll_Down_back.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/vscroll_Down_forward.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/vscroll_forward.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Disabled_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Disabled_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Disabled_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Down_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Down_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Down_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Over_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Over_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Over_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Selected_Down_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Selected_Down_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Selected_Down_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Selected_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Selected_Over_end.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Selected_Over_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Selected_Over_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Selected_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Selected_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_start.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_stretch.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/hresizer.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/hresizer_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/hseparator.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/hseparator_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/resizer.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/resizer_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/separator.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/separator_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/checked.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/connector_ancestor.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/connector_closed_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/connector_closed_middle.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/connector_closed_single.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/connector_closed_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/connector_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/connector_middle.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/connector_opened_end.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/connector_opened_middle.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/connector_opened_single.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/connector_opened_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/connector_single.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/connector_start.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/folder_closed.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/folder_closed.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/folder_drop.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/folder_drop.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/folder_file.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/folder_file.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/folder_open.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/folder_open.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/folder_up.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/opener_closed.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/opener_closed_rtl.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/opener_Disabled_closed.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/opener_Disabled_opened.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/opener_opened.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/opener_opening.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/sort_ascending.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/sort_descending.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/TreeGrid.psd 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/validation_error_icon.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/close_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/close_Down.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/close_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/collapse.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/collapse_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/collapse_Down.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/collapse_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/edit_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/edit_Down.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/edit_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/expand_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/expand_Down.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/expand_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/headerGradient.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/headerGradient.psd 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/headerGradient_hilite.gif 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/headerIcon.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/help_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/help_Down.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/help_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/maximize.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/maximize_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/maximize_Down.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/maximize_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/minimize.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/minimize_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/minimize_Down.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/minimize_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/pin_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/pin_Down.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/pin_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/restore_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/restore_Down.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/restore_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/tree_Disabled.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/tree_Down.png 0(+0 -0)
sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/tree_Over.png 0(+0 -0)
sm-shop/src/main/webapp/resources/templates/exoticamobilia/old/css/responsive-slider.css 178(+0 -178)
sm-shop/src/main/webapp/resources/templates/exoticamobilia/old/home3_files/animations.css 161(+0 -161)
sm-shop/src/main/webapp/resources/templates/exoticamobilia/old/home3_files/bootstrap.css 6332(+0 -6332)
sm-shop/src/main/webapp/resources/templates/exoticamobilia/old/home3_files/dark_gray.css 522(+0 -522)
sm-shop/src/main/webapp/resources/templates/exoticamobilia/old/home3_files/extralayers.css 1390(+0 -1390)
sm-shop/src/main/webapp/resources/templates/exoticamobilia/old/home3_files/font-awesome.css 1672(+0 -1672)
sm-shop/src/main/webapp/resources/templates/exoticamobilia/old/home3_files/fontello.css 336(+0 -336)
sm-shop/src/main/webapp/resources/templates/exoticamobilia/old/home3_files/jquery_002.js 1357(+0 -1357)
sm-shop/src/main/webapp/resources/templates/exoticamobilia/old/home3_files/jquery_004.js 142(+0 -142)
sm-shop/src/main/webapp/resources/templates/exoticamobilia/old/home3_files/logo_dark_gray.png 0(+0 -0)
sm-shop/src/main/webapp/resources/templates/exoticamobilia/old/home3_files/logo_red_footer.png 0(+0 -0)
sm-shop/src/main/webapp/resources/templates/exoticamobilia/old/home3_files/magnific-popup.css 368(+0 -368)
sm-shop/src/main/webapp/resources/templates/exoticamobilia/old/home3_files/section-image-1.png 0(+0 -0)
sm-shop/src/main/webapp/resources/templates/exoticamobilia/old/home3_files/section-image-2.png 0(+0 -0)
sm-shop/src/main/webapp/resources/templates/exoticamobilia/old/home3_files/section-image-3.png 0(+0 -0)
sm-shop/src/main/webapp/resources/templates/exoticamobilia/old/home3_files/section-image-4.png 0(+0 -0)
sm-shop/src/main/webapp/resources/templates/exoticamobilia/old/home3_files/settings.css 2357(+0 -2357)
sm-shop/src/main/webapp/resources/templates/exoticamobilia/old/home3_files/slider-1-layer-1.png 0(+0 -0)
sm-shop/src/main/webapp/resources/templates/exoticamobilia/old/home3_files/slider-1-layer-2.png 0(+0 -0)
sm-shop/src/main/webapp/resources/templates/exoticamobilia/old/home3_files/style-switcher.css 286(+0 -286)
sm-shop/src/main/webapp/resources/templates/exoticamobilia/old/home3_files/style-switcher.js 309(+0 -309)
sm-shop/src/main/webapp/resources/templates/exoticamobilia/old/home3_files/template.js 1023(+0 -1023)
sm-shop/src/main/webapp/resources/templates/exoticamobilia/old/home3_files/testimonial-1.jpg 0(+0 -0)
sm-shop/src/main/webapp/resources/templates/exoticamobilia/old/home3_files/testimonial-2.jpg 0(+0 -0)
sm-shop/src/main/webapp/resources/templates/exoticamobilia/old/home3_files/testimonial-3.jpg 0(+0 -0)
sm-shop/src/main/webapp/resources/templates/exoticamobilia/old/home3_files/v1uyQZNg2vE.html 10(+0 -10)
sm-shop/src/main/webapp/resources/templates/exoticamobilia/old/home3_files/v1uyQZNg2vE_data/EOf-VDVyU8WhbFSR__u1G_9bI8UAnFq-TZ2MjPk3ZGg.js 1(+0 -1)
sm-shop/src/main/webapp/resources/templates/exoticamobilia/old/home3_files/v1uyQZNg2vE_data/html5player.js 1672(+0 -1672)
sm-shop/src/main/webapp/resources/templates/exoticamobilia/old/home3_files/v1uyQZNg2vE_data/www-embed-player.js 361(+0 -361)
sm-shop/src/main/webapp/resources/templates/exoticamobilia/old/home3_files/v1uyQZNg2vE_data/www-embed-player-vfllG6G3S.css 1(+0 -1)
sm-shop/src/main/webapp/resources/templates/exoticamobilia/old/home3_files/www-widgetapi.js 37(+0 -37)
sm-shop/src/test/java/com/salesmanager/test/shop/controller/category/rest/CategoryManagementAPITest.java 0(+0 -0)
sm-shop/src/test/java/com/salesmanager/test/shop/controller/customer/rest/CustomerRESTControllerTest.java 0(+0 -0)
sm-shop/src/test/java/com/salesmanager/test/shop/controller/product/rest/ProductManagementAPITest.java 2(+1 -1)
sm-shop/src/test/java/com/salesmanager/test/shop/controller/system/rest/SystemAPITest.java 81(+81 -0)
sm-shop/src/test/resources/log4j.properties 14(+14 -0)
sm-shop/src/test/resources/log4j.xml 0(+0 -0)
sm-shop/target/classes/admin/menu.json 310(+310 -0)
sm-shop/target/classes/bundles/messages.properties 210(+210 -0)
sm-shop/target/classes/bundles/shipping.properties 143(+143 -0)
sm-shop/target/classes/bundles/shopizer.properties 748(+748 -0)
sm-shop/target/classes/com/salesmanager/shop/admin/controller/categories/CategoryController.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/admin/controller/configurations/CacheController.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/admin/controller/configurations/ConfigurationController.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/admin/controller/configurations/SystemConfigurationController.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/admin/controller/content/ContentBoxesController.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/admin/controller/content/ContentImageController.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/admin/controller/content/ContentPagesController.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/admin/controller/content/StaticContentController.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/admin/controller/ControllerConstants$Tiles$Configuration.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/admin/controller/ControllerConstants$Tiles$Content.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/admin/controller/ControllerConstants$Tiles$ContentFiles.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/admin/controller/ControllerConstants$Tiles$ContentImages.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/admin/controller/ControllerConstants$Tiles$Customer.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/admin/controller/ControllerConstants$Tiles$Order.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/admin/controller/ControllerConstants$Tiles$Payment.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/admin/controller/ControllerConstants$Tiles$Product.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/admin/controller/ControllerConstants$Tiles$Shipping.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/admin/controller/ControllerConstants$Tiles$Store.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/admin/controller/ControllerConstants$Tiles$Tax.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/admin/controller/ControllerConstants$Tiles$User.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/admin/controller/ControllerConstants$Tiles.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/admin/controller/customers/CustomerController.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/admin/controller/customers/CustomerOptionsController.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/admin/controller/customers/CustomerOptionsSetController.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/admin/controller/customers/CustomerOptionsValueController.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/admin/controller/merchant/MerchantStoreController.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/admin/controller/merchant/StoreBrandingController.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/admin/controller/merchant/StoreLandingController.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/admin/controller/orders/OrderActionsControler.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/admin/controller/orders/OrdersController.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/admin/controller/payments/PaymentsController.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/admin/controller/products/CustomProductGroupsController.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/admin/controller/products/DigitalProductController.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/admin/controller/products/FeaturedItemsController.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/admin/controller/products/ManufacturerController.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/admin/controller/products/OptionsController.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/admin/controller/products/OptionsValueController.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/admin/controller/products/ProductAttributeController.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/admin/controller/products/ProductController.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/admin/controller/products/ProductImagesController.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/admin/controller/products/ProductKeywordsController.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/admin/controller/products/ProductPriceController.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/admin/controller/products/ProductReviewController.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/admin/controller/products/ProductsController.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/admin/controller/products/RelatedItemsController.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/admin/controller/shipping/CustomShippingMethodsController.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/admin/controller/shipping/ShippingConfigsController.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/admin/controller/shipping/ShippingMethodsController.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/admin/controller/shipping/ShippingOptionsController.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/admin/controller/shipping/ShippingOriginController.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/admin/controller/shipping/ShippingPackagingController.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/admin/controller/tax/TaxConfigurationController.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/admin/controller/user/PermissionController.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/admin/controller/user/SecurityController.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/admin/model/customer/attribute/CustomerAttributes.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/admin/model/customer/attribute/CustomerOption.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/admin/model/customer/attribute/CustomerOptionValue.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/admin/model/merchant/StoreLandingDescription.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/admin/security/SecurityDataAccessException.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/admin/security/UserAuthenticationSuccessHandler.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/model/catalog/category/CategoryDescription.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/model/catalog/category/PersistableCategory.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/model/catalog/manufacturer/ManufacturerDescription.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/model/catalog/manufacturer/ManufacturerEntity.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/model/catalog/manufacturer/PersistableManufacturer.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/model/catalog/manufacturer/ReadableManufacturer.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/attribute/PersistableProductAttribute.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/attribute/PersistableProductOption.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/attribute/PersistableProductOptionValue.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/attribute/ProductAttribute.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/attribute/ProductAttributeEntity.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/attribute/ProductOption.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/attribute/ProductOptionDescription.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/attribute/ProductOptionEntity.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/attribute/ProductOptionValue.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/attribute/ProductOptionValueDescription.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/attribute/ProductOptionValueEntity.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/attribute/ReadableProductAttribute.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/PersistableProduct.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/PersistableProductPrice.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/PersistableProductReview.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/ProductDescription.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/ProductPriceEntity.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/ProductReviewEntity.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/ReadableProductList.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/ReadableProductPrice.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/ReadableProductReview.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/model/customer/attribute/CustomerAttribute.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/model/customer/attribute/CustomerAttributeEntity.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/model/customer/attribute/CustomerOptionDescription.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/model/customer/attribute/CustomerOptionEntity.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/model/customer/attribute/CustomerOptionValue.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/model/customer/attribute/CustomerOptionValueDescription.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/model/customer/attribute/CustomerOptionValueEntity.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/model/customer/attribute/PersistableCustomerAttribute.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/model/customer/attribute/PersistableCustomerOption.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/model/customer/attribute/PersistableCustomerOptionValue.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/model/customer/attribute/ReadableCustomerAttribute.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/model/customer/attribute/ReadableCustomerOption.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/model/customer/attribute/ReadableCustomerOptionValue.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/model/customer/SecuredShopPersistableCustomer.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/model/order/ReadableOrderProductAttribute.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/model/order/ReadableOrderProductDownload.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/model/shoppingcart/ShoppingCartAttribute.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/populator/catalog/PersistableCategoryPopulator.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/populator/catalog/PersistableProductOptionPopulator.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/populator/catalog/PersistableProductOptionValuePopulator.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/populator/catalog/PersistableProductPopulator.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/populator/catalog/PersistableProductReviewPopulator.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/populator/catalog/ReadableCategoryPopulator.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/populator/catalog/ReadableFinalPricePopulator.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/populator/catalog/ReadableProductPopulator.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/populator/catalog/ReadableProductPricePopulator.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/populator/catalog/ReadableProductReviewPopulator.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/populator/customer/CustomerBillingAddressPopulator.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/populator/customer/CustomerDeliveryAddressPopulator.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/populator/customer/CustomerEntityPopulator.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/populator/customer/CustomerOptionPopulator.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/populator/customer/PersistableCustomerBillingAddressPopulator.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/populator/customer/PersistableCustomerOptionPopulator.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/populator/customer/PersistableCustomerOptionValuePopulator.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/populator/customer/PersistableCustomerPopulator.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/populator/customer/PersistableCustomerShippingAddressPopulator.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/populator/customer/ReadableCustomerDeliveryAddressPopulator.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/populator/customer/ReadableCustomerPopulator.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/populator/manufacturer/PersistableManufacturerPopulator.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/populator/manufacturer/ReadableManufacturerPopulator.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/populator/order/PersistableOrderPopulator.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/populator/order/PersistableOrderProductPopulator.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/populator/order/ReadableOrderProductDownloadPopulator.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/populator/order/ReadableOrderProductPopulator.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/populator/order/ReadableOrderTotalPopulator.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/populator/order/ReadableShippingSummaryPopulator.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/populator/order/ReadableShopOrderPopulator.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/populator/order/ShoppingCartItemPopulator.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/populator/shoppingCart/ShoppingCartDataPopulator.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/populator/shoppingCart/ShoppingCartModelPopulator.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/populator/store/ReadableMerchantStorePopulator.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/store/controller/category/facade/CategoryFacade.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/store/controller/category/facade/CategoryFacadeImpl.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/store/controller/category/ShoppingCategoryController.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/store/controller/content/ShopContentController.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/store/controller/ControllerConstants$Tiles$Category.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/store/controller/ControllerConstants$Tiles$Checkout.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/store/controller/ControllerConstants$Tiles$Content.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/store/controller/ControllerConstants$Tiles$Customer.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/store/controller/ControllerConstants$Tiles$Error.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/store/controller/ControllerConstants$Tiles$Items.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/store/controller/ControllerConstants$Tiles$Merchant.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/store/controller/ControllerConstants$Tiles$Pages.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/store/controller/ControllerConstants$Tiles$Product.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/store/controller/ControllerConstants$Tiles$Search.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/store/controller/ControllerConstants$Tiles$ShoppingCart.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/store/controller/ControllerConstants$Tiles.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/store/controller/ControllerConstants$Views$Controllers$Registration.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/store/controller/ControllerConstants$Views$Controllers.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/store/controller/ControllerConstants$Views.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/store/controller/customer/CustomerAccountController.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/store/controller/customer/CustomerDashboardController.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/store/controller/customer/CustomerLoginController.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/store/controller/customer/CustomerOrdersController.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/store/controller/customer/CustomerProductReviewController.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/store/controller/customer/CustomerRegistrationController.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/store/controller/customer/facade/CustomerFacade.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/store/controller/customer/facade/CustomerFacadeImpl.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/store/controller/items/facade/ProductItemsFacade.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/store/controller/items/facade/ProductItemsFacadeImpl.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/store/controller/items/ListItemsController.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/store/controller/order/facade/OrderFacade.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/store/controller/order/facade/OrderFacadeImpl.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/store/controller/order/ShoppingOrderConfirmationController.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/store/controller/order/ShoppingOrderController.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/store/controller/order/ShoppingOrderDownloadController.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/store/controller/order/ShoppingOrderPaymentController.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/store/controller/product/facade/ProductFacade.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/store/controller/product/facade/ProductFacadeImpl.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/store/controller/product/ShopProductController.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/store/controller/search/facade/SearchFacade.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/store/controller/search/facade/SearchFacadeImpl.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/store/controller/search/SearchController.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/store/controller/shoppingCart/facade/ShoppingCartFacade.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/store/controller/shoppingCart/facade/ShoppingCartFacadeImpl.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/store/controller/shoppingCart/MiniCartController.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/store/controller/shoppingCart/ShoppingCartController.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/store/controller/store/ContactController.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/store/security/ServicesAuthenticationEntryPoint.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/store/security/ServicesAuthenticationSuccessHandler.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/store/services/category/ShoppingCategoryRESTController.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/store/services/customer/CustomerRESTController.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/store/services/order/OrderRESTController.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/store/services/product/ProductItemsRESTController.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/store/services/product/ShopProductRESTController.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/store/services/search/SearchRESTController.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/store/services/store/StoreContactRESTController.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/store/services/system/SystemRESTController.class 0(+0 -0)
sm-shop/target/classes/com/salesmanager/shop/store/services/utility/CallbackController.class 0(+0 -0)
sm-shop/target/classes/database.properties 30(+30 -0)
sm-shop/target/classes/log4j.properties 15(+15 -0)
sm-shop/target/test-classes/com/salesmanager/test/shop/controller/category/rest/CategoryManagementAPITest.class 0(+0 -0)
sm-shop/target/test-classes/com/salesmanager/test/shop/controller/customer/rest/CustomerRESTControllerTest.class 0(+0 -0)
sm-shop/target/test-classes/com/salesmanager/test/shop/controller/product/rest/ProductManagementAPITest.class 0(+0 -0)
sm-shop/target/test-classes/com/salesmanager/test/shop/controller/store/rest/ContactAPITest.class 0(+0 -0)
sm-shop/target/test-classes/com/salesmanager/test/shop/controller/system/rest/SystemAPITest.class 0(+0 -0)
sm-shop/target/test-classes/log4j.properties 14(+14 -0)
sm-shop/target/test-classes/log4j.xml 41(+41 -0)
Details
pom.xml 115(+80 -35)
diff --git a/pom.xml b/pom.xml
index 994caa3..8a4cbf0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,36 +1,81 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
-
- <groupId>com.shopizer</groupId>
- <artifactId>shopizer</artifactId>
- <version>2.0.3-SNAPSHOT</version>
- <packaging>pom</packaging>
-
- <name>shopizer</name>
- <url>http://maven.apache.org</url>
-
- <properties>
- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- <java-version>1.8</java-version>
- <jdk-version>1.8</jdk-version>
- <!-- The version of this current module -->
- <shopizer.version>2.0.3-SNAPSHOT</shopizer.version>
- <sm-core.version>2.0.3-SNAPSHOT</sm-core.version>
- <sm-core-model.version>2.0.3-SNAPSHOT</sm-core-model.version>
- <sm-core-modules.version>2.0.3-SNAPSHOT</sm-core-modules.version>
- <sm-search.version>0.0.5</sm-search.version>
- <sm-shipping-distance-processor.version>2.0.3</sm-shipping-distance-processor.version>
- <sm-shop.version>2.0.3-SNAPSHOT</sm-shop.version>
-
- <shopizer-canadapost.version>0.0.1</shopizer-canadapost.version>
- </properties>
-
-
- <modules>
- <module>sm-core</module>
- <module>sm-core-model</module>
- <module>sm-core-modules</module>
- <module>sm-shop</module>
- </modules>
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <modelVersion>4.0.0</modelVersion>
+
+ <groupId>com.shopizer</groupId>
+ <artifactId>shopizer</artifactId>
+ <version>2.5.0-SNAPSHOT</version>
+ <packaging>pom</packaging>
+
+ <name>shopizer</name>
+ <url>http://maven.apache.org</url>
+
+ <parent>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-parent</artifactId>
+ <version>1.3.5.RELEASE</version>
+ </parent>
+
+
+ <properties>
+ <java.version>1.8</java.version>
+ <shopizer.version>2.5.0-SNAPSHOT</shopizer.version>
+ <shopizer.search.version>2.5.0-SNAPSHOT</shopizer.search.version>
+ <shopizer-canadapost.version>2.5.0-SNAPSHOT</shopizer-canadapost.version>
+ <shopizer-shipping-distance.version>2.5.0-SNAPSHOT</shopizer-shipping-distance.version>
+
+
+
+ <commons-collections4.version>4.0</commons-collections4.version>
+ <commons-validator.version>1.5.1</commons-validator.version>
+ <org.apache.httpcomponent.version>4.5.2</org.apache.httpcomponent.version>
+ <infinispan.version>6.0.2.Final</infinispan.version>
+ <!-- DON'T AS IT OVERWRITES SPRING -->
+ <!--<spring.version>4.2.1.RELEASE</spring.version>-->
+ <!--<spring-data.version>Gosling-RELEASE</spring-data.version>-->
+ </properties>
+
+ <dependencies>
+
+
+
+ </dependencies>
+
+ <modules>
+ <module>sm-core-model</module>
+ <module>sm-core-modules</module>
+ <module>sm-core</module>
+ <module>sm-shop</module>
+ </modules>
+
+ <repositories>
+ <repository>
+ <id>spring-releases</id>
+ <name>Spring Releases</name>
+ <url>https://repo.spring.io/libs-release</url>
+ </repository>
+ <repository>
+ <id>org.jboss.repository.releases</id>
+ <name>JBoss Maven Release Repository</name>
+ <url>https://repository.jboss.org/nexus/content/repositories/releases</url>
+ </repository>
+ </repositories>
+
+ <pluginRepositories>
+ <pluginRepository>
+ <id>spring-releases</id>
+ <name>Spring Releases</name>
+ <url>https://repo.spring.io/libs-release</url>
+ </pluginRepository>
+ </pluginRepositories>
+
+ <dependencyManagement>
+ <dependencies>
+
+ </dependencies>
+
+ </dependencyManagement>
+
</project>
README.md 2(+1 -1)
diff --git a/README.md b/README.md
index 32e3f90..3d6898c 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-Official Shopizer 2.0.3
+Upcoming Shopizer 2.5.0
-------------------
Java open source e-commerce software
RELEASE-NOTES.md 12(+9 -3)
diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md
index 4584024..f6b8730 100644
--- a/RELEASE-NOTES.md
+++ b/RELEASE-NOTES.md
@@ -1,4 +1,10 @@
-Release changes in version 2.0.3
+Release changes in version 2.5.0
-- Fixed build issues
-- Upgraded Spring & Infinispan
+- Not yet Alpha ;-) Please use 2.0.3 or master
+
+- Spring Data JPA
+- Removal of QueryDSL
+- Upgrade of Infinispan
+- Upgrade to Spring 4.2.1
+- Spring Boot
+- UI improvements
shopizer-canadapost/.classpath 37(+37 -0)
diff --git a/shopizer-canadapost/.classpath b/shopizer-canadapost/.classpath
new file mode 100644
index 0000000..62d4b8e
--- /dev/null
+++ b/shopizer-canadapost/.classpath
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" output="target/classes" path="src/main/java">
+ <attributes>
+ <attribute name="optional" value="true"/>
+ <attribute name="maven.pomderived" value="true"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
+ <attributes>
+ <attribute name="maven.pomderived" value="true"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="src" output="target/test-classes" path="src/test/java">
+ <attributes>
+ <attribute name="optional" value="true"/>
+ <attribute name="maven.pomderived" value="true"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources">
+ <attributes>
+ <attribute name="maven.pomderived" value="true"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
+ <attributes>
+ <attribute name="maven.pomderived" value="true"/>
+ <attribute name="org.eclipse.jst.component.nondependency" value=""/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
+ <attributes>
+ <attribute name="maven.pomderived" value="true"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="output" path="target/classes"/>
+</classpath>
shopizer-canadapost/.project 36(+36 -0)
diff --git a/shopizer-canadapost/.project b/shopizer-canadapost/.project
new file mode 100644
index 0000000..87f55cd
--- /dev/null
+++ b/shopizer-canadapost/.project
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>shopizer-canadapost</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.wst.common.project.facet.core.builder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.wst.validation.validationbuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.m2e.core.maven2Builder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
+ <nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.m2e.core.maven2Nature</nature>
+ <nature>org.eclipse.wst.common.project.facet.core.nature</nature>
+ </natures>
+</projectDescription>
diff --git a/shopizer-canadapost/.settings/org.eclipse.core.resources.prefs b/shopizer-canadapost/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..29abf99
--- /dev/null
+++ b/shopizer-canadapost/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,6 @@
+eclipse.preferences.version=1
+encoding//src/main/java=UTF-8
+encoding//src/main/resources=UTF-8
+encoding//src/test/java=UTF-8
+encoding//src/test/resources=UTF-8
+encoding/<project>=UTF-8
diff --git a/shopizer-canadapost/.settings/org.eclipse.jdt.core.prefs b/shopizer-canadapost/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..6e80039
--- /dev/null
+++ b/shopizer-canadapost/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,8 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/shopizer-canadapost/.settings/org.eclipse.m2e.core.prefs b/shopizer-canadapost/.settings/org.eclipse.m2e.core.prefs
new file mode 100644
index 0000000..f897a7f
--- /dev/null
+++ b/shopizer-canadapost/.settings/org.eclipse.m2e.core.prefs
@@ -0,0 +1,4 @@
+activeProfiles=
+eclipse.preferences.version=1
+resolveWorkspaceProjects=true
+version=1
diff --git a/shopizer-canadapost/.settings/org.eclipse.wst.common.component b/shopizer-canadapost/.settings/org.eclipse.wst.common.component
new file mode 100644
index 0000000..cc08930
--- /dev/null
+++ b/shopizer-canadapost/.settings/org.eclipse.wst.common.component
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
+ <wb-module deploy-name="shopizer-shipping-canadapost-module">
+ <wb-resource deploy-path="/" source-path="/src/main/java"/>
+ <wb-resource deploy-path="/" source-path="/src/main/resources"/>
+ </wb-module>
+</project-modules>
diff --git a/shopizer-canadapost/.settings/org.eclipse.wst.common.project.facet.core.xml b/shopizer-canadapost/.settings/org.eclipse.wst.common.project.facet.core.xml
new file mode 100644
index 0000000..ee260d9
--- /dev/null
+++ b/shopizer-canadapost/.settings/org.eclipse.wst.common.project.facet.core.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<faceted-project>
+ <installed facet="jst.utility" version="1.0"/>
+ <installed facet="java" version="1.8"/>
+</faceted-project>
diff --git a/shopizer-canadapost/.settings/org.eclipse.wst.validation.prefs b/shopizer-canadapost/.settings/org.eclipse.wst.validation.prefs
new file mode 100644
index 0000000..6f1cba6
--- /dev/null
+++ b/shopizer-canadapost/.settings/org.eclipse.wst.validation.prefs
@@ -0,0 +1,2 @@
+disabled=06target
+eclipse.preferences.version=1
shopizer-canadapost/pom.xml 203(+203 -0)
diff --git a/shopizer-canadapost/pom.xml b/shopizer-canadapost/pom.xml
new file mode 100644
index 0000000..d567bb3
--- /dev/null
+++ b/shopizer-canadapost/pom.xml
@@ -0,0 +1,203 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>com.shopizer</groupId>
+ <artifactId>shopizer-shipping-canadapost-module</artifactId>
+ <version>2.5.0-SNAPSHOT</version>
+ <packaging>jar</packaging>
+ <name>shopizer-shipping-canadapost-module</name>
+ <url>http://www.shopizer.com</url>
+
+
+
+ <properties>
+
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ <java-version>1.8</java-version>
+ <sm-core-model.version>2.5.0-SNAPSHOT</sm-core-model.version>
+ <sm-core-modules.version>2.5.0-SNAPSHOT</sm-core-modules.version>
+
+
+ <jackson-version>1.9.13</jackson-version>
+ <org.springframework-version>4.2.1.RELEASE</org.springframework-version>
+ <junit.version>4.9</junit.version>
+ <org.aspectj-version>1.6.10</org.aspectj-version>
+ <org.slf4j-version>1.6.6</org.slf4j-version>
+
+
+ </properties>
+
+ <!-- mvn clean deploy -->
+ <parent>
+ <groupId>org.sonatype.oss</groupId>
+ <artifactId>oss-parent</artifactId>
+ <version>7</version>
+ </parent>
+
+
+
+ <dependencies>
+
+
+
+ <!-- sm-core-model -->
+ <dependency>
+ <groupId>com.shopizer</groupId>
+ <artifactId>sm-core-model</artifactId>
+ <version>${sm-core-model.version}</version>
+ </dependency>
+
+
+ <!-- sm-core-modules -->
+ <dependency>
+ <groupId>com.shopizer</groupId>
+ <artifactId>sm-core-modules</artifactId>
+ <version>${sm-core-modules.version}</version>
+ </dependency>
+
+
+
+
+ <!-- Spring -->
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-context</artifactId>
+ <version>${org.springframework-version}</version>
+ <exclusions>
+ <!-- Exclude Commons Logging in favor of SLF4j -->
+ <exclusion>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <!-- AspectJ -->
+ <dependency>
+ <groupId>org.aspectj</groupId>
+ <artifactId>aspectjrt</artifactId>
+ <version>${org.aspectj-version}</version>
+ </dependency>
+
+ <!-- Logging -->
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ <version>${org.slf4j-version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>jcl-over-slf4j</artifactId>
+ <version>${org.slf4j-version}</version>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ <version>${org.slf4j-version}</version>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ <version>1.2.16</version>
+ <scope>compile</scope>
+ </dependency>
+
+ <!-- @Inject -->
+ <dependency>
+ <groupId>javax.inject</groupId>
+ <artifactId>javax.inject</artifactId>
+ <version>1</version>
+ </dependency>
+
+ <!-- Servlet -->
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ <version>2.5</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.servlet.jsp</groupId>
+ <artifactId>jsp-api</artifactId>
+ <version>2.1</version>
+ <scope>provided</scope>
+ </dependency>
+
+
+ <!-- Jackson JSON Processor -->
+ <dependency>
+ <groupId>org.codehaus.jackson</groupId>
+ <artifactId>jackson-mapper-asl</artifactId>
+ <version>${jackson-version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ <version>2.0.1</version>
+ </dependency>
+
+ <dependency>
+ <groupId>commons-configuration</groupId>
+ <artifactId>commons-configuration</artifactId>
+ <version>1.6</version>
+ </dependency>
+
+ <dependency>
+ <groupId>com.sun.jersey</groupId>
+ <artifactId>jersey-bundle</artifactId>
+ <version>1.19</version>
+ </dependency>
+
+
+
+ <!-- Test dependencies -->
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>${junit.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-test</artifactId>
+ <version>${org.springframework-version}</version>
+ <scope>test</scope>
+ </dependency>
+
+
+
+
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>2.3.2</version>
+ <configuration>
+ <source>${java-version}</source>
+ <target>${java-version}</target>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>2.12</version>
+ <configuration>
+ <skipTests>true</skipTests>
+ </configuration>
+ </plugin>
+
+
+ </plugins>
+ </build>
+
+
+ <scm>
+ <connection>scm:svn:http://svn.sonatype.org/spice/tags/shopizer-shipping-canadapost-module-2.0.3</connection>
+ <developerConnection>scm:svn:https://svn.sonatype.org/spice/tags/shopizer-shipping-canadapost-module-2.0.3</developerConnection>
+ <url>http://svn.sonatype.org/spice/tags/shopizer-shipping-canadapost-module-2.0.3</url>
+ </scm>
+</project>
\ No newline at end of file
shopizer-canadapost/pom.xml.releaseBackup 203(+203 -0)
diff --git a/shopizer-canadapost/pom.xml.releaseBackup b/shopizer-canadapost/pom.xml.releaseBackup
new file mode 100644
index 0000000..ab356c3
--- /dev/null
+++ b/shopizer-canadapost/pom.xml.releaseBackup
@@ -0,0 +1,203 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>com.shopizer</groupId>
+ <artifactId>shopizer-shipping-canadapost-module</artifactId>
+ <version>2.0.3-SNAPSHOT</version>
+ <packaging>jar</packaging>
+ <name>shopizer-shipping-canadapost-module</name>
+ <url>http://www.shopizer.com</url>
+
+
+
+ <properties>
+
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ <java-version>1.7</java-version>
+ <sm-core-model.version>2.0.3</sm-core-model.version>
+ <sm-core-modules.version>2.0.3</sm-core-modules.version>
+
+
+ <jackson-version>1.9.13</jackson-version>
+ <org.springframework-version>3.2.0.RELEASE</org.springframework-version>
+ <junit.version>4.9</junit.version>
+ <org.aspectj-version>1.6.10</org.aspectj-version>
+ <org.slf4j-version>1.6.6</org.slf4j-version>
+
+
+ </properties>
+
+ <!-- mvn clean deploy -->
+ <parent>
+ <groupId>org.sonatype.oss</groupId>
+ <artifactId>oss-parent</artifactId>
+ <version>7</version>
+ </parent>
+
+
+
+ <dependencies>
+
+
+
+ <!-- sm-core-model -->
+ <dependency>
+ <groupId>com.shopizer</groupId>
+ <artifactId>sm-core-model</artifactId>
+ <version>${sm-core-model.version}</version>
+ </dependency>
+
+
+ <!-- sm-core-modules -->
+ <dependency>
+ <groupId>com.shopizer</groupId>
+ <artifactId>sm-core-modules</artifactId>
+ <version>${sm-core-modules.version}</version>
+ </dependency>
+
+
+
+
+ <!-- Spring -->
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-context</artifactId>
+ <version>${org.springframework-version}</version>
+ <exclusions>
+ <!-- Exclude Commons Logging in favor of SLF4j -->
+ <exclusion>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <!-- AspectJ -->
+ <dependency>
+ <groupId>org.aspectj</groupId>
+ <artifactId>aspectjrt</artifactId>
+ <version>${org.aspectj-version}</version>
+ </dependency>
+
+ <!-- Logging -->
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ <version>${org.slf4j-version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>jcl-over-slf4j</artifactId>
+ <version>${org.slf4j-version}</version>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ <version>${org.slf4j-version}</version>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ <version>1.2.16</version>
+ <scope>compile</scope>
+ </dependency>
+
+ <!-- @Inject -->
+ <dependency>
+ <groupId>javax.inject</groupId>
+ <artifactId>javax.inject</artifactId>
+ <version>1</version>
+ </dependency>
+
+ <!-- Servlet -->
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ <version>2.5</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.servlet.jsp</groupId>
+ <artifactId>jsp-api</artifactId>
+ <version>2.1</version>
+ <scope>provided</scope>
+ </dependency>
+
+
+ <!-- Jackson JSON Processor -->
+ <dependency>
+ <groupId>org.codehaus.jackson</groupId>
+ <artifactId>jackson-mapper-asl</artifactId>
+ <version>${jackson-version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ <version>2.0.1</version>
+ </dependency>
+
+ <dependency>
+ <groupId>commons-configuration</groupId>
+ <artifactId>commons-configuration</artifactId>
+ <version>1.6</version>
+ </dependency>
+
+ <dependency>
+ <groupId>com.sun.jersey</groupId>
+ <artifactId>jersey-bundle</artifactId>
+ <version>1.19</version>
+ </dependency>
+
+
+
+ <!-- Test dependencies -->
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>${junit.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-test</artifactId>
+ <version>${org.springframework-version}</version>
+ <scope>test</scope>
+ </dependency>
+
+
+
+
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>2.3.2</version>
+ <configuration>
+ <source>${java-version}</source>
+ <target>${java-version}</target>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>2.12</version>
+ <configuration>
+ <skipTests>true</skipTests>
+ </configuration>
+ </plugin>
+
+
+ </plugins>
+ </build>
+
+
+ <scm>
+ <connection>scm:svn:http://svn.sonatype.org/spice/tags/shopizer-shipping-canadapost-module-2.0.3</connection>
+ <developerConnection>scm:svn:https://svn.sonatype.org/spice/tags/shopizer-shipping-canadapost-module-2.0.3</developerConnection>
+ <url>http://svn.sonatype.org/spice/tags/shopizer-shipping-canadapost-module-2.0.3</url>
+ </scm>
+</project>
\ No newline at end of file
shopizer-canadapost/README.md 25(+25 -0)
diff --git a/shopizer-canadapost/README.md b/shopizer-canadapost/README.md
new file mode 100644
index 0000000..6e97dfa
--- /dev/null
+++ b/shopizer-canadapost/README.md
@@ -0,0 +1,25 @@
+## shopizer-shipping-canadapost-module
+
+Uses canada post shipping rate system calculator for Shopizer.
+
+1- Signup for an account on www.canadapost.ca
+
+2- Create a developer account on Canadapost developer web site
+
+3- Retain you Canadapost CPC number and your API keys for their sandbox and production environment
+
+A CPC identifier and API key look like this
+
+ CPC Identifier : CPC_YOUR_BUISINES
+ API key : a6d1ba721909c95f : 446636bt2561fb15b7dc2d93
+
+4- Edit src/test/resources/spring/spring-context-test.xml and use the development key
+
+ <util:properties id="canadapost-properties">
+ <prop key="username">a6d1ba721909c95f</prop>
+ <prop key="password">446636bt2561fb15b7dc2d93</prop>
+ <prop key="mailBy">CPC_YOUR_BUISINES</prop>
+ </util:properties>
+
+5- Run ShippingCanadaPostTestCase unit test
+
shopizer-canadapost/release.properties 16(+16 -0)
diff --git a/shopizer-canadapost/release.properties b/shopizer-canadapost/release.properties
new file mode 100644
index 0000000..80dc29f
--- /dev/null
+++ b/shopizer-canadapost/release.properties
@@ -0,0 +1,16 @@
+#release configuration
+#Sun Oct 18 11:10:19 EDT 2015
+project.dev.com.shopizer\:shopizer-shipping-canadapost-module=2.0.4-SNAPSHOT
+scm.tag=shopizer-shipping-canadapost-module-2.0.3
+project.scm.com.shopizer\:shopizer-shipping-canadapost-module.connection=scm\:svn\:http\://svn.sonatype.org/spice/tags/shopizer-shipping-canadapost-module-2.0.3
+scm.url=scm\:svn\:https\://svn.sonatype.org/spice/tags/shopizer-shipping-canadapost-module-2.0.3
+pushChanges=true
+preparationGoals=clean verify
+remoteTagging=true
+scm.commentPrefix=[maven-release-plugin]
+project.scm.com.shopizer\:shopizer-shipping-canadapost-module.developerConnection=scm\:svn\:https\://svn.sonatype.org/spice/tags/shopizer-shipping-canadapost-module-2.0.3
+project.scm.com.shopizer\:shopizer-shipping-canadapost-module.tag=HEAD
+project.scm.com.shopizer\:shopizer-shipping-canadapost-module.url=http\://svn.sonatype.org/spice/tags/shopizer-shipping-canadapost-module-2.0.3
+project.rel.com.shopizer\:shopizer-shipping-canadapost-module=2.0.3
+exec.additionalArguments=-Psonatype-oss-release
+completedPhase=run-preparation-goals
diff --git a/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/common/CcAddressDetailsType.java b/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/common/CcAddressDetailsType.java
new file mode 100644
index 0000000..84dafdc
--- /dev/null
+++ b/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/common/CcAddressDetailsType.java
@@ -0,0 +1,231 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.03.13 at 11:05:38 AM EDT
+//
+
+
+package ca.canadapost.cpcdp.rating.generated.common;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.NormalizedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+
+/**
+ * <p>Java class for CcAddressDetailsType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="CcAddressDetailsType">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="address-line-1">
+ * <simpleType>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}normalizedString">
+ * <minLength value="1"/>
+ * <maxLength value="44"/>
+ * </restriction>
+ * </simpleType>
+ * </element>
+ * <element name="address-line-2" minOccurs="0">
+ * <simpleType>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}normalizedString">
+ * <maxLength value="44"/>
+ * </restriction>
+ * </simpleType>
+ * </element>
+ * <element name="city">
+ * <simpleType>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}normalizedString">
+ * <minLength value="1"/>
+ * <maxLength value="40"/>
+ * </restriction>
+ * </simpleType>
+ * </element>
+ * <element name="prov-state" type="{}ProvinceStateOrInternationalType"/>
+ * <element name="postal-zip-code" type="{}PostalCodeOrZipOrInternationalType" minOccurs="0"/>
+ * <element name="country-code" type="{}CountryCodeType"/>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CcAddressDetailsType", propOrder = {
+
+})
+public class CcAddressDetailsType {
+
+ @XmlElement(name = "address-line-1", required = true)
+ @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+ protected String addressLine1;
+ @XmlElement(name = "address-line-2")
+ @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+ protected String addressLine2;
+ @XmlElement(required = true)
+ @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+ protected String city;
+ @XmlElement(name = "prov-state", required = true)
+ @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+ protected String provState;
+ @XmlElement(name = "postal-zip-code")
+ @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+ protected String postalZipCode;
+ @XmlElement(name = "country-code", required = true)
+ protected String countryCode;
+
+ /**
+ * Gets the value of the addressLine1 property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getAddressLine1() {
+ return addressLine1;
+ }
+
+ /**
+ * Sets the value of the addressLine1 property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setAddressLine1(String value) {
+ this.addressLine1 = value;
+ }
+
+ /**
+ * Gets the value of the addressLine2 property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getAddressLine2() {
+ return addressLine2;
+ }
+
+ /**
+ * Sets the value of the addressLine2 property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setAddressLine2(String value) {
+ this.addressLine2 = value;
+ }
+
+ /**
+ * Gets the value of the city property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getCity() {
+ return city;
+ }
+
+ /**
+ * Sets the value of the city property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setCity(String value) {
+ this.city = value;
+ }
+
+ /**
+ * Gets the value of the provState property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getProvState() {
+ return provState;
+ }
+
+ /**
+ * Sets the value of the provState property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setProvState(String value) {
+ this.provState = value;
+ }
+
+ /**
+ * Gets the value of the postalZipCode property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getPostalZipCode() {
+ return postalZipCode;
+ }
+
+ /**
+ * Sets the value of the postalZipCode property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setPostalZipCode(String value) {
+ this.postalZipCode = value;
+ }
+
+ /**
+ * Gets the value of the countryCode property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getCountryCode() {
+ return countryCode;
+ }
+
+ /**
+ * Sets the value of the countryCode property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setCountryCode(String value) {
+ this.countryCode = value;
+ }
+
+}
diff --git a/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/common/CcDetailsType.java b/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/common/CcDetailsType.java
new file mode 100644
index 0000000..b248dd1
--- /dev/null
+++ b/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/common/CcDetailsType.java
@@ -0,0 +1,210 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.03.13 at 11:05:38 AM EDT
+//
+
+
+package ca.canadapost.cpcdp.rating.generated.common;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.NormalizedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+
+/**
+ * <p>Java class for CcDetailsType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="CcDetailsType">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="cc-type" type="{}CcType"/>
+ * <element name="cc-number" type="{}CcNumberType"/>
+ * <element name="cc-name" type="{}CcNameType"/>
+ * <element name="cc-expiry" type="{}CcExpiryType"/>
+ * <element name="cc-cvv" type="{}CcCvvType" minOccurs="0"/>
+ * <element name="cc-address-details" type="{}CcAddressDetailsType" minOccurs="0"/>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CcDetailsType", propOrder = {
+
+})
+public class CcDetailsType {
+
+ @XmlElement(name = "cc-type", required = true)
+ protected CcType ccType;
+ @XmlElement(name = "cc-number", required = true)
+ @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+ protected String ccNumber;
+ @XmlElement(name = "cc-name", required = true)
+ @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+ protected String ccName;
+ @XmlElement(name = "cc-expiry", required = true)
+ @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+ protected String ccExpiry;
+ @XmlElement(name = "cc-cvv")
+ @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+ protected String ccCvv;
+ @XmlElement(name = "cc-address-details")
+ protected CcAddressDetailsType ccAddressDetails;
+
+ /**
+ * Gets the value of the ccType property.
+ *
+ * @return
+ * possible object is
+ * {@link CcType }
+ *
+ */
+ public CcType getCcType() {
+ return ccType;
+ }
+
+ /**
+ * Sets the value of the ccType property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CcType }
+ *
+ */
+ public void setCcType(CcType value) {
+ this.ccType = value;
+ }
+
+ /**
+ * Gets the value of the ccNumber property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getCcNumber() {
+ return ccNumber;
+ }
+
+ /**
+ * Sets the value of the ccNumber property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setCcNumber(String value) {
+ this.ccNumber = value;
+ }
+
+ /**
+ * Gets the value of the ccName property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getCcName() {
+ return ccName;
+ }
+
+ /**
+ * Sets the value of the ccName property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setCcName(String value) {
+ this.ccName = value;
+ }
+
+ /**
+ * Gets the value of the ccExpiry property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getCcExpiry() {
+ return ccExpiry;
+ }
+
+ /**
+ * Sets the value of the ccExpiry property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setCcExpiry(String value) {
+ this.ccExpiry = value;
+ }
+
+ /**
+ * Gets the value of the ccCvv property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getCcCvv() {
+ return ccCvv;
+ }
+
+ /**
+ * Sets the value of the ccCvv property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setCcCvv(String value) {
+ this.ccCvv = value;
+ }
+
+ /**
+ * Gets the value of the ccAddressDetails property.
+ *
+ * @return
+ * possible object is
+ * {@link CcAddressDetailsType }
+ *
+ */
+ public CcAddressDetailsType getCcAddressDetails() {
+ return ccAddressDetails;
+ }
+
+ /**
+ * Sets the value of the ccAddressDetails property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CcAddressDetailsType }
+ *
+ */
+ public void setCcAddressDetails(CcAddressDetailsType value) {
+ this.ccAddressDetails = value;
+ }
+
+}
diff --git a/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/common/CcType.java b/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/common/CcType.java
new file mode 100644
index 0000000..76aa29b
--- /dev/null
+++ b/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/common/CcType.java
@@ -0,0 +1,53 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.03.13 at 11:05:38 AM EDT
+//
+
+
+package ca.canadapost.cpcdp.rating.generated.common;
+
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CcType.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>
+ * <pre>
+ * <simpleType name="CcType">
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}normalizedString">
+ * <enumeration value="MC"/>
+ * <enumeration value="VIS"/>
+ * <enumeration value="AME"/>
+ * <enumeration value="DC"/>
+ * <enumeration value="DIS"/>
+ * <enumeration value="ER"/>
+ * </restriction>
+ * </simpleType>
+ * </pre>
+ *
+ */
+@XmlType(name = "CcType")
+@XmlEnum
+public enum CcType {
+
+ MC,
+ VIS,
+ AME,
+ DC,
+ DIS,
+ ER;
+
+ public String value() {
+ return name();
+ }
+
+ public static CcType fromValue(String v) {
+ return valueOf(v);
+ }
+
+}
diff --git a/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/common/Links.java b/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/common/Links.java
new file mode 100644
index 0000000..f628ecd
--- /dev/null
+++ b/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/common/Links.java
@@ -0,0 +1,78 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.03.13 at 11:05:38 AM EDT
+//
+
+
+package ca.canadapost.cpcdp.rating.generated.common;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element ref="{}link" maxOccurs="unbounded"/>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "", propOrder = {
+ "link"
+})
+@XmlRootElement(name = "links")
+public class Links {
+
+ @XmlElement(required = true)
+ protected List<LinkType> link;
+
+ /**
+ * Gets the value of the link property.
+ *
+ * <p>
+ * This accessor method returns a reference to the live list,
+ * not a snapshot. Therefore any modification you make to the
+ * returned list will be present inside the JAXB object.
+ * This is why there is not a <CODE>set</CODE> method for the link property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getLink().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link LinkType }
+ *
+ *
+ */
+ public List<LinkType> getLink() {
+ if (link == null) {
+ link = new ArrayList<LinkType>();
+ }
+ return this.link;
+ }
+
+}
diff --git a/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/common/LinkType.java b/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/common/LinkType.java
new file mode 100644
index 0000000..989afcd
--- /dev/null
+++ b/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/common/LinkType.java
@@ -0,0 +1,154 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.03.13 at 11:05:38 AM EDT
+//
+
+
+package ca.canadapost.cpcdp.rating.generated.common;
+
+import java.math.BigInteger;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.NormalizedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+
+/**
+ * <p>Java class for LinkType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="LinkType">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <attribute name="href" use="required" type="{http://www.w3.org/2001/XMLSchema}anyURI" />
+ * <attribute name="rel" use="required" type="{}RelType" />
+ * <attribute name="index" type="{http://www.w3.org/2001/XMLSchema}nonNegativeInteger" />
+ * <attribute name="media-type" use="required" type="{http://www.w3.org/2001/XMLSchema}normalizedString" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "LinkType")
+public class LinkType {
+
+ @XmlAttribute(name = "href", required = true)
+ @XmlSchemaType(name = "anyURI")
+ protected String href;
+ @XmlAttribute(name = "rel", required = true)
+ protected String rel;
+ @XmlAttribute(name = "index")
+ @XmlSchemaType(name = "nonNegativeInteger")
+ protected BigInteger index;
+ @XmlAttribute(name = "media-type", required = true)
+ @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+ @XmlSchemaType(name = "normalizedString")
+ protected String mediaType;
+
+ /**
+ * Gets the value of the href property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getHref() {
+ return href;
+ }
+
+ /**
+ * Sets the value of the href property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setHref(String value) {
+ this.href = value;
+ }
+
+ /**
+ * Gets the value of the rel property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getRel() {
+ return rel;
+ }
+
+ /**
+ * Sets the value of the rel property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setRel(String value) {
+ this.rel = value;
+ }
+
+ /**
+ * Gets the value of the index property.
+ *
+ * @return
+ * possible object is
+ * {@link BigInteger }
+ *
+ */
+ public BigInteger getIndex() {
+ return index;
+ }
+
+ /**
+ * Sets the value of the index property.
+ *
+ * @param value
+ * allowed object is
+ * {@link BigInteger }
+ *
+ */
+ public void setIndex(BigInteger value) {
+ this.index = value;
+ }
+
+ /**
+ * Gets the value of the mediaType property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getMediaType() {
+ return mediaType;
+ }
+
+ /**
+ * Sets the value of the mediaType property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setMediaType(String value) {
+ this.mediaType = value;
+ }
+
+}
diff --git a/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/common/ObjectFactory.java b/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/common/ObjectFactory.java
new file mode 100644
index 0000000..e228cfe
--- /dev/null
+++ b/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/common/ObjectFactory.java
@@ -0,0 +1,84 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.03.13 at 11:05:38 AM EDT
+//
+
+
+package ca.canadapost.cpcdp.rating.generated.common;
+
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.annotation.XmlElementDecl;
+import javax.xml.bind.annotation.XmlRegistry;
+import javax.xml.namespace.QName;
+
+
+/**
+ * This object contains factory methods for each
+ * Java content interface and Java element interface
+ * generated in the ca.canadapost.cpcdp.rating.generated.common package.
+ * <p>An ObjectFactory allows you to programatically
+ * construct new instances of the Java representation
+ * for XML content. The Java representation of XML
+ * content can consist of schema derived interfaces
+ * and classes representing the binding of schema
+ * type definitions, element declarations and model
+ * groups. Factory methods for each of these are
+ * provided in this class.
+ *
+ */
+@XmlRegistry
+public class ObjectFactory {
+
+ private final static QName _Link_QNAME = new QName("", "link");
+
+ /**
+ * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: ca.canadapost.cpcdp.rating.generated.common
+ *
+ */
+ public ObjectFactory() {
+ }
+
+ /**
+ * Create an instance of {@link LinkType }
+ *
+ */
+ public LinkType createLinkType() {
+ return new LinkType();
+ }
+
+ /**
+ * Create an instance of {@link Links }
+ *
+ */
+ public Links createLinks() {
+ return new Links();
+ }
+
+ /**
+ * Create an instance of {@link CcAddressDetailsType }
+ *
+ */
+ public CcAddressDetailsType createCcAddressDetailsType() {
+ return new CcAddressDetailsType();
+ }
+
+ /**
+ * Create an instance of {@link CcDetailsType }
+ *
+ */
+ public CcDetailsType createCcDetailsType() {
+ return new CcDetailsType();
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link LinkType }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "", name = "link")
+ public JAXBElement<LinkType> createLink(LinkType value) {
+ return new JAXBElement<LinkType>(_Link_QNAME, LinkType.class, null, value);
+ }
+
+}
diff --git a/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/discovery/CcAddressDetailsType.java b/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/discovery/CcAddressDetailsType.java
new file mode 100644
index 0000000..3a8d160
--- /dev/null
+++ b/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/discovery/CcAddressDetailsType.java
@@ -0,0 +1,231 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.03.13 at 11:05:37 AM EDT
+//
+
+
+package ca.canadapost.cpcdp.rating.generated.discovery;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.NormalizedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+
+/**
+ * <p>Java class for CcAddressDetailsType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="CcAddressDetailsType">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="address-line-1">
+ * <simpleType>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}normalizedString">
+ * <minLength value="1"/>
+ * <maxLength value="44"/>
+ * </restriction>
+ * </simpleType>
+ * </element>
+ * <element name="address-line-2" minOccurs="0">
+ * <simpleType>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}normalizedString">
+ * <maxLength value="44"/>
+ * </restriction>
+ * </simpleType>
+ * </element>
+ * <element name="city">
+ * <simpleType>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}normalizedString">
+ * <minLength value="1"/>
+ * <maxLength value="40"/>
+ * </restriction>
+ * </simpleType>
+ * </element>
+ * <element name="prov-state" type="{http://www.canadapost.ca/ws/ship/rate-v3}ProvinceStateOrInternationalType"/>
+ * <element name="postal-zip-code" type="{http://www.canadapost.ca/ws/ship/rate-v3}PostalCodeOrZipOrInternationalType" minOccurs="0"/>
+ * <element name="country-code" type="{http://www.canadapost.ca/ws/ship/rate-v3}CountryCodeType"/>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CcAddressDetailsType", propOrder = {
+
+})
+public class CcAddressDetailsType {
+
+ @XmlElement(name = "address-line-1", required = true)
+ @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+ protected String addressLine1;
+ @XmlElement(name = "address-line-2")
+ @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+ protected String addressLine2;
+ @XmlElement(required = true)
+ @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+ protected String city;
+ @XmlElement(name = "prov-state", required = true)
+ @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+ protected String provState;
+ @XmlElement(name = "postal-zip-code")
+ @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+ protected String postalZipCode;
+ @XmlElement(name = "country-code", required = true)
+ protected String countryCode;
+
+ /**
+ * Gets the value of the addressLine1 property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getAddressLine1() {
+ return addressLine1;
+ }
+
+ /**
+ * Sets the value of the addressLine1 property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setAddressLine1(String value) {
+ this.addressLine1 = value;
+ }
+
+ /**
+ * Gets the value of the addressLine2 property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getAddressLine2() {
+ return addressLine2;
+ }
+
+ /**
+ * Sets the value of the addressLine2 property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setAddressLine2(String value) {
+ this.addressLine2 = value;
+ }
+
+ /**
+ * Gets the value of the city property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getCity() {
+ return city;
+ }
+
+ /**
+ * Sets the value of the city property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setCity(String value) {
+ this.city = value;
+ }
+
+ /**
+ * Gets the value of the provState property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getProvState() {
+ return provState;
+ }
+
+ /**
+ * Sets the value of the provState property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setProvState(String value) {
+ this.provState = value;
+ }
+
+ /**
+ * Gets the value of the postalZipCode property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getPostalZipCode() {
+ return postalZipCode;
+ }
+
+ /**
+ * Sets the value of the postalZipCode property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setPostalZipCode(String value) {
+ this.postalZipCode = value;
+ }
+
+ /**
+ * Gets the value of the countryCode property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getCountryCode() {
+ return countryCode;
+ }
+
+ /**
+ * Sets the value of the countryCode property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setCountryCode(String value) {
+ this.countryCode = value;
+ }
+
+}
diff --git a/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/discovery/CcDetailsType.java b/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/discovery/CcDetailsType.java
new file mode 100644
index 0000000..d47f105
--- /dev/null
+++ b/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/discovery/CcDetailsType.java
@@ -0,0 +1,210 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.03.13 at 11:05:37 AM EDT
+//
+
+
+package ca.canadapost.cpcdp.rating.generated.discovery;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.NormalizedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+
+/**
+ * <p>Java class for CcDetailsType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="CcDetailsType">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="cc-type" type="{http://www.canadapost.ca/ws/ship/rate-v3}CcType"/>
+ * <element name="cc-number" type="{http://www.canadapost.ca/ws/ship/rate-v3}CcNumberType"/>
+ * <element name="cc-name" type="{http://www.canadapost.ca/ws/ship/rate-v3}CcNameType"/>
+ * <element name="cc-expiry" type="{http://www.canadapost.ca/ws/ship/rate-v3}CcExpiryType"/>
+ * <element name="cc-cvv" type="{http://www.canadapost.ca/ws/ship/rate-v3}CcCvvType" minOccurs="0"/>
+ * <element name="cc-address-details" type="{http://www.canadapost.ca/ws/ship/rate-v3}CcAddressDetailsType" minOccurs="0"/>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CcDetailsType", propOrder = {
+
+})
+public class CcDetailsType {
+
+ @XmlElement(name = "cc-type", required = true)
+ protected CcType ccType;
+ @XmlElement(name = "cc-number", required = true)
+ @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+ protected String ccNumber;
+ @XmlElement(name = "cc-name", required = true)
+ @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+ protected String ccName;
+ @XmlElement(name = "cc-expiry", required = true)
+ @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+ protected String ccExpiry;
+ @XmlElement(name = "cc-cvv")
+ @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+ protected String ccCvv;
+ @XmlElement(name = "cc-address-details")
+ protected CcAddressDetailsType ccAddressDetails;
+
+ /**
+ * Gets the value of the ccType property.
+ *
+ * @return
+ * possible object is
+ * {@link CcType }
+ *
+ */
+ public CcType getCcType() {
+ return ccType;
+ }
+
+ /**
+ * Sets the value of the ccType property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CcType }
+ *
+ */
+ public void setCcType(CcType value) {
+ this.ccType = value;
+ }
+
+ /**
+ * Gets the value of the ccNumber property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getCcNumber() {
+ return ccNumber;
+ }
+
+ /**
+ * Sets the value of the ccNumber property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setCcNumber(String value) {
+ this.ccNumber = value;
+ }
+
+ /**
+ * Gets the value of the ccName property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getCcName() {
+ return ccName;
+ }
+
+ /**
+ * Sets the value of the ccName property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setCcName(String value) {
+ this.ccName = value;
+ }
+
+ /**
+ * Gets the value of the ccExpiry property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getCcExpiry() {
+ return ccExpiry;
+ }
+
+ /**
+ * Sets the value of the ccExpiry property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setCcExpiry(String value) {
+ this.ccExpiry = value;
+ }
+
+ /**
+ * Gets the value of the ccCvv property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getCcCvv() {
+ return ccCvv;
+ }
+
+ /**
+ * Sets the value of the ccCvv property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setCcCvv(String value) {
+ this.ccCvv = value;
+ }
+
+ /**
+ * Gets the value of the ccAddressDetails property.
+ *
+ * @return
+ * possible object is
+ * {@link CcAddressDetailsType }
+ *
+ */
+ public CcAddressDetailsType getCcAddressDetails() {
+ return ccAddressDetails;
+ }
+
+ /**
+ * Sets the value of the ccAddressDetails property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CcAddressDetailsType }
+ *
+ */
+ public void setCcAddressDetails(CcAddressDetailsType value) {
+ this.ccAddressDetails = value;
+ }
+
+}
diff --git a/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/discovery/CcType.java b/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/discovery/CcType.java
new file mode 100644
index 0000000..dae2943
--- /dev/null
+++ b/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/discovery/CcType.java
@@ -0,0 +1,53 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.03.13 at 11:05:37 AM EDT
+//
+
+
+package ca.canadapost.cpcdp.rating.generated.discovery;
+
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CcType.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>
+ * <pre>
+ * <simpleType name="CcType">
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}normalizedString">
+ * <enumeration value="MC"/>
+ * <enumeration value="VIS"/>
+ * <enumeration value="AME"/>
+ * <enumeration value="DC"/>
+ * <enumeration value="DIS"/>
+ * <enumeration value="ER"/>
+ * </restriction>
+ * </simpleType>
+ * </pre>
+ *
+ */
+@XmlType(name = "CcType")
+@XmlEnum
+public enum CcType {
+
+ MC,
+ VIS,
+ AME,
+ DC,
+ DIS,
+ ER;
+
+ public String value() {
+ return name();
+ }
+
+ public static CcType fromValue(String v) {
+ return valueOf(v);
+ }
+
+}
diff --git a/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/discovery/Link.java b/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/discovery/Link.java
new file mode 100644
index 0000000..9e7b2e8
--- /dev/null
+++ b/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/discovery/Link.java
@@ -0,0 +1,156 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.03.13 at 11:05:37 AM EDT
+//
+
+
+package ca.canadapost.cpcdp.rating.generated.discovery;
+
+import java.math.BigInteger;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.NormalizedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+
+/**
+ * <p>Java class for LinkType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="LinkType">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <attribute name="href" use="required" type="{http://www.w3.org/2001/XMLSchema}anyURI" />
+ * <attribute name="rel" use="required" type="{http://www.canadapost.ca/ws/ship/rate-v3}RelType" />
+ * <attribute name="index" type="{http://www.w3.org/2001/XMLSchema}nonNegativeInteger" />
+ * <attribute name="media-type" use="required" type="{http://www.w3.org/2001/XMLSchema}normalizedString" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "LinkType")
+@XmlRootElement(name = "link")
+public class Link {
+
+ @XmlAttribute(name = "href", required = true)
+ @XmlSchemaType(name = "anyURI")
+ protected String href;
+ @XmlAttribute(name = "rel", required = true)
+ protected RelType rel;
+ @XmlAttribute(name = "index")
+ @XmlSchemaType(name = "nonNegativeInteger")
+ protected BigInteger index;
+ @XmlAttribute(name = "media-type", required = true)
+ @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+ @XmlSchemaType(name = "normalizedString")
+ protected String mediaType;
+
+ /**
+ * Gets the value of the href property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getHref() {
+ return href;
+ }
+
+ /**
+ * Sets the value of the href property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setHref(String value) {
+ this.href = value;
+ }
+
+ /**
+ * Gets the value of the rel property.
+ *
+ * @return
+ * possible object is
+ * {@link RelType }
+ *
+ */
+ public RelType getRel() {
+ return rel;
+ }
+
+ /**
+ * Sets the value of the rel property.
+ *
+ * @param value
+ * allowed object is
+ * {@link RelType }
+ *
+ */
+ public void setRel(RelType value) {
+ this.rel = value;
+ }
+
+ /**
+ * Gets the value of the index property.
+ *
+ * @return
+ * possible object is
+ * {@link BigInteger }
+ *
+ */
+ public BigInteger getIndex() {
+ return index;
+ }
+
+ /**
+ * Sets the value of the index property.
+ *
+ * @param value
+ * allowed object is
+ * {@link BigInteger }
+ *
+ */
+ public void setIndex(BigInteger value) {
+ this.index = value;
+ }
+
+ /**
+ * Gets the value of the mediaType property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getMediaType() {
+ return mediaType;
+ }
+
+ /**
+ * Sets the value of the mediaType property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setMediaType(String value) {
+ this.mediaType = value;
+ }
+
+}
diff --git a/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/discovery/Links.java b/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/discovery/Links.java
new file mode 100644
index 0000000..782d5e1
--- /dev/null
+++ b/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/discovery/Links.java
@@ -0,0 +1,78 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.03.13 at 11:05:37 AM EDT
+//
+
+
+package ca.canadapost.cpcdp.rating.generated.discovery;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element ref="{http://www.canadapost.ca/ws/ship/rate-v3}link" maxOccurs="unbounded"/>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "", propOrder = {
+ "links"
+})
+@XmlRootElement(name = "links")
+public class Links {
+
+ @XmlElement(name = "link", required = true)
+ protected List<Link> links;
+
+ /**
+ * Gets the value of the links property.
+ *
+ * <p>
+ * This accessor method returns a reference to the live list,
+ * not a snapshot. Therefore any modification you make to the
+ * returned list will be present inside the JAXB object.
+ * This is why there is not a <CODE>set</CODE> method for the links property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getLinks().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link Link }
+ *
+ *
+ */
+ public List<Link> getLinks() {
+ if (links == null) {
+ links = new ArrayList<Link>();
+ }
+ return this.links;
+ }
+
+}
diff --git a/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/discovery/NumberRangeType.java b/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/discovery/NumberRangeType.java
new file mode 100644
index 0000000..90aed40
--- /dev/null
+++ b/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/discovery/NumberRangeType.java
@@ -0,0 +1,93 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.03.13 at 11:05:37 AM EDT
+//
+
+
+package ca.canadapost.cpcdp.rating.generated.discovery;
+
+import java.math.BigDecimal;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for NumberRangeType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="NumberRangeType">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <attribute name="min" type="{http://www.w3.org/2001/XMLSchema}decimal" />
+ * <attribute name="max" type="{http://www.w3.org/2001/XMLSchema}decimal" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "NumberRangeType")
+public class NumberRangeType {
+
+ @XmlAttribute(name = "min")
+ protected BigDecimal min;
+ @XmlAttribute(name = "max")
+ protected BigDecimal max;
+
+ /**
+ * Gets the value of the min property.
+ *
+ * @return
+ * possible object is
+ * {@link BigDecimal }
+ *
+ */
+ public BigDecimal getMin() {
+ return min;
+ }
+
+ /**
+ * Sets the value of the min property.
+ *
+ * @param value
+ * allowed object is
+ * {@link BigDecimal }
+ *
+ */
+ public void setMin(BigDecimal value) {
+ this.min = value;
+ }
+
+ /**
+ * Gets the value of the max property.
+ *
+ * @return
+ * possible object is
+ * {@link BigDecimal }
+ *
+ */
+ public BigDecimal getMax() {
+ return max;
+ }
+
+ /**
+ * Sets the value of the max property.
+ *
+ * @param value
+ * allowed object is
+ * {@link BigDecimal }
+ *
+ */
+ public void setMax(BigDecimal value) {
+ this.max = value;
+ }
+
+}
diff --git a/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/discovery/ObjectFactory.java b/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/discovery/ObjectFactory.java
new file mode 100644
index 0000000..846f999
--- /dev/null
+++ b/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/discovery/ObjectFactory.java
@@ -0,0 +1,175 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.03.13 at 11:05:37 AM EDT
+//
+
+
+package ca.canadapost.cpcdp.rating.generated.discovery;
+
+import javax.xml.bind.annotation.XmlRegistry;
+
+
+/**
+ * This object contains factory methods for each
+ * Java content interface and Java element interface
+ * generated in the ca.canadapost.cpcdp.rating.generated.discovery package.
+ * <p>An ObjectFactory allows you to programatically
+ * construct new instances of the Java representation
+ * for XML content. The Java representation of XML
+ * content can consist of schema derived interfaces
+ * and classes representing the binding of schema
+ * type definitions, element declarations and model
+ * groups. Factory methods for each of these are
+ * provided in this class.
+ *
+ */
+@XmlRegistry
+public class ObjectFactory {
+
+
+ /**
+ * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: ca.canadapost.cpcdp.rating.generated.discovery
+ *
+ */
+ public ObjectFactory() {
+ }
+
+ /**
+ * Create an instance of {@link Services }
+ *
+ */
+ public Services createServices() {
+ return new Services();
+ }
+
+ /**
+ * Create an instance of {@link ca.canadapost.cpcdp.rating.generated.discovery.Service }
+ *
+ */
+ public ca.canadapost.cpcdp.rating.generated.discovery.Service createService() {
+ return new ca.canadapost.cpcdp.rating.generated.discovery.Service();
+ }
+
+ /**
+ * Create an instance of {@link ca.canadapost.cpcdp.rating.generated.discovery.Option }
+ *
+ */
+ public ca.canadapost.cpcdp.rating.generated.discovery.Option createOption() {
+ return new ca.canadapost.cpcdp.rating.generated.discovery.Option();
+ }
+
+ /**
+ * Create an instance of {@link ca.canadapost.cpcdp.rating.generated.discovery.Options }
+ *
+ */
+ public ca.canadapost.cpcdp.rating.generated.discovery.Options createOptions() {
+ return new ca.canadapost.cpcdp.rating.generated.discovery.Options();
+ }
+
+ /**
+ * Create an instance of {@link ca.canadapost.cpcdp.rating.generated.discovery.Service.Restrictions }
+ *
+ */
+ public ca.canadapost.cpcdp.rating.generated.discovery.Service.Restrictions createServiceRestrictions() {
+ return new ca.canadapost.cpcdp.rating.generated.discovery.Service.Restrictions();
+ }
+
+ /**
+ * Create an instance of {@link ca.canadapost.cpcdp.rating.generated.discovery.Service.Options }
+ *
+ */
+ public ca.canadapost.cpcdp.rating.generated.discovery.Service.Options createServiceOptions() {
+ return new ca.canadapost.cpcdp.rating.generated.discovery.Service.Options();
+ }
+
+ /**
+ * Create an instance of {@link Services.Service }
+ *
+ */
+ public Services.Service createServicesService() {
+ return new Services.Service();
+ }
+
+ /**
+ * Create an instance of {@link Link }
+ *
+ */
+ public Link createLink() {
+ return new Link();
+ }
+
+ /**
+ * Create an instance of {@link Links }
+ *
+ */
+ public Links createLinks() {
+ return new Links();
+ }
+
+ /**
+ * Create an instance of {@link ca.canadapost.cpcdp.rating.generated.discovery.Option.ConflictingOptions }
+ *
+ */
+ public ca.canadapost.cpcdp.rating.generated.discovery.Option.ConflictingOptions createOptionConflictingOptions() {
+ return new ca.canadapost.cpcdp.rating.generated.discovery.Option.ConflictingOptions();
+ }
+
+ /**
+ * Create an instance of {@link ca.canadapost.cpcdp.rating.generated.discovery.Option.PrerequisiteOptions }
+ *
+ */
+ public ca.canadapost.cpcdp.rating.generated.discovery.Option.PrerequisiteOptions createOptionPrerequisiteOptions() {
+ return new ca.canadapost.cpcdp.rating.generated.discovery.Option.PrerequisiteOptions();
+ }
+
+ /**
+ * Create an instance of {@link ca.canadapost.cpcdp.rating.generated.discovery.Options.Option }
+ *
+ */
+ public ca.canadapost.cpcdp.rating.generated.discovery.Options.Option createOptionsOption() {
+ return new ca.canadapost.cpcdp.rating.generated.discovery.Options.Option();
+ }
+
+ /**
+ * Create an instance of {@link CcAddressDetailsType }
+ *
+ */
+ public CcAddressDetailsType createCcAddressDetailsType() {
+ return new CcAddressDetailsType();
+ }
+
+ /**
+ * Create an instance of {@link NumberRangeType }
+ *
+ */
+ public NumberRangeType createNumberRangeType() {
+ return new NumberRangeType();
+ }
+
+ /**
+ * Create an instance of {@link CcDetailsType }
+ *
+ */
+ public CcDetailsType createCcDetailsType() {
+ return new CcDetailsType();
+ }
+
+ /**
+ * Create an instance of {@link ca.canadapost.cpcdp.rating.generated.discovery.Service.Restrictions.DimensionalRestrictions }
+ *
+ */
+ public ca.canadapost.cpcdp.rating.generated.discovery.Service.Restrictions.DimensionalRestrictions createServiceRestrictionsDimensionalRestrictions() {
+ return new ca.canadapost.cpcdp.rating.generated.discovery.Service.Restrictions.DimensionalRestrictions();
+ }
+
+ /**
+ * Create an instance of {@link ca.canadapost.cpcdp.rating.generated.discovery.Service.Options.Option }
+ *
+ */
+ public ca.canadapost.cpcdp.rating.generated.discovery.Service.Options.Option createServiceOptionsOption() {
+ return new ca.canadapost.cpcdp.rating.generated.discovery.Service.Options.Option();
+ }
+
+}
diff --git a/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/discovery/Option.java b/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/discovery/Option.java
new file mode 100644
index 0000000..3c4f73d
--- /dev/null
+++ b/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/discovery/Option.java
@@ -0,0 +1,372 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.03.13 at 11:05:37 AM EDT
+//
+
+
+package ca.canadapost.cpcdp.rating.generated.discovery;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.NormalizedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+
+/**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="option-code" type="{http://www.w3.org/2001/XMLSchema}normalizedString"/>
+ * <element name="option-name" type="{http://www.w3.org/2001/XMLSchema}normalizedString"/>
+ * <element name="option-class" type="{http://www.w3.org/2001/XMLSchema}normalizedString"/>
+ * <element name="prints-on-label" type="{http://www.w3.org/2001/XMLSchema}boolean"/>
+ * <element name="qualifier-required" type="{http://www.w3.org/2001/XMLSchema}boolean"/>
+ * <element name="conflicting-options" minOccurs="0">
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="option-code" type="{http://www.w3.org/2001/XMLSchema}normalizedString" maxOccurs="unbounded"/>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </element>
+ * <element name="prerequisite-options" minOccurs="0">
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="option-code" type="{http://www.w3.org/2001/XMLSchema}normalizedString" maxOccurs="unbounded"/>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </element>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "", propOrder = {
+
+})
+@XmlRootElement(name = "option")
+public class Option {
+
+ @XmlElement(name = "option-code", required = true)
+ @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+ @XmlSchemaType(name = "normalizedString")
+ protected String optionCode;
+ @XmlElement(name = "option-name", required = true)
+ @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+ @XmlSchemaType(name = "normalizedString")
+ protected String optionName;
+ @XmlElement(name = "option-class", required = true)
+ @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+ @XmlSchemaType(name = "normalizedString")
+ protected String optionClass;
+ @XmlElement(name = "prints-on-label")
+ protected boolean printsOnLabel;
+ @XmlElement(name = "qualifier-required")
+ protected boolean qualifierRequired;
+ @XmlElement(name = "conflicting-options")
+ protected Option.ConflictingOptions conflictingOptions;
+ @XmlElement(name = "prerequisite-options")
+ protected Option.PrerequisiteOptions prerequisiteOptions;
+
+ /**
+ * Gets the value of the optionCode property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getOptionCode() {
+ return optionCode;
+ }
+
+ /**
+ * Sets the value of the optionCode property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setOptionCode(String value) {
+ this.optionCode = value;
+ }
+
+ /**
+ * Gets the value of the optionName property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getOptionName() {
+ return optionName;
+ }
+
+ /**
+ * Sets the value of the optionName property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setOptionName(String value) {
+ this.optionName = value;
+ }
+
+ /**
+ * Gets the value of the optionClass property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getOptionClass() {
+ return optionClass;
+ }
+
+ /**
+ * Sets the value of the optionClass property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setOptionClass(String value) {
+ this.optionClass = value;
+ }
+
+ /**
+ * Gets the value of the printsOnLabel property.
+ *
+ */
+ public boolean isPrintsOnLabel() {
+ return printsOnLabel;
+ }
+
+ /**
+ * Sets the value of the printsOnLabel property.
+ *
+ */
+ public void setPrintsOnLabel(boolean value) {
+ this.printsOnLabel = value;
+ }
+
+ /**
+ * Gets the value of the qualifierRequired property.
+ *
+ */
+ public boolean isQualifierRequired() {
+ return qualifierRequired;
+ }
+
+ /**
+ * Sets the value of the qualifierRequired property.
+ *
+ */
+ public void setQualifierRequired(boolean value) {
+ this.qualifierRequired = value;
+ }
+
+ /**
+ * Gets the value of the conflictingOptions property.
+ *
+ * @return
+ * possible object is
+ * {@link Option.ConflictingOptions }
+ *
+ */
+ public Option.ConflictingOptions getConflictingOptions() {
+ return conflictingOptions;
+ }
+
+ /**
+ * Sets the value of the conflictingOptions property.
+ *
+ * @param value
+ * allowed object is
+ * {@link Option.ConflictingOptions }
+ *
+ */
+ public void setConflictingOptions(Option.ConflictingOptions value) {
+ this.conflictingOptions = value;
+ }
+
+ /**
+ * Gets the value of the prerequisiteOptions property.
+ *
+ * @return
+ * possible object is
+ * {@link Option.PrerequisiteOptions }
+ *
+ */
+ public Option.PrerequisiteOptions getPrerequisiteOptions() {
+ return prerequisiteOptions;
+ }
+
+ /**
+ * Sets the value of the prerequisiteOptions property.
+ *
+ * @param value
+ * allowed object is
+ * {@link Option.PrerequisiteOptions }
+ *
+ */
+ public void setPrerequisiteOptions(Option.PrerequisiteOptions value) {
+ this.prerequisiteOptions = value;
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="option-code" type="{http://www.w3.org/2001/XMLSchema}normalizedString" maxOccurs="unbounded"/>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "", propOrder = {
+ "optionCodes"
+ })
+ public static class ConflictingOptions {
+
+ @XmlElement(name = "option-code", required = true)
+ @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+ @XmlSchemaType(name = "normalizedString")
+ protected List<String> optionCodes;
+
+ /**
+ * Gets the value of the optionCodes property.
+ *
+ * <p>
+ * This accessor method returns a reference to the live list,
+ * not a snapshot. Therefore any modification you make to the
+ * returned list will be present inside the JAXB object.
+ * This is why there is not a <CODE>set</CODE> method for the optionCodes property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getOptionCodes().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link String }
+ *
+ *
+ */
+ public List<String> getOptionCodes() {
+ if (optionCodes == null) {
+ optionCodes = new ArrayList<String>();
+ }
+ return this.optionCodes;
+ }
+
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="option-code" type="{http://www.w3.org/2001/XMLSchema}normalizedString" maxOccurs="unbounded"/>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "", propOrder = {
+ "optionCodes"
+ })
+ public static class PrerequisiteOptions {
+
+ @XmlElement(name = "option-code", required = true)
+ @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+ @XmlSchemaType(name = "normalizedString")
+ protected List<String> optionCodes;
+
+ /**
+ * Gets the value of the optionCodes property.
+ *
+ * <p>
+ * This accessor method returns a reference to the live list,
+ * not a snapshot. Therefore any modification you make to the
+ * returned list will be present inside the JAXB object.
+ * This is why there is not a <CODE>set</CODE> method for the optionCodes property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getOptionCodes().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link String }
+ *
+ *
+ */
+ public List<String> getOptionCodes() {
+ if (optionCodes == null) {
+ optionCodes = new ArrayList<String>();
+ }
+ return this.optionCodes;
+ }
+
+ }
+
+}
diff --git a/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/discovery/Options.java b/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/discovery/Options.java
new file mode 100644
index 0000000..1d4154b
--- /dev/null
+++ b/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/discovery/Options.java
@@ -0,0 +1,226 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.03.13 at 11:05:37 AM EDT
+//
+
+
+package ca.canadapost.cpcdp.rating.generated.discovery;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+
+/**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="option" maxOccurs="unbounded" minOccurs="0">
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="option-code" type="{http://www.w3.org/2001/XMLSchema}token"/>
+ * <element name="option-name" type="{http://www.w3.org/2001/XMLSchema}token"/>
+ * <element name="link" type="{http://www.canadapost.ca/ws/ship/rate-v3}LinkType"/>
+ * <element name="qualifier-required" type="{http://www.w3.org/2001/XMLSchema}boolean"/>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </element>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "", propOrder = {
+ "options"
+})
+@XmlRootElement(name = "options")
+public class Options {
+
+ @XmlElement(name = "option")
+ protected List<Options.Option> options;
+
+ /**
+ * Gets the value of the options property.
+ *
+ * <p>
+ * This accessor method returns a reference to the live list,
+ * not a snapshot. Therefore any modification you make to the
+ * returned list will be present inside the JAXB object.
+ * This is why there is not a <CODE>set</CODE> method for the options property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getOptions().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link Options.Option }
+ *
+ *
+ */
+ public List<Options.Option> getOptions() {
+ if (options == null) {
+ options = new ArrayList<Options.Option>();
+ }
+ return this.options;
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="option-code" type="{http://www.w3.org/2001/XMLSchema}token"/>
+ * <element name="option-name" type="{http://www.w3.org/2001/XMLSchema}token"/>
+ * <element name="link" type="{http://www.canadapost.ca/ws/ship/rate-v3}LinkType"/>
+ * <element name="qualifier-required" type="{http://www.w3.org/2001/XMLSchema}boolean"/>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "", propOrder = {
+
+ })
+ public static class Option {
+
+ @XmlElement(name = "option-code", required = true)
+ @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+ @XmlSchemaType(name = "token")
+ protected String optionCode;
+ @XmlElement(name = "option-name", required = true)
+ @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+ @XmlSchemaType(name = "token")
+ protected String optionName;
+ @XmlElement(required = true)
+ protected Link link;
+ @XmlElement(name = "qualifier-required")
+ protected boolean qualifierRequired;
+
+ /**
+ * Gets the value of the optionCode property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getOptionCode() {
+ return optionCode;
+ }
+
+ /**
+ * Sets the value of the optionCode property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setOptionCode(String value) {
+ this.optionCode = value;
+ }
+
+ /**
+ * Gets the value of the optionName property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getOptionName() {
+ return optionName;
+ }
+
+ /**
+ * Sets the value of the optionName property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setOptionName(String value) {
+ this.optionName = value;
+ }
+
+ /**
+ * Gets the value of the link property.
+ *
+ * @return
+ * possible object is
+ * {@link Link }
+ *
+ */
+ public Link getLink() {
+ return link;
+ }
+
+ /**
+ * Sets the value of the link property.
+ *
+ * @param value
+ * allowed object is
+ * {@link Link }
+ *
+ */
+ public void setLink(Link value) {
+ this.link = value;
+ }
+
+ /**
+ * Gets the value of the qualifierRequired property.
+ *
+ */
+ public boolean isQualifierRequired() {
+ return qualifierRequired;
+ }
+
+ /**
+ * Sets the value of the qualifierRequired property.
+ *
+ */
+ public void setQualifierRequired(boolean value) {
+ this.qualifierRequired = value;
+ }
+
+ }
+
+}
diff --git a/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/discovery/package-info.java b/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/discovery/package-info.java
new file mode 100644
index 0000000..e856f9d
--- /dev/null
+++ b/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/discovery/package-info.java
@@ -0,0 +1,9 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.03.13 at 11:05:37 AM EDT
+//
+
+@javax.xml.bind.annotation.XmlSchema(namespace = "http://www.canadapost.ca/ws/ship/rate-v3", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
+package ca.canadapost.cpcdp.rating.generated.discovery;
diff --git a/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/discovery/RelType.java b/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/discovery/RelType.java
new file mode 100644
index 0000000..62514a1
--- /dev/null
+++ b/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/discovery/RelType.java
@@ -0,0 +1,58 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.03.13 at 11:05:37 AM EDT
+//
+
+
+package ca.canadapost.cpcdp.rating.generated.discovery;
+
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for RelType.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>
+ * <pre>
+ * <simpleType name="RelType">
+ * <restriction base="{http://www.canadapost.ca/ws/ship/rate-v3}RelType">
+ * <enumeration value="service"/>
+ * <enumeration value="option"/>
+ * </restriction>
+ * </simpleType>
+ * </pre>
+ *
+ */
+@XmlType(name = "RelType")
+@XmlEnum
+public enum RelType {
+
+ @XmlEnumValue("service")
+ SERVICE("service"),
+ @XmlEnumValue("option")
+ OPTION("option");
+ private final String value;
+
+ RelType(String v) {
+ value = v;
+ }
+
+ public String value() {
+ return value;
+ }
+
+ public static RelType fromValue(String v) {
+ for (RelType c: RelType.values()) {
+ if (c.value.equals(v)) {
+ return c;
+ }
+ }
+ throw new IllegalArgumentException(v);
+ }
+
+}
diff --git a/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/discovery/Service.java b/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/discovery/Service.java
new file mode 100644
index 0000000..4bbaf36
--- /dev/null
+++ b/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/discovery/Service.java
@@ -0,0 +1,866 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.03.13 at 11:05:37 AM EDT
+//
+
+
+package ca.canadapost.cpcdp.rating.generated.discovery;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.NormalizedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+
+/**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="service-code" type="{http://www.canadapost.ca/ws/ship/rate-v3}ServiceCodeType"/>
+ * <element name="service-name" type="{http://www.w3.org/2001/XMLSchema}normalizedString"/>
+ * <element name="comment" type="{http://www.w3.org/2001/XMLSchema}normalizedString" minOccurs="0"/>
+ * <element name="options" minOccurs="0">
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="option" maxOccurs="unbounded">
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="option-code" type="{http://www.w3.org/2001/XMLSchema}normalizedString"/>
+ * <element name="option-name" type="{http://www.w3.org/2001/XMLSchema}normalizedString"/>
+ * <element name="link" type="{http://www.canadapost.ca/ws/ship/rate-v3}LinkType"/>
+ * <element name="mandatory" type="{http://www.w3.org/2001/XMLSchema}boolean"/>
+ * <element name="qualifier-required" type="{http://www.w3.org/2001/XMLSchema}boolean"/>
+ * <element name="qualifier-max" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </element>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </element>
+ * <element name="restrictions">
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="weight-restriction" type="{http://www.canadapost.ca/ws/ship/rate-v3}NumberRangeType"/>
+ * <element name="dimensional-restrictions">
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="length" type="{http://www.canadapost.ca/ws/ship/rate-v3}NumberRangeType"/>
+ * <element name="width" type="{http://www.canadapost.ca/ws/ship/rate-v3}NumberRangeType"/>
+ * <element name="height" type="{http://www.canadapost.ca/ws/ship/rate-v3}NumberRangeType"/>
+ * <element name="length-plus-girth-max" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
+ * <element name="length-height-width-sum-max" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
+ * <element name="oversize-limit" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </element>
+ * <element name="density-factor" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
+ * <element name="can-ship-in-mailing-tube" type="{http://www.w3.org/2001/XMLSchema}boolean"/>
+ * <element name="can-ship-unpackaged" type="{http://www.w3.org/2001/XMLSchema}boolean"/>
+ * <element name="allowed-as-return-service" type="{http://www.w3.org/2001/XMLSchema}boolean"/>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </element>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "", propOrder = {
+
+})
+@XmlRootElement(name = "service")
+public class Service {
+
+ @XmlElement(name = "service-code", required = true)
+ @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+ protected String serviceCode;
+ @XmlElement(name = "service-name", required = true)
+ @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+ @XmlSchemaType(name = "normalizedString")
+ protected String serviceName;
+ @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+ @XmlSchemaType(name = "normalizedString")
+ protected String comment;
+ protected Service.Options options;
+ @XmlElement(required = true)
+ protected Service.Restrictions restrictions;
+
+ /**
+ * Gets the value of the serviceCode property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getServiceCode() {
+ return serviceCode;
+ }
+
+ /**
+ * Sets the value of the serviceCode property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setServiceCode(String value) {
+ this.serviceCode = value;
+ }
+
+ /**
+ * Gets the value of the serviceName property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getServiceName() {
+ return serviceName;
+ }
+
+ /**
+ * Sets the value of the serviceName property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setServiceName(String value) {
+ this.serviceName = value;
+ }
+
+ /**
+ * Gets the value of the comment property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getComment() {
+ return comment;
+ }
+
+ /**
+ * Sets the value of the comment property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setComment(String value) {
+ this.comment = value;
+ }
+
+ /**
+ * Gets the value of the options property.
+ *
+ * @return
+ * possible object is
+ * {@link Service.Options }
+ *
+ */
+ public Service.Options getOptions() {
+ return options;
+ }
+
+ /**
+ * Sets the value of the options property.
+ *
+ * @param value
+ * allowed object is
+ * {@link Service.Options }
+ *
+ */
+ public void setOptions(Service.Options value) {
+ this.options = value;
+ }
+
+ /**
+ * Gets the value of the restrictions property.
+ *
+ * @return
+ * possible object is
+ * {@link Service.Restrictions }
+ *
+ */
+ public Service.Restrictions getRestrictions() {
+ return restrictions;
+ }
+
+ /**
+ * Sets the value of the restrictions property.
+ *
+ * @param value
+ * allowed object is
+ * {@link Service.Restrictions }
+ *
+ */
+ public void setRestrictions(Service.Restrictions value) {
+ this.restrictions = value;
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="option" maxOccurs="unbounded">
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="option-code" type="{http://www.w3.org/2001/XMLSchema}normalizedString"/>
+ * <element name="option-name" type="{http://www.w3.org/2001/XMLSchema}normalizedString"/>
+ * <element name="link" type="{http://www.canadapost.ca/ws/ship/rate-v3}LinkType"/>
+ * <element name="mandatory" type="{http://www.w3.org/2001/XMLSchema}boolean"/>
+ * <element name="qualifier-required" type="{http://www.w3.org/2001/XMLSchema}boolean"/>
+ * <element name="qualifier-max" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </element>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "", propOrder = {
+ "options"
+ })
+ public static class Options {
+
+ @XmlElement(name = "option", required = true)
+ protected List<Service.Options.Option> options;
+
+ /**
+ * Gets the value of the options property.
+ *
+ * <p>
+ * This accessor method returns a reference to the live list,
+ * not a snapshot. Therefore any modification you make to the
+ * returned list will be present inside the JAXB object.
+ * This is why there is not a <CODE>set</CODE> method for the options property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getOptions().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link Service.Options.Option }
+ *
+ *
+ */
+ public List<Service.Options.Option> getOptions() {
+ if (options == null) {
+ options = new ArrayList<Service.Options.Option>();
+ }
+ return this.options;
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="option-code" type="{http://www.w3.org/2001/XMLSchema}normalizedString"/>
+ * <element name="option-name" type="{http://www.w3.org/2001/XMLSchema}normalizedString"/>
+ * <element name="link" type="{http://www.canadapost.ca/ws/ship/rate-v3}LinkType"/>
+ * <element name="mandatory" type="{http://www.w3.org/2001/XMLSchema}boolean"/>
+ * <element name="qualifier-required" type="{http://www.w3.org/2001/XMLSchema}boolean"/>
+ * <element name="qualifier-max" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "", propOrder = {
+
+ })
+ public static class Option {
+
+ @XmlElement(name = "option-code", required = true)
+ @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+ @XmlSchemaType(name = "normalizedString")
+ protected String optionCode;
+ @XmlElement(name = "option-name", required = true)
+ @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+ @XmlSchemaType(name = "normalizedString")
+ protected String optionName;
+ @XmlElement(required = true)
+ protected Link link;
+ protected boolean mandatory;
+ @XmlElement(name = "qualifier-required")
+ protected boolean qualifierRequired;
+ @XmlElement(name = "qualifier-max")
+ protected BigDecimal qualifierMax;
+
+ /**
+ * Gets the value of the optionCode property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getOptionCode() {
+ return optionCode;
+ }
+
+ /**
+ * Sets the value of the optionCode property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setOptionCode(String value) {
+ this.optionCode = value;
+ }
+
+ /**
+ * Gets the value of the optionName property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getOptionName() {
+ return optionName;
+ }
+
+ /**
+ * Sets the value of the optionName property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setOptionName(String value) {
+ this.optionName = value;
+ }
+
+ /**
+ * Gets the value of the link property.
+ *
+ * @return
+ * possible object is
+ * {@link Link }
+ *
+ */
+ public Link getLink() {
+ return link;
+ }
+
+ /**
+ * Sets the value of the link property.
+ *
+ * @param value
+ * allowed object is
+ * {@link Link }
+ *
+ */
+ public void setLink(Link value) {
+ this.link = value;
+ }
+
+ /**
+ * Gets the value of the mandatory property.
+ *
+ */
+ public boolean isMandatory() {
+ return mandatory;
+ }
+
+ /**
+ * Sets the value of the mandatory property.
+ *
+ */
+ public void setMandatory(boolean value) {
+ this.mandatory = value;
+ }
+
+ /**
+ * Gets the value of the qualifierRequired property.
+ *
+ */
+ public boolean isQualifierRequired() {
+ return qualifierRequired;
+ }
+
+ /**
+ * Sets the value of the qualifierRequired property.
+ *
+ */
+ public void setQualifierRequired(boolean value) {
+ this.qualifierRequired = value;
+ }
+
+ /**
+ * Gets the value of the qualifierMax property.
+ *
+ * @return
+ * possible object is
+ * {@link BigDecimal }
+ *
+ */
+ public BigDecimal getQualifierMax() {
+ return qualifierMax;
+ }
+
+ /**
+ * Sets the value of the qualifierMax property.
+ *
+ * @param value
+ * allowed object is
+ * {@link BigDecimal }
+ *
+ */
+ public void setQualifierMax(BigDecimal value) {
+ this.qualifierMax = value;
+ }
+
+ }
+
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="weight-restriction" type="{http://www.canadapost.ca/ws/ship/rate-v3}NumberRangeType"/>
+ * <element name="dimensional-restrictions">
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="length" type="{http://www.canadapost.ca/ws/ship/rate-v3}NumberRangeType"/>
+ * <element name="width" type="{http://www.canadapost.ca/ws/ship/rate-v3}NumberRangeType"/>
+ * <element name="height" type="{http://www.canadapost.ca/ws/ship/rate-v3}NumberRangeType"/>
+ * <element name="length-plus-girth-max" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
+ * <element name="length-height-width-sum-max" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
+ * <element name="oversize-limit" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </element>
+ * <element name="density-factor" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
+ * <element name="can-ship-in-mailing-tube" type="{http://www.w3.org/2001/XMLSchema}boolean"/>
+ * <element name="can-ship-unpackaged" type="{http://www.w3.org/2001/XMLSchema}boolean"/>
+ * <element name="allowed-as-return-service" type="{http://www.w3.org/2001/XMLSchema}boolean"/>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "", propOrder = {
+
+ })
+ public static class Restrictions {
+
+ @XmlElement(name = "weight-restriction", required = true)
+ protected NumberRangeType weightRestriction;
+ @XmlElement(name = "dimensional-restrictions", required = true)
+ protected Service.Restrictions.DimensionalRestrictions dimensionalRestrictions;
+ @XmlElement(name = "density-factor")
+ protected BigDecimal densityFactor;
+ @XmlElement(name = "can-ship-in-mailing-tube")
+ protected boolean canShipInMailingTube;
+ @XmlElement(name = "can-ship-unpackaged")
+ protected boolean canShipUnpackaged;
+ @XmlElement(name = "allowed-as-return-service")
+ protected boolean allowedAsReturnService;
+
+ /**
+ * Gets the value of the weightRestriction property.
+ *
+ * @return
+ * possible object is
+ * {@link NumberRangeType }
+ *
+ */
+ public NumberRangeType getWeightRestriction() {
+ return weightRestriction;
+ }
+
+ /**
+ * Sets the value of the weightRestriction property.
+ *
+ * @param value
+ * allowed object is
+ * {@link NumberRangeType }
+ *
+ */
+ public void setWeightRestriction(NumberRangeType value) {
+ this.weightRestriction = value;
+ }
+
+ /**
+ * Gets the value of the dimensionalRestrictions property.
+ *
+ * @return
+ * possible object is
+ * {@link Service.Restrictions.DimensionalRestrictions }
+ *
+ */
+ public Service.Restrictions.DimensionalRestrictions getDimensionalRestrictions() {
+ return dimensionalRestrictions;
+ }
+
+ /**
+ * Sets the value of the dimensionalRestrictions property.
+ *
+ * @param value
+ * allowed object is
+ * {@link Service.Restrictions.DimensionalRestrictions }
+ *
+ */
+ public void setDimensionalRestrictions(Service.Restrictions.DimensionalRestrictions value) {
+ this.dimensionalRestrictions = value;
+ }
+
+ /**
+ * Gets the value of the densityFactor property.
+ *
+ * @return
+ * possible object is
+ * {@link BigDecimal }
+ *
+ */
+ public BigDecimal getDensityFactor() {
+ return densityFactor;
+ }
+
+ /**
+ * Sets the value of the densityFactor property.
+ *
+ * @param value
+ * allowed object is
+ * {@link BigDecimal }
+ *
+ */
+ public void setDensityFactor(BigDecimal value) {
+ this.densityFactor = value;
+ }
+
+ /**
+ * Gets the value of the canShipInMailingTube property.
+ *
+ */
+ public boolean isCanShipInMailingTube() {
+ return canShipInMailingTube;
+ }
+
+ /**
+ * Sets the value of the canShipInMailingTube property.
+ *
+ */
+ public void setCanShipInMailingTube(boolean value) {
+ this.canShipInMailingTube = value;
+ }
+
+ /**
+ * Gets the value of the canShipUnpackaged property.
+ *
+ */
+ public boolean isCanShipUnpackaged() {
+ return canShipUnpackaged;
+ }
+
+ /**
+ * Sets the value of the canShipUnpackaged property.
+ *
+ */
+ public void setCanShipUnpackaged(boolean value) {
+ this.canShipUnpackaged = value;
+ }
+
+ /**
+ * Gets the value of the allowedAsReturnService property.
+ *
+ */
+ public boolean isAllowedAsReturnService() {
+ return allowedAsReturnService;
+ }
+
+ /**
+ * Sets the value of the allowedAsReturnService property.
+ *
+ */
+ public void setAllowedAsReturnService(boolean value) {
+ this.allowedAsReturnService = value;
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="length" type="{http://www.canadapost.ca/ws/ship/rate-v3}NumberRangeType"/>
+ * <element name="width" type="{http://www.canadapost.ca/ws/ship/rate-v3}NumberRangeType"/>
+ * <element name="height" type="{http://www.canadapost.ca/ws/ship/rate-v3}NumberRangeType"/>
+ * <element name="length-plus-girth-max" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
+ * <element name="length-height-width-sum-max" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
+ * <element name="oversize-limit" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "", propOrder = {
+
+ })
+ public static class DimensionalRestrictions {
+
+ @XmlElement(required = true)
+ protected NumberRangeType length;
+ @XmlElement(required = true)
+ protected NumberRangeType width;
+ @XmlElement(required = true)
+ protected NumberRangeType height;
+ @XmlElement(name = "length-plus-girth-max")
+ protected BigDecimal lengthPlusGirthMax;
+ @XmlElement(name = "length-height-width-sum-max")
+ protected BigDecimal lengthHeightWidthSumMax;
+ @XmlElement(name = "oversize-limit")
+ protected BigDecimal oversizeLimit;
+
+ /**
+ * Gets the value of the length property.
+ *
+ * @return
+ * possible object is
+ * {@link NumberRangeType }
+ *
+ */
+ public NumberRangeType getLength() {
+ return length;
+ }
+
+ /**
+ * Sets the value of the length property.
+ *
+ * @param value
+ * allowed object is
+ * {@link NumberRangeType }
+ *
+ */
+ public void setLength(NumberRangeType value) {
+ this.length = value;
+ }
+
+ /**
+ * Gets the value of the width property.
+ *
+ * @return
+ * possible object is
+ * {@link NumberRangeType }
+ *
+ */
+ public NumberRangeType getWidth() {
+ return width;
+ }
+
+ /**
+ * Sets the value of the width property.
+ *
+ * @param value
+ * allowed object is
+ * {@link NumberRangeType }
+ *
+ */
+ public void setWidth(NumberRangeType value) {
+ this.width = value;
+ }
+
+ /**
+ * Gets the value of the height property.
+ *
+ * @return
+ * possible object is
+ * {@link NumberRangeType }
+ *
+ */
+ public NumberRangeType getHeight() {
+ return height;
+ }
+
+ /**
+ * Sets the value of the height property.
+ *
+ * @param value
+ * allowed object is
+ * {@link NumberRangeType }
+ *
+ */
+ public void setHeight(NumberRangeType value) {
+ this.height = value;
+ }
+
+ /**
+ * Gets the value of the lengthPlusGirthMax property.
+ *
+ * @return
+ * possible object is
+ * {@link BigDecimal }
+ *
+ */
+ public BigDecimal getLengthPlusGirthMax() {
+ return lengthPlusGirthMax;
+ }
+
+ /**
+ * Sets the value of the lengthPlusGirthMax property.
+ *
+ * @param value
+ * allowed object is
+ * {@link BigDecimal }
+ *
+ */
+ public void setLengthPlusGirthMax(BigDecimal value) {
+ this.lengthPlusGirthMax = value;
+ }
+
+ /**
+ * Gets the value of the lengthHeightWidthSumMax property.
+ *
+ * @return
+ * possible object is
+ * {@link BigDecimal }
+ *
+ */
+ public BigDecimal getLengthHeightWidthSumMax() {
+ return lengthHeightWidthSumMax;
+ }
+
+ /**
+ * Sets the value of the lengthHeightWidthSumMax property.
+ *
+ * @param value
+ * allowed object is
+ * {@link BigDecimal }
+ *
+ */
+ public void setLengthHeightWidthSumMax(BigDecimal value) {
+ this.lengthHeightWidthSumMax = value;
+ }
+
+ /**
+ * Gets the value of the oversizeLimit property.
+ *
+ * @return
+ * possible object is
+ * {@link BigDecimal }
+ *
+ */
+ public BigDecimal getOversizeLimit() {
+ return oversizeLimit;
+ }
+
+ /**
+ * Sets the value of the oversizeLimit property.
+ *
+ * @param value
+ * allowed object is
+ * {@link BigDecimal }
+ *
+ */
+ public void setOversizeLimit(BigDecimal value) {
+ this.oversizeLimit = value;
+ }
+
+ }
+
+ }
+
+}
diff --git a/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/discovery/Services.java b/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/discovery/Services.java
new file mode 100644
index 0000000..cff7444
--- /dev/null
+++ b/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/discovery/Services.java
@@ -0,0 +1,205 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.03.13 at 11:05:37 AM EDT
+//
+
+
+package ca.canadapost.cpcdp.rating.generated.discovery;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.NormalizedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+
+/**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="service" maxOccurs="unbounded" minOccurs="0">
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="service-code" type="{http://www.canadapost.ca/ws/ship/rate-v3}ServiceCodeType"/>
+ * <element name="service-name" type="{http://www.w3.org/2001/XMLSchema}normalizedString"/>
+ * <element name="link" type="{http://www.canadapost.ca/ws/ship/rate-v3}LinkType"/>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </element>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "", propOrder = {
+ "services"
+})
+@XmlRootElement(name = "services")
+public class Services {
+
+ @XmlElement(name = "service")
+ protected List<Services.Service> services;
+
+ /**
+ * Gets the value of the services property.
+ *
+ * <p>
+ * This accessor method returns a reference to the live list,
+ * not a snapshot. Therefore any modification you make to the
+ * returned list will be present inside the JAXB object.
+ * This is why there is not a <CODE>set</CODE> method for the services property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getServices().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link Services.Service }
+ *
+ *
+ */
+ public List<Services.Service> getServices() {
+ if (services == null) {
+ services = new ArrayList<Services.Service>();
+ }
+ return this.services;
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="service-code" type="{http://www.canadapost.ca/ws/ship/rate-v3}ServiceCodeType"/>
+ * <element name="service-name" type="{http://www.w3.org/2001/XMLSchema}normalizedString"/>
+ * <element name="link" type="{http://www.canadapost.ca/ws/ship/rate-v3}LinkType"/>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "", propOrder = {
+
+ })
+ public static class Service {
+
+ @XmlElement(name = "service-code", required = true)
+ @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+ protected String serviceCode;
+ @XmlElement(name = "service-name", required = true)
+ @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+ @XmlSchemaType(name = "normalizedString")
+ protected String serviceName;
+ @XmlElement(required = true)
+ protected Link link;
+
+ /**
+ * Gets the value of the serviceCode property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getServiceCode() {
+ return serviceCode;
+ }
+
+ /**
+ * Sets the value of the serviceCode property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setServiceCode(String value) {
+ this.serviceCode = value;
+ }
+
+ /**
+ * Gets the value of the serviceName property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getServiceName() {
+ return serviceName;
+ }
+
+ /**
+ * Sets the value of the serviceName property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setServiceName(String value) {
+ this.serviceName = value;
+ }
+
+ /**
+ * Gets the value of the link property.
+ *
+ * @return
+ * possible object is
+ * {@link Link }
+ *
+ */
+ public Link getLink() {
+ return link;
+ }
+
+ /**
+ * Sets the value of the link property.
+ *
+ * @param value
+ * allowed object is
+ * {@link Link }
+ *
+ */
+ public void setLink(Link value) {
+ this.link = value;
+ }
+
+ }
+
+}
diff --git a/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/messages/Messages.java b/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/messages/Messages.java
new file mode 100644
index 0000000..299b29e
--- /dev/null
+++ b/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/messages/Messages.java
@@ -0,0 +1,177 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.03.13 at 11:05:36 AM EDT
+//
+
+
+package ca.canadapost.cpcdp.rating.generated.messages;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.NormalizedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+
+/**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="message" maxOccurs="unbounded" minOccurs="0">
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="code" type="{http://www.w3.org/2001/XMLSchema}normalizedString"/>
+ * <element name="description" type="{http://www.w3.org/2001/XMLSchema}normalizedString"/>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </element>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "", propOrder = {
+ "message"
+})
+@XmlRootElement(name = "messages")
+public class Messages {
+
+ protected List<Messages.Message> message;
+
+ /**
+ * Gets the value of the message property.
+ *
+ * <p>
+ * This accessor method returns a reference to the live list,
+ * not a snapshot. Therefore any modification you make to the
+ * returned list will be present inside the JAXB object.
+ * This is why there is not a <CODE>set</CODE> method for the message property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getMessage().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link Messages.Message }
+ *
+ *
+ */
+ public List<Messages.Message> getMessage() {
+ if (message == null) {
+ message = new ArrayList<Messages.Message>();
+ }
+ return this.message;
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="code" type="{http://www.w3.org/2001/XMLSchema}normalizedString"/>
+ * <element name="description" type="{http://www.w3.org/2001/XMLSchema}normalizedString"/>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "", propOrder = {
+
+ })
+ public static class Message {
+
+ @XmlElement(required = true)
+ @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+ @XmlSchemaType(name = "normalizedString")
+ protected String code;
+ @XmlElement(required = true)
+ @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+ @XmlSchemaType(name = "normalizedString")
+ protected String description;
+
+ /**
+ * Gets the value of the code property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getCode() {
+ return code;
+ }
+
+ /**
+ * Sets the value of the code property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setCode(String value) {
+ this.code = value;
+ }
+
+ /**
+ * Gets the value of the description property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getDescription() {
+ return description;
+ }
+
+ /**
+ * Sets the value of the description property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setDescription(String value) {
+ this.description = value;
+ }
+
+ }
+
+}
diff --git a/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/messages/ObjectFactory.java b/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/messages/ObjectFactory.java
new file mode 100644
index 0000000..4478174
--- /dev/null
+++ b/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/messages/ObjectFactory.java
@@ -0,0 +1,55 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.03.13 at 11:05:36 AM EDT
+//
+
+
+package ca.canadapost.cpcdp.rating.generated.messages;
+
+import javax.xml.bind.annotation.XmlRegistry;
+
+
+/**
+ * This object contains factory methods for each
+ * Java content interface and Java element interface
+ * generated in the ca.canadapost.cpcdp.rating.generated.messages package.
+ * <p>An ObjectFactory allows you to programatically
+ * construct new instances of the Java representation
+ * for XML content. The Java representation of XML
+ * content can consist of schema derived interfaces
+ * and classes representing the binding of schema
+ * type definitions, element declarations and model
+ * groups. Factory methods for each of these are
+ * provided in this class.
+ *
+ */
+@XmlRegistry
+public class ObjectFactory {
+
+
+ /**
+ * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: ca.canadapost.cpcdp.rating.generated.messages
+ *
+ */
+ public ObjectFactory() {
+ }
+
+ /**
+ * Create an instance of {@link Messages }
+ *
+ */
+ public Messages createMessages() {
+ return new Messages();
+ }
+
+ /**
+ * Create an instance of {@link Messages.Message }
+ *
+ */
+ public Messages.Message createMessagesMessage() {
+ return new Messages.Message();
+ }
+
+}
diff --git a/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/messages/package-info.java b/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/messages/package-info.java
new file mode 100644
index 0000000..7da92e5
--- /dev/null
+++ b/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/messages/package-info.java
@@ -0,0 +1,9 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.03.13 at 11:05:36 AM EDT
+//
+
+@javax.xml.bind.annotation.XmlSchema(namespace = "http://www.canadapost.ca/ws/messages", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
+package ca.canadapost.cpcdp.rating.generated.messages;
diff --git a/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/rating/CcAddressDetailsType.java b/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/rating/CcAddressDetailsType.java
new file mode 100644
index 0000000..00f25ca
--- /dev/null
+++ b/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/rating/CcAddressDetailsType.java
@@ -0,0 +1,231 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.03.13 at 11:05:37 AM EDT
+//
+
+
+package ca.canadapost.cpcdp.rating.generated.rating;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.NormalizedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+
+/**
+ * <p>Java class for CcAddressDetailsType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="CcAddressDetailsType">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="address-line-1">
+ * <simpleType>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}normalizedString">
+ * <minLength value="1"/>
+ * <maxLength value="44"/>
+ * </restriction>
+ * </simpleType>
+ * </element>
+ * <element name="address-line-2" minOccurs="0">
+ * <simpleType>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}normalizedString">
+ * <maxLength value="44"/>
+ * </restriction>
+ * </simpleType>
+ * </element>
+ * <element name="city">
+ * <simpleType>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}normalizedString">
+ * <minLength value="1"/>
+ * <maxLength value="40"/>
+ * </restriction>
+ * </simpleType>
+ * </element>
+ * <element name="prov-state" type="{http://www.canadapost.ca/ws/ship/rate-v3}ProvinceStateOrInternationalType"/>
+ * <element name="postal-zip-code" type="{http://www.canadapost.ca/ws/ship/rate-v3}PostalCodeOrZipOrInternationalType" minOccurs="0"/>
+ * <element name="country-code" type="{http://www.canadapost.ca/ws/ship/rate-v3}CountryCodeType"/>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CcAddressDetailsType", propOrder = {
+
+})
+public class CcAddressDetailsType {
+
+ @XmlElement(name = "address-line-1", required = true)
+ @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+ protected String addressLine1;
+ @XmlElement(name = "address-line-2")
+ @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+ protected String addressLine2;
+ @XmlElement(required = true)
+ @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+ protected String city;
+ @XmlElement(name = "prov-state", required = true)
+ @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+ protected String provState;
+ @XmlElement(name = "postal-zip-code")
+ @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+ protected String postalZipCode;
+ @XmlElement(name = "country-code", required = true)
+ protected String countryCode;
+
+ /**
+ * Gets the value of the addressLine1 property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getAddressLine1() {
+ return addressLine1;
+ }
+
+ /**
+ * Sets the value of the addressLine1 property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setAddressLine1(String value) {
+ this.addressLine1 = value;
+ }
+
+ /**
+ * Gets the value of the addressLine2 property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getAddressLine2() {
+ return addressLine2;
+ }
+
+ /**
+ * Sets the value of the addressLine2 property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setAddressLine2(String value) {
+ this.addressLine2 = value;
+ }
+
+ /**
+ * Gets the value of the city property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getCity() {
+ return city;
+ }
+
+ /**
+ * Sets the value of the city property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setCity(String value) {
+ this.city = value;
+ }
+
+ /**
+ * Gets the value of the provState property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getProvState() {
+ return provState;
+ }
+
+ /**
+ * Sets the value of the provState property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setProvState(String value) {
+ this.provState = value;
+ }
+
+ /**
+ * Gets the value of the postalZipCode property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getPostalZipCode() {
+ return postalZipCode;
+ }
+
+ /**
+ * Sets the value of the postalZipCode property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setPostalZipCode(String value) {
+ this.postalZipCode = value;
+ }
+
+ /**
+ * Gets the value of the countryCode property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getCountryCode() {
+ return countryCode;
+ }
+
+ /**
+ * Sets the value of the countryCode property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setCountryCode(String value) {
+ this.countryCode = value;
+ }
+
+}
diff --git a/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/rating/CcDetailsType.java b/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/rating/CcDetailsType.java
new file mode 100644
index 0000000..86abcd1
--- /dev/null
+++ b/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/rating/CcDetailsType.java
@@ -0,0 +1,210 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.03.13 at 11:05:37 AM EDT
+//
+
+
+package ca.canadapost.cpcdp.rating.generated.rating;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.NormalizedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+
+/**
+ * <p>Java class for CcDetailsType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="CcDetailsType">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="cc-type" type="{http://www.canadapost.ca/ws/ship/rate-v3}CcType"/>
+ * <element name="cc-number" type="{http://www.canadapost.ca/ws/ship/rate-v3}CcNumberType"/>
+ * <element name="cc-name" type="{http://www.canadapost.ca/ws/ship/rate-v3}CcNameType"/>
+ * <element name="cc-expiry" type="{http://www.canadapost.ca/ws/ship/rate-v3}CcExpiryType"/>
+ * <element name="cc-cvv" type="{http://www.canadapost.ca/ws/ship/rate-v3}CcCvvType" minOccurs="0"/>
+ * <element name="cc-address-details" type="{http://www.canadapost.ca/ws/ship/rate-v3}CcAddressDetailsType" minOccurs="0"/>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CcDetailsType", propOrder = {
+
+})
+public class CcDetailsType {
+
+ @XmlElement(name = "cc-type", required = true)
+ protected CcType ccType;
+ @XmlElement(name = "cc-number", required = true)
+ @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+ protected String ccNumber;
+ @XmlElement(name = "cc-name", required = true)
+ @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+ protected String ccName;
+ @XmlElement(name = "cc-expiry", required = true)
+ @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+ protected String ccExpiry;
+ @XmlElement(name = "cc-cvv")
+ @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+ protected String ccCvv;
+ @XmlElement(name = "cc-address-details")
+ protected CcAddressDetailsType ccAddressDetails;
+
+ /**
+ * Gets the value of the ccType property.
+ *
+ * @return
+ * possible object is
+ * {@link CcType }
+ *
+ */
+ public CcType getCcType() {
+ return ccType;
+ }
+
+ /**
+ * Sets the value of the ccType property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CcType }
+ *
+ */
+ public void setCcType(CcType value) {
+ this.ccType = value;
+ }
+
+ /**
+ * Gets the value of the ccNumber property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getCcNumber() {
+ return ccNumber;
+ }
+
+ /**
+ * Sets the value of the ccNumber property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setCcNumber(String value) {
+ this.ccNumber = value;
+ }
+
+ /**
+ * Gets the value of the ccName property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getCcName() {
+ return ccName;
+ }
+
+ /**
+ * Sets the value of the ccName property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setCcName(String value) {
+ this.ccName = value;
+ }
+
+ /**
+ * Gets the value of the ccExpiry property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getCcExpiry() {
+ return ccExpiry;
+ }
+
+ /**
+ * Sets the value of the ccExpiry property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setCcExpiry(String value) {
+ this.ccExpiry = value;
+ }
+
+ /**
+ * Gets the value of the ccCvv property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getCcCvv() {
+ return ccCvv;
+ }
+
+ /**
+ * Sets the value of the ccCvv property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setCcCvv(String value) {
+ this.ccCvv = value;
+ }
+
+ /**
+ * Gets the value of the ccAddressDetails property.
+ *
+ * @return
+ * possible object is
+ * {@link CcAddressDetailsType }
+ *
+ */
+ public CcAddressDetailsType getCcAddressDetails() {
+ return ccAddressDetails;
+ }
+
+ /**
+ * Sets the value of the ccAddressDetails property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CcAddressDetailsType }
+ *
+ */
+ public void setCcAddressDetails(CcAddressDetailsType value) {
+ this.ccAddressDetails = value;
+ }
+
+}
diff --git a/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/rating/CcType.java b/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/rating/CcType.java
new file mode 100644
index 0000000..aa1d22d
--- /dev/null
+++ b/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/rating/CcType.java
@@ -0,0 +1,53 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.03.13 at 11:05:37 AM EDT
+//
+
+
+package ca.canadapost.cpcdp.rating.generated.rating;
+
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CcType.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>
+ * <pre>
+ * <simpleType name="CcType">
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}normalizedString">
+ * <enumeration value="MC"/>
+ * <enumeration value="VIS"/>
+ * <enumeration value="AME"/>
+ * <enumeration value="DC"/>
+ * <enumeration value="DIS"/>
+ * <enumeration value="ER"/>
+ * </restriction>
+ * </simpleType>
+ * </pre>
+ *
+ */
+@XmlType(name = "CcType")
+@XmlEnum
+public enum CcType {
+
+ MC,
+ VIS,
+ AME,
+ DC,
+ DIS,
+ ER;
+
+ public String value() {
+ return name();
+ }
+
+ public static CcType fromValue(String v) {
+ return valueOf(v);
+ }
+
+}
diff --git a/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/rating/Link.java b/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/rating/Link.java
new file mode 100644
index 0000000..4c2a3c3
--- /dev/null
+++ b/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/rating/Link.java
@@ -0,0 +1,156 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.03.13 at 11:05:37 AM EDT
+//
+
+
+package ca.canadapost.cpcdp.rating.generated.rating;
+
+import java.math.BigInteger;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.NormalizedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+
+/**
+ * <p>Java class for LinkType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="LinkType">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <attribute name="href" use="required" type="{http://www.w3.org/2001/XMLSchema}anyURI" />
+ * <attribute name="rel" use="required" type="{http://www.canadapost.ca/ws/ship/rate-v3}RelType" />
+ * <attribute name="index" type="{http://www.w3.org/2001/XMLSchema}nonNegativeInteger" />
+ * <attribute name="media-type" use="required" type="{http://www.w3.org/2001/XMLSchema}normalizedString" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "LinkType")
+@XmlRootElement(name = "link")
+public class Link {
+
+ @XmlAttribute(name = "href", required = true)
+ @XmlSchemaType(name = "anyURI")
+ protected String href;
+ @XmlAttribute(name = "rel", required = true)
+ protected String rel;
+ @XmlAttribute(name = "index")
+ @XmlSchemaType(name = "nonNegativeInteger")
+ protected BigInteger index;
+ @XmlAttribute(name = "media-type", required = true)
+ @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+ @XmlSchemaType(name = "normalizedString")
+ protected String mediaType;
+
+ /**
+ * Gets the value of the href property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getHref() {
+ return href;
+ }
+
+ /**
+ * Sets the value of the href property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setHref(String value) {
+ this.href = value;
+ }
+
+ /**
+ * Gets the value of the rel property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getRel() {
+ return rel;
+ }
+
+ /**
+ * Sets the value of the rel property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setRel(String value) {
+ this.rel = value;
+ }
+
+ /**
+ * Gets the value of the index property.
+ *
+ * @return
+ * possible object is
+ * {@link BigInteger }
+ *
+ */
+ public BigInteger getIndex() {
+ return index;
+ }
+
+ /**
+ * Sets the value of the index property.
+ *
+ * @param value
+ * allowed object is
+ * {@link BigInteger }
+ *
+ */
+ public void setIndex(BigInteger value) {
+ this.index = value;
+ }
+
+ /**
+ * Gets the value of the mediaType property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getMediaType() {
+ return mediaType;
+ }
+
+ /**
+ * Sets the value of the mediaType property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setMediaType(String value) {
+ this.mediaType = value;
+ }
+
+}
diff --git a/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/rating/Links.java b/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/rating/Links.java
new file mode 100644
index 0000000..3a2de52
--- /dev/null
+++ b/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/rating/Links.java
@@ -0,0 +1,78 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.03.13 at 11:05:37 AM EDT
+//
+
+
+package ca.canadapost.cpcdp.rating.generated.rating;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element ref="{http://www.canadapost.ca/ws/ship/rate-v3}link" maxOccurs="unbounded"/>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "", propOrder = {
+ "links"
+})
+@XmlRootElement(name = "links")
+public class Links {
+
+ @XmlElement(name = "link", required = true)
+ protected List<Link> links;
+
+ /**
+ * Gets the value of the links property.
+ *
+ * <p>
+ * This accessor method returns a reference to the live list,
+ * not a snapshot. Therefore any modification you make to the
+ * returned list will be present inside the JAXB object.
+ * This is why there is not a <CODE>set</CODE> method for the links property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getLinks().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link Link }
+ *
+ *
+ */
+ public List<Link> getLinks() {
+ if (links == null) {
+ links = new ArrayList<Link>();
+ }
+ return this.links;
+ }
+
+}
diff --git a/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/rating/MailingScenario.java b/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/rating/MailingScenario.java
new file mode 100644
index 0000000..bb880f9
--- /dev/null
+++ b/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/rating/MailingScenario.java
@@ -0,0 +1,1264 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.03.13 at 11:05:37 AM EDT
+//
+
+
+package ca.canadapost.cpcdp.rating.generated.rating;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.NormalizedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import javax.xml.datatype.XMLGregorianCalendar;
+
+
+/**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="customer-number" type="{http://www.canadapost.ca/ws/ship/rate-v3}CustomerIDType" minOccurs="0"/>
+ * <element name="contract-id" type="{http://www.canadapost.ca/ws/ship/rate-v3}ContractIDType" minOccurs="0"/>
+ * <element name="promo-code" type="{http://www.canadapost.ca/ws/ship/rate-v3}PromoCodeType" minOccurs="0"/>
+ * <element name="quote-type" minOccurs="0">
+ * <simpleType>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ * <enumeration value="commercial"/>
+ * <enumeration value="counter"/>
+ * </restriction>
+ * </simpleType>
+ * </element>
+ * <element name="expected-mailing-date" type="{http://www.w3.org/2001/XMLSchema}date" minOccurs="0"/>
+ * <element name="options" minOccurs="0">
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="option" maxOccurs="20">
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="option-code">
+ * <simpleType>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}normalizedString">
+ * <minLength value="1"/>
+ * <maxLength value="10"/>
+ * </restriction>
+ * </simpleType>
+ * </element>
+ * <element name="option-amount" type="{http://www.canadapost.ca/ws/ship/rate-v3}CostTypeNonZero" minOccurs="0"/>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </element>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </element>
+ * <element name="parcel-characteristics">
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="weight">
+ * <simpleType>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}decimal">
+ * <minExclusive value="0"/>
+ * <maxInclusive value="99.999"/>
+ * <fractionDigits value="3"/>
+ * </restriction>
+ * </simpleType>
+ * </element>
+ * <element name="dimensions" minOccurs="0">
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="length" type="{http://www.canadapost.ca/ws/ship/rate-v3}DimensionMeasurementType"/>
+ * <element name="width" type="{http://www.canadapost.ca/ws/ship/rate-v3}DimensionMeasurementType"/>
+ * <element name="height" type="{http://www.canadapost.ca/ws/ship/rate-v3}DimensionMeasurementType"/>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </element>
+ * <element name="unpackaged" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
+ * <element name="mailing-tube" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
+ * <element name="oversized" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </element>
+ * <element name="services" minOccurs="0">
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="service-code" type="{http://www.canadapost.ca/ws/ship/rate-v3}ServiceCodeType" maxOccurs="20"/>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </element>
+ * <element name="origin-postal-code" type="{http://www.canadapost.ca/ws/ship/rate-v3}PostalCodeType"/>
+ * <element name="destination">
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <choice>
+ * <element name="domestic">
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="postal-code" type="{http://www.canadapost.ca/ws/ship/rate-v3}PostalCodeType"/>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </element>
+ * <element name="united-states">
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="zip-code" type="{http://www.canadapost.ca/ws/ship/rate-v3}ZipCodeType"/>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </element>
+ * <element name="international">
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="country-code" type="{http://www.canadapost.ca/ws/ship/rate-v3}CountryCodeType"/>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </element>
+ * </choice>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </element>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "", propOrder = {
+
+})
+@XmlRootElement(name = "mailing-scenario")
+public class MailingScenario {
+
+ @XmlElement(name = "customer-number")
+ protected String customerNumber;
+ @XmlElement(name = "contract-id")
+ protected String contractId;
+ @XmlElement(name = "promo-code")
+ @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+ protected String promoCode;
+ @XmlElement(name = "quote-type")
+ protected String quoteType;
+ @XmlElement(name = "expected-mailing-date")
+ @XmlSchemaType(name = "date")
+ protected XMLGregorianCalendar expectedMailingDate;
+ protected MailingScenario.Options options;
+ @XmlElement(name = "parcel-characteristics", required = true)
+ protected MailingScenario.ParcelCharacteristics parcelCharacteristics;
+ protected MailingScenario.Services services;
+ @XmlElement(name = "origin-postal-code", required = true)
+ protected String originPostalCode;
+ @XmlElement(required = true)
+ protected MailingScenario.Destination destination;
+
+ /**
+ * Gets the value of the customerNumber property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getCustomerNumber() {
+ return customerNumber;
+ }
+
+ /**
+ * Sets the value of the customerNumber property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setCustomerNumber(String value) {
+ this.customerNumber = value;
+ }
+
+ /**
+ * Gets the value of the contractId property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getContractId() {
+ return contractId;
+ }
+
+ /**
+ * Sets the value of the contractId property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setContractId(String value) {
+ this.contractId = value;
+ }
+
+ /**
+ * Gets the value of the promoCode property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getPromoCode() {
+ return promoCode;
+ }
+
+ /**
+ * Sets the value of the promoCode property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setPromoCode(String value) {
+ this.promoCode = value;
+ }
+
+ /**
+ * Gets the value of the quoteType property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getQuoteType() {
+ return quoteType;
+ }
+
+ /**
+ * Sets the value of the quoteType property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setQuoteType(String value) {
+ this.quoteType = value;
+ }
+
+ /**
+ * Gets the value of the expectedMailingDate property.
+ *
+ * @return
+ * possible object is
+ * {@link XMLGregorianCalendar }
+ *
+ */
+ public XMLGregorianCalendar getExpectedMailingDate() {
+ return expectedMailingDate;
+ }
+
+ /**
+ * Sets the value of the expectedMailingDate property.
+ *
+ * @param value
+ * allowed object is
+ * {@link XMLGregorianCalendar }
+ *
+ */
+ public void setExpectedMailingDate(XMLGregorianCalendar value) {
+ this.expectedMailingDate = value;
+ }
+
+ /**
+ * Gets the value of the options property.
+ *
+ * @return
+ * possible object is
+ * {@link MailingScenario.Options }
+ *
+ */
+ public MailingScenario.Options getOptions() {
+ return options;
+ }
+
+ /**
+ * Sets the value of the options property.
+ *
+ * @param value
+ * allowed object is
+ * {@link MailingScenario.Options }
+ *
+ */
+ public void setOptions(MailingScenario.Options value) {
+ this.options = value;
+ }
+
+ /**
+ * Gets the value of the parcelCharacteristics property.
+ *
+ * @return
+ * possible object is
+ * {@link MailingScenario.ParcelCharacteristics }
+ *
+ */
+ public MailingScenario.ParcelCharacteristics getParcelCharacteristics() {
+ return parcelCharacteristics;
+ }
+
+ /**
+ * Sets the value of the parcelCharacteristics property.
+ *
+ * @param value
+ * allowed object is
+ * {@link MailingScenario.ParcelCharacteristics }
+ *
+ */
+ public void setParcelCharacteristics(MailingScenario.ParcelCharacteristics value) {
+ this.parcelCharacteristics = value;
+ }
+
+ /**
+ * Gets the value of the services property.
+ *
+ * @return
+ * possible object is
+ * {@link MailingScenario.Services }
+ *
+ */
+ public MailingScenario.Services getServices() {
+ return services;
+ }
+
+ /**
+ * Sets the value of the services property.
+ *
+ * @param value
+ * allowed object is
+ * {@link MailingScenario.Services }
+ *
+ */
+ public void setServices(MailingScenario.Services value) {
+ this.services = value;
+ }
+
+ /**
+ * Gets the value of the originPostalCode property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getOriginPostalCode() {
+ return originPostalCode;
+ }
+
+ /**
+ * Sets the value of the originPostalCode property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setOriginPostalCode(String value) {
+ this.originPostalCode = value;
+ }
+
+ /**
+ * Gets the value of the destination property.
+ *
+ * @return
+ * possible object is
+ * {@link MailingScenario.Destination }
+ *
+ */
+ public MailingScenario.Destination getDestination() {
+ return destination;
+ }
+
+ /**
+ * Sets the value of the destination property.
+ *
+ * @param value
+ * allowed object is
+ * {@link MailingScenario.Destination }
+ *
+ */
+ public void setDestination(MailingScenario.Destination value) {
+ this.destination = value;
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <choice>
+ * <element name="domestic">
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="postal-code" type="{http://www.canadapost.ca/ws/ship/rate-v3}PostalCodeType"/>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </element>
+ * <element name="united-states">
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="zip-code" type="{http://www.canadapost.ca/ws/ship/rate-v3}ZipCodeType"/>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </element>
+ * <element name="international">
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="country-code" type="{http://www.canadapost.ca/ws/ship/rate-v3}CountryCodeType"/>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </element>
+ * </choice>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "", propOrder = {
+ "international",
+ "unitedStates",
+ "domestic"
+ })
+ public static class Destination {
+
+ protected MailingScenario.Destination.International international;
+ @XmlElement(name = "united-states")
+ protected MailingScenario.Destination.UnitedStates unitedStates;
+ protected MailingScenario.Destination.Domestic domestic;
+
+ /**
+ * Gets the value of the international property.
+ *
+ * @return
+ * possible object is
+ * {@link MailingScenario.Destination.International }
+ *
+ */
+ public MailingScenario.Destination.International getInternational() {
+ return international;
+ }
+
+ /**
+ * Sets the value of the international property.
+ *
+ * @param value
+ * allowed object is
+ * {@link MailingScenario.Destination.International }
+ *
+ */
+ public void setInternational(MailingScenario.Destination.International value) {
+ this.international = value;
+ }
+
+ /**
+ * Gets the value of the unitedStates property.
+ *
+ * @return
+ * possible object is
+ * {@link MailingScenario.Destination.UnitedStates }
+ *
+ */
+ public MailingScenario.Destination.UnitedStates getUnitedStates() {
+ return unitedStates;
+ }
+
+ /**
+ * Sets the value of the unitedStates property.
+ *
+ * @param value
+ * allowed object is
+ * {@link MailingScenario.Destination.UnitedStates }
+ *
+ */
+ public void setUnitedStates(MailingScenario.Destination.UnitedStates value) {
+ this.unitedStates = value;
+ }
+
+ /**
+ * Gets the value of the domestic property.
+ *
+ * @return
+ * possible object is
+ * {@link MailingScenario.Destination.Domestic }
+ *
+ */
+ public MailingScenario.Destination.Domestic getDomestic() {
+ return domestic;
+ }
+
+ /**
+ * Sets the value of the domestic property.
+ *
+ * @param value
+ * allowed object is
+ * {@link MailingScenario.Destination.Domestic }
+ *
+ */
+ public void setDomestic(MailingScenario.Destination.Domestic value) {
+ this.domestic = value;
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="postal-code" type="{http://www.canadapost.ca/ws/ship/rate-v3}PostalCodeType"/>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "", propOrder = {
+
+ })
+ public static class Domestic {
+
+ @XmlElement(name = "postal-code", required = true)
+ protected String postalCode;
+
+ /**
+ * Gets the value of the postalCode property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getPostalCode() {
+ return postalCode;
+ }
+
+ /**
+ * Sets the value of the postalCode property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setPostalCode(String value) {
+ this.postalCode = value;
+ }
+
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="country-code" type="{http://www.canadapost.ca/ws/ship/rate-v3}CountryCodeType"/>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "", propOrder = {
+
+ })
+ public static class International {
+
+ @XmlElement(name = "country-code", required = true)
+ protected String countryCode;
+
+ /**
+ * Gets the value of the countryCode property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getCountryCode() {
+ return countryCode;
+ }
+
+ /**
+ * Sets the value of the countryCode property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setCountryCode(String value) {
+ this.countryCode = value;
+ }
+
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="zip-code" type="{http://www.canadapost.ca/ws/ship/rate-v3}ZipCodeType"/>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "", propOrder = {
+
+ })
+ public static class UnitedStates {
+
+ @XmlElement(name = "zip-code", required = true)
+ protected String zipCode;
+
+ /**
+ * Gets the value of the zipCode property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getZipCode() {
+ return zipCode;
+ }
+
+ /**
+ * Sets the value of the zipCode property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setZipCode(String value) {
+ this.zipCode = value;
+ }
+
+ }
+
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="option" maxOccurs="20">
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="option-code">
+ * <simpleType>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}normalizedString">
+ * <minLength value="1"/>
+ * <maxLength value="10"/>
+ * </restriction>
+ * </simpleType>
+ * </element>
+ * <element name="option-amount" type="{http://www.canadapost.ca/ws/ship/rate-v3}CostTypeNonZero" minOccurs="0"/>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </element>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "", propOrder = {
+ "options"
+ })
+ public static class Options {
+
+ @XmlElement(name = "option", required = true)
+ protected List<MailingScenario.Options.Option> options;
+
+ /**
+ * Gets the value of the options property.
+ *
+ * <p>
+ * This accessor method returns a reference to the live list,
+ * not a snapshot. Therefore any modification you make to the
+ * returned list will be present inside the JAXB object.
+ * This is why there is not a <CODE>set</CODE> method for the options property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getOptions().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link MailingScenario.Options.Option }
+ *
+ *
+ */
+ public List<MailingScenario.Options.Option> getOptions() {
+ if (options == null) {
+ options = new ArrayList<MailingScenario.Options.Option>();
+ }
+ return this.options;
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="option-code">
+ * <simpleType>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}normalizedString">
+ * <minLength value="1"/>
+ * <maxLength value="10"/>
+ * </restriction>
+ * </simpleType>
+ * </element>
+ * <element name="option-amount" type="{http://www.canadapost.ca/ws/ship/rate-v3}CostTypeNonZero" minOccurs="0"/>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "", propOrder = {
+
+ })
+ public static class Option {
+
+ @XmlElement(name = "option-code", required = true)
+ @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+ protected String optionCode;
+ @XmlElement(name = "option-amount")
+ protected BigDecimal optionAmount;
+
+ /**
+ * Gets the value of the optionCode property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getOptionCode() {
+ return optionCode;
+ }
+
+ /**
+ * Sets the value of the optionCode property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setOptionCode(String value) {
+ this.optionCode = value;
+ }
+
+ /**
+ * Gets the value of the optionAmount property.
+ *
+ * @return
+ * possible object is
+ * {@link BigDecimal }
+ *
+ */
+ public BigDecimal getOptionAmount() {
+ return optionAmount;
+ }
+
+ /**
+ * Sets the value of the optionAmount property.
+ *
+ * @param value
+ * allowed object is
+ * {@link BigDecimal }
+ *
+ */
+ public void setOptionAmount(BigDecimal value) {
+ this.optionAmount = value;
+ }
+
+ }
+
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="weight">
+ * <simpleType>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}decimal">
+ * <minExclusive value="0"/>
+ * <maxInclusive value="99.999"/>
+ * <fractionDigits value="3"/>
+ * </restriction>
+ * </simpleType>
+ * </element>
+ * <element name="dimensions" minOccurs="0">
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="length" type="{http://www.canadapost.ca/ws/ship/rate-v3}DimensionMeasurementType"/>
+ * <element name="width" type="{http://www.canadapost.ca/ws/ship/rate-v3}DimensionMeasurementType"/>
+ * <element name="height" type="{http://www.canadapost.ca/ws/ship/rate-v3}DimensionMeasurementType"/>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </element>
+ * <element name="unpackaged" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
+ * <element name="mailing-tube" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
+ * <element name="oversized" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "", propOrder = {
+
+ })
+ public static class ParcelCharacteristics {
+
+ @XmlElement(required = true)
+ protected BigDecimal weight;
+ protected MailingScenario.ParcelCharacteristics.Dimensions dimensions;
+ protected Boolean unpackaged;
+ @XmlElement(name = "mailing-tube")
+ protected Boolean mailingTube;
+ protected Boolean oversized;
+
+ /**
+ * Gets the value of the weight property.
+ *
+ * @return
+ * possible object is
+ * {@link BigDecimal }
+ *
+ */
+ public BigDecimal getWeight() {
+ return weight;
+ }
+
+ /**
+ * Sets the value of the weight property.
+ *
+ * @param value
+ * allowed object is
+ * {@link BigDecimal }
+ *
+ */
+ public void setWeight(BigDecimal value) {
+ this.weight = value;
+ }
+
+ /**
+ * Gets the value of the dimensions property.
+ *
+ * @return
+ * possible object is
+ * {@link MailingScenario.ParcelCharacteristics.Dimensions }
+ *
+ */
+ public MailingScenario.ParcelCharacteristics.Dimensions getDimensions() {
+ return dimensions;
+ }
+
+ /**
+ * Sets the value of the dimensions property.
+ *
+ * @param value
+ * allowed object is
+ * {@link MailingScenario.ParcelCharacteristics.Dimensions }
+ *
+ */
+ public void setDimensions(MailingScenario.ParcelCharacteristics.Dimensions value) {
+ this.dimensions = value;
+ }
+
+ /**
+ * Gets the value of the unpackaged property.
+ *
+ * @return
+ * possible object is
+ * {@link Boolean }
+ *
+ */
+ public Boolean isUnpackaged() {
+ return unpackaged;
+ }
+
+ /**
+ * Sets the value of the unpackaged property.
+ *
+ * @param value
+ * allowed object is
+ * {@link Boolean }
+ *
+ */
+ public void setUnpackaged(Boolean value) {
+ this.unpackaged = value;
+ }
+
+ /**
+ * Gets the value of the mailingTube property.
+ *
+ * @return
+ * possible object is
+ * {@link Boolean }
+ *
+ */
+ public Boolean isMailingTube() {
+ return mailingTube;
+ }
+
+ /**
+ * Sets the value of the mailingTube property.
+ *
+ * @param value
+ * allowed object is
+ * {@link Boolean }
+ *
+ */
+ public void setMailingTube(Boolean value) {
+ this.mailingTube = value;
+ }
+
+ /**
+ * Gets the value of the oversized property.
+ *
+ * @return
+ * possible object is
+ * {@link Boolean }
+ *
+ */
+ public Boolean isOversized() {
+ return oversized;
+ }
+
+ /**
+ * Sets the value of the oversized property.
+ *
+ * @param value
+ * allowed object is
+ * {@link Boolean }
+ *
+ */
+ public void setOversized(Boolean value) {
+ this.oversized = value;
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="length" type="{http://www.canadapost.ca/ws/ship/rate-v3}DimensionMeasurementType"/>
+ * <element name="width" type="{http://www.canadapost.ca/ws/ship/rate-v3}DimensionMeasurementType"/>
+ * <element name="height" type="{http://www.canadapost.ca/ws/ship/rate-v3}DimensionMeasurementType"/>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "", propOrder = {
+
+ })
+ public static class Dimensions {
+
+ @XmlElement(required = true)
+ protected BigDecimal length;
+ @XmlElement(required = true)
+ protected BigDecimal width;
+ @XmlElement(required = true)
+ protected BigDecimal height;
+
+ /**
+ * Gets the value of the length property.
+ *
+ * @return
+ * possible object is
+ * {@link BigDecimal }
+ *
+ */
+ public BigDecimal getLength() {
+ return length;
+ }
+
+ /**
+ * Sets the value of the length property.
+ *
+ * @param value
+ * allowed object is
+ * {@link BigDecimal }
+ *
+ */
+ public void setLength(BigDecimal value) {
+ this.length = value;
+ }
+
+ /**
+ * Gets the value of the width property.
+ *
+ * @return
+ * possible object is
+ * {@link BigDecimal }
+ *
+ */
+ public BigDecimal getWidth() {
+ return width;
+ }
+
+ /**
+ * Sets the value of the width property.
+ *
+ * @param value
+ * allowed object is
+ * {@link BigDecimal }
+ *
+ */
+ public void setWidth(BigDecimal value) {
+ this.width = value;
+ }
+
+ /**
+ * Gets the value of the height property.
+ *
+ * @return
+ * possible object is
+ * {@link BigDecimal }
+ *
+ */
+ public BigDecimal getHeight() {
+ return height;
+ }
+
+ /**
+ * Sets the value of the height property.
+ *
+ * @param value
+ * allowed object is
+ * {@link BigDecimal }
+ *
+ */
+ public void setHeight(BigDecimal value) {
+ this.height = value;
+ }
+
+ }
+
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="service-code" type="{http://www.canadapost.ca/ws/ship/rate-v3}ServiceCodeType" maxOccurs="20"/>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "", propOrder = {
+ "serviceCodes"
+ })
+ public static class Services {
+
+ @XmlElement(name = "service-code", required = true)
+ @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+ protected List<String> serviceCodes;
+
+ /**
+ * Gets the value of the serviceCodes property.
+ *
+ * <p>
+ * This accessor method returns a reference to the live list,
+ * not a snapshot. Therefore any modification you make to the
+ * returned list will be present inside the JAXB object.
+ * This is why there is not a <CODE>set</CODE> method for the serviceCodes property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getServiceCodes().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link String }
+ *
+ *
+ */
+ public List<String> getServiceCodes() {
+ if (serviceCodes == null) {
+ serviceCodes = new ArrayList<String>();
+ }
+ return this.serviceCodes;
+ }
+
+ }
+
+}
diff --git a/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/rating/ObjectFactory.java b/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/rating/ObjectFactory.java
new file mode 100644
index 0000000..8c79308
--- /dev/null
+++ b/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/rating/ObjectFactory.java
@@ -0,0 +1,255 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.03.13 at 11:05:37 AM EDT
+//
+
+
+package ca.canadapost.cpcdp.rating.generated.rating;
+
+import javax.xml.bind.annotation.XmlRegistry;
+
+
+/**
+ * This object contains factory methods for each
+ * Java content interface and Java element interface
+ * generated in the ca.canadapost.cpcdp.rating.generated.rating package.
+ * <p>An ObjectFactory allows you to programatically
+ * construct new instances of the Java representation
+ * for XML content. The Java representation of XML
+ * content can consist of schema derived interfaces
+ * and classes representing the binding of schema
+ * type definitions, element declarations and model
+ * groups. Factory methods for each of these are
+ * provided in this class.
+ *
+ */
+@XmlRegistry
+public class ObjectFactory {
+
+
+ /**
+ * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: ca.canadapost.cpcdp.rating.generated.rating
+ *
+ */
+ public ObjectFactory() {
+ }
+
+ /**
+ * Create an instance of {@link MailingScenario }
+ *
+ */
+ public MailingScenario createMailingScenario() {
+ return new MailingScenario();
+ }
+
+ /**
+ * Create an instance of {@link PriceQuotes }
+ *
+ */
+ public PriceQuotes createPriceQuotes() {
+ return new PriceQuotes();
+ }
+
+ /**
+ * Create an instance of {@link PriceQuotes.PriceQuote }
+ *
+ */
+ public PriceQuotes.PriceQuote createPriceQuotesPriceQuote() {
+ return new PriceQuotes.PriceQuote();
+ }
+
+ /**
+ * Create an instance of {@link PriceQuotes.PriceQuote.PriceDetails }
+ *
+ */
+ public PriceQuotes.PriceQuote.PriceDetails createPriceQuotesPriceQuotePriceDetails() {
+ return new PriceQuotes.PriceQuote.PriceDetails();
+ }
+
+ /**
+ * Create an instance of {@link PriceQuotes.PriceQuote.PriceDetails.Adjustments }
+ *
+ */
+ public PriceQuotes.PriceQuote.PriceDetails.Adjustments createPriceQuotesPriceQuotePriceDetailsAdjustments() {
+ return new PriceQuotes.PriceQuote.PriceDetails.Adjustments();
+ }
+
+ /**
+ * Create an instance of {@link PriceQuotes.PriceQuote.PriceDetails.Adjustments.Adjustment }
+ *
+ */
+ public PriceQuotes.PriceQuote.PriceDetails.Adjustments.Adjustment createPriceQuotesPriceQuotePriceDetailsAdjustmentsAdjustment() {
+ return new PriceQuotes.PriceQuote.PriceDetails.Adjustments.Adjustment();
+ }
+
+ /**
+ * Create an instance of {@link PriceQuotes.PriceQuote.PriceDetails.Options }
+ *
+ */
+ public PriceQuotes.PriceQuote.PriceDetails.Options createPriceQuotesPriceQuotePriceDetailsOptions() {
+ return new PriceQuotes.PriceQuote.PriceDetails.Options();
+ }
+
+ /**
+ * Create an instance of {@link PriceQuotes.PriceQuote.PriceDetails.Options.Option }
+ *
+ */
+ public PriceQuotes.PriceQuote.PriceDetails.Options.Option createPriceQuotesPriceQuotePriceDetailsOptionsOption() {
+ return new PriceQuotes.PriceQuote.PriceDetails.Options.Option();
+ }
+
+ /**
+ * Create an instance of {@link MailingScenario.Destination }
+ *
+ */
+ public MailingScenario.Destination createMailingScenarioDestination() {
+ return new MailingScenario.Destination();
+ }
+
+ /**
+ * Create an instance of {@link MailingScenario.ParcelCharacteristics }
+ *
+ */
+ public MailingScenario.ParcelCharacteristics createMailingScenarioParcelCharacteristics() {
+ return new MailingScenario.ParcelCharacteristics();
+ }
+
+ /**
+ * Create an instance of {@link MailingScenario.Options }
+ *
+ */
+ public MailingScenario.Options createMailingScenarioOptions() {
+ return new MailingScenario.Options();
+ }
+
+ /**
+ * Create an instance of {@link Link }
+ *
+ */
+ public Link createLink() {
+ return new Link();
+ }
+
+ /**
+ * Create an instance of {@link MailingScenario.Services }
+ *
+ */
+ public MailingScenario.Services createMailingScenarioServices() {
+ return new MailingScenario.Services();
+ }
+
+ /**
+ * Create an instance of {@link Links }
+ *
+ */
+ public Links createLinks() {
+ return new Links();
+ }
+
+ /**
+ * Create an instance of {@link CcAddressDetailsType }
+ *
+ */
+ public CcAddressDetailsType createCcAddressDetailsType() {
+ return new CcAddressDetailsType();
+ }
+
+ /**
+ * Create an instance of {@link CcDetailsType }
+ *
+ */
+ public CcDetailsType createCcDetailsType() {
+ return new CcDetailsType();
+ }
+
+ /**
+ * Create an instance of {@link TaxType }
+ *
+ */
+ public TaxType createTaxType() {
+ return new TaxType();
+ }
+
+ /**
+ * Create an instance of {@link PriceQuotes.PriceQuote.WeightDetails }
+ *
+ */
+ public PriceQuotes.PriceQuote.WeightDetails createPriceQuotesPriceQuoteWeightDetails() {
+ return new PriceQuotes.PriceQuote.WeightDetails();
+ }
+
+ /**
+ * Create an instance of {@link PriceQuotes.PriceQuote.ServiceStandard }
+ *
+ */
+ public PriceQuotes.PriceQuote.ServiceStandard createPriceQuotesPriceQuoteServiceStandard() {
+ return new PriceQuotes.PriceQuote.ServiceStandard();
+ }
+
+ /**
+ * Create an instance of {@link PriceQuotes.PriceQuote.PriceDetails.Taxes }
+ *
+ */
+ public PriceQuotes.PriceQuote.PriceDetails.Taxes createPriceQuotesPriceQuotePriceDetailsTaxes() {
+ return new PriceQuotes.PriceQuote.PriceDetails.Taxes();
+ }
+
+ /**
+ * Create an instance of {@link PriceQuotes.PriceQuote.PriceDetails.Adjustments.Adjustment.Qualifier }
+ *
+ */
+ public PriceQuotes.PriceQuote.PriceDetails.Adjustments.Adjustment.Qualifier createPriceQuotesPriceQuotePriceDetailsAdjustmentsAdjustmentQualifier() {
+ return new PriceQuotes.PriceQuote.PriceDetails.Adjustments.Adjustment.Qualifier();
+ }
+
+ /**
+ * Create an instance of {@link PriceQuotes.PriceQuote.PriceDetails.Options.Option.Qualifier }
+ *
+ */
+ public PriceQuotes.PriceQuote.PriceDetails.Options.Option.Qualifier createPriceQuotesPriceQuotePriceDetailsOptionsOptionQualifier() {
+ return new PriceQuotes.PriceQuote.PriceDetails.Options.Option.Qualifier();
+ }
+
+ /**
+ * Create an instance of {@link MailingScenario.Destination.International }
+ *
+ */
+ public MailingScenario.Destination.International createMailingScenarioDestinationInternational() {
+ return new MailingScenario.Destination.International();
+ }
+
+ /**
+ * Create an instance of {@link MailingScenario.Destination.UnitedStates }
+ *
+ */
+ public MailingScenario.Destination.UnitedStates createMailingScenarioDestinationUnitedStates() {
+ return new MailingScenario.Destination.UnitedStates();
+ }
+
+ /**
+ * Create an instance of {@link MailingScenario.Destination.Domestic }
+ *
+ */
+ public MailingScenario.Destination.Domestic createMailingScenarioDestinationDomestic() {
+ return new MailingScenario.Destination.Domestic();
+ }
+
+ /**
+ * Create an instance of {@link MailingScenario.ParcelCharacteristics.Dimensions }
+ *
+ */
+ public MailingScenario.ParcelCharacteristics.Dimensions createMailingScenarioParcelCharacteristicsDimensions() {
+ return new MailingScenario.ParcelCharacteristics.Dimensions();
+ }
+
+ /**
+ * Create an instance of {@link MailingScenario.Options.Option }
+ *
+ */
+ public MailingScenario.Options.Option createMailingScenarioOptionsOption() {
+ return new MailingScenario.Options.Option();
+ }
+
+}
diff --git a/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/rating/package-info.java b/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/rating/package-info.java
new file mode 100644
index 0000000..21b7773
--- /dev/null
+++ b/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/rating/package-info.java
@@ -0,0 +1,9 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.03.13 at 11:05:37 AM EDT
+//
+
+@javax.xml.bind.annotation.XmlSchema(namespace = "http://www.canadapost.ca/ws/ship/rate-v3", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
+package ca.canadapost.cpcdp.rating.generated.rating;
diff --git a/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/rating/PriceQuotes.java b/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/rating/PriceQuotes.java
new file mode 100644
index 0000000..2d79a71
--- /dev/null
+++ b/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/rating/PriceQuotes.java
@@ -0,0 +1,1775 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.03.13 at 11:05:37 AM EDT
+//
+
+
+package ca.canadapost.cpcdp.rating.generated.rating;
+
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.NormalizedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import javax.xml.datatype.XMLGregorianCalendar;
+
+
+/**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="price-quote" maxOccurs="unbounded" minOccurs="0">
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="service-code" type="{http://www.canadapost.ca/ws/ship/rate-v3}ServiceCodeType"/>
+ * <element name="service-link" type="{http://www.canadapost.ca/ws/ship/rate-v3}LinkType"/>
+ * <element name="service-name" type="{http://www.w3.org/2001/XMLSchema}normalizedString"/>
+ * <element name="price-details">
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="base" type="{http://www.w3.org/2001/XMLSchema}decimal"/>
+ * <element name="taxes" minOccurs="0">
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="gst" type="{http://www.canadapost.ca/ws/ship/rate-v3}TaxType" minOccurs="0"/>
+ * <element name="pst" type="{http://www.canadapost.ca/ws/ship/rate-v3}TaxType" minOccurs="0"/>
+ * <element name="hst" type="{http://www.canadapost.ca/ws/ship/rate-v3}TaxType" minOccurs="0"/>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </element>
+ * <element name="due" type="{http://www.w3.org/2001/XMLSchema}decimal"/>
+ * <element name="options" minOccurs="0">
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="option" maxOccurs="20">
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="option-code" type="{http://www.w3.org/2001/XMLSchema}normalizedString"/>
+ * <element name="option-name" type="{http://www.w3.org/2001/XMLSchema}normalizedString"/>
+ * <element name="option-price" type="{http://www.w3.org/2001/XMLSchema}decimal"/>
+ * <element name="qualifier" minOccurs="0">
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="step-size" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
+ * <element name="step-cost" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
+ * <element name="included-amount" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
+ * <element name="max-value" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
+ * <element name="included" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
+ * <element name="percent" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </element>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </element>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </element>
+ * <element name="adjustments" minOccurs="0">
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="adjustment" maxOccurs="20">
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="adjustment-code" type="{http://www.w3.org/2001/XMLSchema}normalizedString"/>
+ * <element name="adjustment-name" type="{http://www.w3.org/2001/XMLSchema}normalizedString"/>
+ * <element name="adjustment-cost" type="{http://www.w3.org/2001/XMLSchema}decimal"/>
+ * <element name="qualifier" minOccurs="0">
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="percent" type="{http://www.w3.org/2001/XMLSchema}decimal"/>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </element>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </element>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </element>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </element>
+ * <element name="weight-details">
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="cubed-weight" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </element>
+ * <element name="service-standard">
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="am-delivery" type="{http://www.w3.org/2001/XMLSchema}boolean"/>
+ * <element name="guaranteed-delivery" type="{http://www.w3.org/2001/XMLSchema}boolean"/>
+ * <element name="expected-transit-time" type="{http://www.w3.org/2001/XMLSchema}positiveInteger" minOccurs="0"/>
+ * <element name="expected-delivery-date" type="{http://www.w3.org/2001/XMLSchema}date" minOccurs="0"/>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </element>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </element>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "", propOrder = {
+ "priceQuotes"
+})
+@XmlRootElement(name = "price-quotes")
+public class PriceQuotes {
+
+ @XmlElement(name = "price-quote")
+ protected List<PriceQuotes.PriceQuote> priceQuotes;
+
+ /**
+ * Gets the value of the priceQuotes property.
+ *
+ * <p>
+ * This accessor method returns a reference to the live list,
+ * not a snapshot. Therefore any modification you make to the
+ * returned list will be present inside the JAXB object.
+ * This is why there is not a <CODE>set</CODE> method for the priceQuotes property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getPriceQuotes().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link PriceQuotes.PriceQuote }
+ *
+ *
+ */
+ public List<PriceQuotes.PriceQuote> getPriceQuotes() {
+ if (priceQuotes == null) {
+ priceQuotes = new ArrayList<PriceQuotes.PriceQuote>();
+ }
+ return this.priceQuotes;
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="service-code" type="{http://www.canadapost.ca/ws/ship/rate-v3}ServiceCodeType"/>
+ * <element name="service-link" type="{http://www.canadapost.ca/ws/ship/rate-v3}LinkType"/>
+ * <element name="service-name" type="{http://www.w3.org/2001/XMLSchema}normalizedString"/>
+ * <element name="price-details">
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="base" type="{http://www.w3.org/2001/XMLSchema}decimal"/>
+ * <element name="taxes" minOccurs="0">
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="gst" type="{http://www.canadapost.ca/ws/ship/rate-v3}TaxType" minOccurs="0"/>
+ * <element name="pst" type="{http://www.canadapost.ca/ws/ship/rate-v3}TaxType" minOccurs="0"/>
+ * <element name="hst" type="{http://www.canadapost.ca/ws/ship/rate-v3}TaxType" minOccurs="0"/>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </element>
+ * <element name="due" type="{http://www.w3.org/2001/XMLSchema}decimal"/>
+ * <element name="options" minOccurs="0">
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="option" maxOccurs="20">
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="option-code" type="{http://www.w3.org/2001/XMLSchema}normalizedString"/>
+ * <element name="option-name" type="{http://www.w3.org/2001/XMLSchema}normalizedString"/>
+ * <element name="option-price" type="{http://www.w3.org/2001/XMLSchema}decimal"/>
+ * <element name="qualifier" minOccurs="0">
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="step-size" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
+ * <element name="step-cost" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
+ * <element name="included-amount" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
+ * <element name="max-value" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
+ * <element name="included" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
+ * <element name="percent" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </element>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </element>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </element>
+ * <element name="adjustments" minOccurs="0">
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="adjustment" maxOccurs="20">
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="adjustment-code" type="{http://www.w3.org/2001/XMLSchema}normalizedString"/>
+ * <element name="adjustment-name" type="{http://www.w3.org/2001/XMLSchema}normalizedString"/>
+ * <element name="adjustment-cost" type="{http://www.w3.org/2001/XMLSchema}decimal"/>
+ * <element name="qualifier" minOccurs="0">
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="percent" type="{http://www.w3.org/2001/XMLSchema}decimal"/>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </element>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </element>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </element>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </element>
+ * <element name="weight-details">
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="cubed-weight" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </element>
+ * <element name="service-standard">
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="am-delivery" type="{http://www.w3.org/2001/XMLSchema}boolean"/>
+ * <element name="guaranteed-delivery" type="{http://www.w3.org/2001/XMLSchema}boolean"/>
+ * <element name="expected-transit-time" type="{http://www.w3.org/2001/XMLSchema}positiveInteger" minOccurs="0"/>
+ * <element name="expected-delivery-date" type="{http://www.w3.org/2001/XMLSchema}date" minOccurs="0"/>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </element>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "", propOrder = {
+
+ })
+ public static class PriceQuote {
+
+ @XmlElement(name = "service-code", required = true)
+ @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+ protected String serviceCode;
+ @XmlElement(name = "service-link", required = true)
+ protected Link serviceLink;
+ @XmlElement(name = "service-name", required = true)
+ @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+ @XmlSchemaType(name = "normalizedString")
+ protected String serviceName;
+ @XmlElement(name = "price-details", required = true)
+ protected PriceQuotes.PriceQuote.PriceDetails priceDetails;
+ @XmlElement(name = "weight-details", required = true)
+ protected PriceQuotes.PriceQuote.WeightDetails weightDetails;
+ @XmlElement(name = "service-standard", required = true)
+ protected PriceQuotes.PriceQuote.ServiceStandard serviceStandard;
+
+ /**
+ * Gets the value of the serviceCode property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getServiceCode() {
+ return serviceCode;
+ }
+
+ /**
+ * Sets the value of the serviceCode property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setServiceCode(String value) {
+ this.serviceCode = value;
+ }
+
+ /**
+ * Gets the value of the serviceLink property.
+ *
+ * @return
+ * possible object is
+ * {@link Link }
+ *
+ */
+ public Link getServiceLink() {
+ return serviceLink;
+ }
+
+ /**
+ * Sets the value of the serviceLink property.
+ *
+ * @param value
+ * allowed object is
+ * {@link Link }
+ *
+ */
+ public void setServiceLink(Link value) {
+ this.serviceLink = value;
+ }
+
+ /**
+ * Gets the value of the serviceName property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getServiceName() {
+ return serviceName;
+ }
+
+ /**
+ * Sets the value of the serviceName property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setServiceName(String value) {
+ this.serviceName = value;
+ }
+
+ /**
+ * Gets the value of the priceDetails property.
+ *
+ * @return
+ * possible object is
+ * {@link PriceQuotes.PriceQuote.PriceDetails }
+ *
+ */
+ public PriceQuotes.PriceQuote.PriceDetails getPriceDetails() {
+ return priceDetails;
+ }
+
+ /**
+ * Sets the value of the priceDetails property.
+ *
+ * @param value
+ * allowed object is
+ * {@link PriceQuotes.PriceQuote.PriceDetails }
+ *
+ */
+ public void setPriceDetails(PriceQuotes.PriceQuote.PriceDetails value) {
+ this.priceDetails = value;
+ }
+
+ /**
+ * Gets the value of the weightDetails property.
+ *
+ * @return
+ * possible object is
+ * {@link PriceQuotes.PriceQuote.WeightDetails }
+ *
+ */
+ public PriceQuotes.PriceQuote.WeightDetails getWeightDetails() {
+ return weightDetails;
+ }
+
+ /**
+ * Sets the value of the weightDetails property.
+ *
+ * @param value
+ * allowed object is
+ * {@link PriceQuotes.PriceQuote.WeightDetails }
+ *
+ */
+ public void setWeightDetails(PriceQuotes.PriceQuote.WeightDetails value) {
+ this.weightDetails = value;
+ }
+
+ /**
+ * Gets the value of the serviceStandard property.
+ *
+ * @return
+ * possible object is
+ * {@link PriceQuotes.PriceQuote.ServiceStandard }
+ *
+ */
+ public PriceQuotes.PriceQuote.ServiceStandard getServiceStandard() {
+ return serviceStandard;
+ }
+
+ /**
+ * Sets the value of the serviceStandard property.
+ *
+ * @param value
+ * allowed object is
+ * {@link PriceQuotes.PriceQuote.ServiceStandard }
+ *
+ */
+ public void setServiceStandard(PriceQuotes.PriceQuote.ServiceStandard value) {
+ this.serviceStandard = value;
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="base" type="{http://www.w3.org/2001/XMLSchema}decimal"/>
+ * <element name="taxes" minOccurs="0">
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="gst" type="{http://www.canadapost.ca/ws/ship/rate-v3}TaxType" minOccurs="0"/>
+ * <element name="pst" type="{http://www.canadapost.ca/ws/ship/rate-v3}TaxType" minOccurs="0"/>
+ * <element name="hst" type="{http://www.canadapost.ca/ws/ship/rate-v3}TaxType" minOccurs="0"/>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </element>
+ * <element name="due" type="{http://www.w3.org/2001/XMLSchema}decimal"/>
+ * <element name="options" minOccurs="0">
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="option" maxOccurs="20">
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="option-code" type="{http://www.w3.org/2001/XMLSchema}normalizedString"/>
+ * <element name="option-name" type="{http://www.w3.org/2001/XMLSchema}normalizedString"/>
+ * <element name="option-price" type="{http://www.w3.org/2001/XMLSchema}decimal"/>
+ * <element name="qualifier" minOccurs="0">
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="step-size" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
+ * <element name="step-cost" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
+ * <element name="included-amount" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
+ * <element name="max-value" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
+ * <element name="included" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
+ * <element name="percent" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </element>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </element>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </element>
+ * <element name="adjustments" minOccurs="0">
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="adjustment" maxOccurs="20">
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="adjustment-code" type="{http://www.w3.org/2001/XMLSchema}normalizedString"/>
+ * <element name="adjustment-name" type="{http://www.w3.org/2001/XMLSchema}normalizedString"/>
+ * <element name="adjustment-cost" type="{http://www.w3.org/2001/XMLSchema}decimal"/>
+ * <element name="qualifier" minOccurs="0">
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="percent" type="{http://www.w3.org/2001/XMLSchema}decimal"/>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </element>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </element>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </element>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "", propOrder = {
+
+ })
+ public static class PriceDetails {
+
+ @XmlElement(required = true)
+ protected BigDecimal base;
+ protected PriceQuotes.PriceQuote.PriceDetails.Taxes taxes;
+ @XmlElement(required = true)
+ protected BigDecimal due;
+ protected PriceQuotes.PriceQuote.PriceDetails.Options options;
+ protected PriceQuotes.PriceQuote.PriceDetails.Adjustments adjustments;
+
+ /**
+ * Gets the value of the base property.
+ *
+ * @return
+ * possible object is
+ * {@link BigDecimal }
+ *
+ */
+ public BigDecimal getBase() {
+ return base;
+ }
+
+ /**
+ * Sets the value of the base property.
+ *
+ * @param value
+ * allowed object is
+ * {@link BigDecimal }
+ *
+ */
+ public void setBase(BigDecimal value) {
+ this.base = value;
+ }
+
+ /**
+ * Gets the value of the taxes property.
+ *
+ * @return
+ * possible object is
+ * {@link PriceQuotes.PriceQuote.PriceDetails.Taxes }
+ *
+ */
+ public PriceQuotes.PriceQuote.PriceDetails.Taxes getTaxes() {
+ return taxes;
+ }
+
+ /**
+ * Sets the value of the taxes property.
+ *
+ * @param value
+ * allowed object is
+ * {@link PriceQuotes.PriceQuote.PriceDetails.Taxes }
+ *
+ */
+ public void setTaxes(PriceQuotes.PriceQuote.PriceDetails.Taxes value) {
+ this.taxes = value;
+ }
+
+ /**
+ * Gets the value of the due property.
+ *
+ * @return
+ * possible object is
+ * {@link BigDecimal }
+ *
+ */
+ public BigDecimal getDue() {
+ return due;
+ }
+
+ /**
+ * Sets the value of the due property.
+ *
+ * @param value
+ * allowed object is
+ * {@link BigDecimal }
+ *
+ */
+ public void setDue(BigDecimal value) {
+ this.due = value;
+ }
+
+ /**
+ * Gets the value of the options property.
+ *
+ * @return
+ * possible object is
+ * {@link PriceQuotes.PriceQuote.PriceDetails.Options }
+ *
+ */
+ public PriceQuotes.PriceQuote.PriceDetails.Options getOptions() {
+ return options;
+ }
+
+ /**
+ * Sets the value of the options property.
+ *
+ * @param value
+ * allowed object is
+ * {@link PriceQuotes.PriceQuote.PriceDetails.Options }
+ *
+ */
+ public void setOptions(PriceQuotes.PriceQuote.PriceDetails.Options value) {
+ this.options = value;
+ }
+
+ /**
+ * Gets the value of the adjustments property.
+ *
+ * @return
+ * possible object is
+ * {@link PriceQuotes.PriceQuote.PriceDetails.Adjustments }
+ *
+ */
+ public PriceQuotes.PriceQuote.PriceDetails.Adjustments getAdjustments() {
+ return adjustments;
+ }
+
+ /**
+ * Sets the value of the adjustments property.
+ *
+ * @param value
+ * allowed object is
+ * {@link PriceQuotes.PriceQuote.PriceDetails.Adjustments }
+ *
+ */
+ public void setAdjustments(PriceQuotes.PriceQuote.PriceDetails.Adjustments value) {
+ this.adjustments = value;
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="adjustment" maxOccurs="20">
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="adjustment-code" type="{http://www.w3.org/2001/XMLSchema}normalizedString"/>
+ * <element name="adjustment-name" type="{http://www.w3.org/2001/XMLSchema}normalizedString"/>
+ * <element name="adjustment-cost" type="{http://www.w3.org/2001/XMLSchema}decimal"/>
+ * <element name="qualifier" minOccurs="0">
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="percent" type="{http://www.w3.org/2001/XMLSchema}decimal"/>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </element>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </element>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "", propOrder = {
+ "adjustments"
+ })
+ public static class Adjustments {
+
+ @XmlElement(name = "adjustment", required = true)
+ protected List<PriceQuotes.PriceQuote.PriceDetails.Adjustments.Adjustment> adjustments;
+
+ /**
+ * Gets the value of the adjustments property.
+ *
+ * <p>
+ * This accessor method returns a reference to the live list,
+ * not a snapshot. Therefore any modification you make to the
+ * returned list will be present inside the JAXB object.
+ * This is why there is not a <CODE>set</CODE> method for the adjustments property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getAdjustments().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link PriceQuotes.PriceQuote.PriceDetails.Adjustments.Adjustment }
+ *
+ *
+ */
+ public List<PriceQuotes.PriceQuote.PriceDetails.Adjustments.Adjustment> getAdjustments() {
+ if (adjustments == null) {
+ adjustments = new ArrayList<PriceQuotes.PriceQuote.PriceDetails.Adjustments.Adjustment>();
+ }
+ return this.adjustments;
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="adjustment-code" type="{http://www.w3.org/2001/XMLSchema}normalizedString"/>
+ * <element name="adjustment-name" type="{http://www.w3.org/2001/XMLSchema}normalizedString"/>
+ * <element name="adjustment-cost" type="{http://www.w3.org/2001/XMLSchema}decimal"/>
+ * <element name="qualifier" minOccurs="0">
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="percent" type="{http://www.w3.org/2001/XMLSchema}decimal"/>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </element>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "", propOrder = {
+
+ })
+ public static class Adjustment {
+
+ @XmlElement(name = "adjustment-code", required = true)
+ @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+ @XmlSchemaType(name = "normalizedString")
+ protected String adjustmentCode;
+ @XmlElement(name = "adjustment-name", required = true)
+ @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+ @XmlSchemaType(name = "normalizedString")
+ protected String adjustmentName;
+ @XmlElement(name = "adjustment-cost", required = true)
+ protected BigDecimal adjustmentCost;
+ protected PriceQuotes.PriceQuote.PriceDetails.Adjustments.Adjustment.Qualifier qualifier;
+
+ /**
+ * Gets the value of the adjustmentCode property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getAdjustmentCode() {
+ return adjustmentCode;
+ }
+
+ /**
+ * Sets the value of the adjustmentCode property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setAdjustmentCode(String value) {
+ this.adjustmentCode = value;
+ }
+
+ /**
+ * Gets the value of the adjustmentName property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getAdjustmentName() {
+ return adjustmentName;
+ }
+
+ /**
+ * Sets the value of the adjustmentName property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setAdjustmentName(String value) {
+ this.adjustmentName = value;
+ }
+
+ /**
+ * Gets the value of the adjustmentCost property.
+ *
+ * @return
+ * possible object is
+ * {@link BigDecimal }
+ *
+ */
+ public BigDecimal getAdjustmentCost() {
+ return adjustmentCost;
+ }
+
+ /**
+ * Sets the value of the adjustmentCost property.
+ *
+ * @param value
+ * allowed object is
+ * {@link BigDecimal }
+ *
+ */
+ public void setAdjustmentCost(BigDecimal value) {
+ this.adjustmentCost = value;
+ }
+
+ /**
+ * Gets the value of the qualifier property.
+ *
+ * @return
+ * possible object is
+ * {@link PriceQuotes.PriceQuote.PriceDetails.Adjustments.Adjustment.Qualifier }
+ *
+ */
+ public PriceQuotes.PriceQuote.PriceDetails.Adjustments.Adjustment.Qualifier getQualifier() {
+ return qualifier;
+ }
+
+ /**
+ * Sets the value of the qualifier property.
+ *
+ * @param value
+ * allowed object is
+ * {@link PriceQuotes.PriceQuote.PriceDetails.Adjustments.Adjustment.Qualifier }
+ *
+ */
+ public void setQualifier(PriceQuotes.PriceQuote.PriceDetails.Adjustments.Adjustment.Qualifier value) {
+ this.qualifier = value;
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="percent" type="{http://www.w3.org/2001/XMLSchema}decimal"/>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "", propOrder = {
+
+ })
+ public static class Qualifier {
+
+ @XmlElement(required = true)
+ protected BigDecimal percent;
+
+ /**
+ * Gets the value of the percent property.
+ *
+ * @return
+ * possible object is
+ * {@link BigDecimal }
+ *
+ */
+ public BigDecimal getPercent() {
+ return percent;
+ }
+
+ /**
+ * Sets the value of the percent property.
+ *
+ * @param value
+ * allowed object is
+ * {@link BigDecimal }
+ *
+ */
+ public void setPercent(BigDecimal value) {
+ this.percent = value;
+ }
+
+ }
+
+ }
+
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="option" maxOccurs="20">
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="option-code" type="{http://www.w3.org/2001/XMLSchema}normalizedString"/>
+ * <element name="option-name" type="{http://www.w3.org/2001/XMLSchema}normalizedString"/>
+ * <element name="option-price" type="{http://www.w3.org/2001/XMLSchema}decimal"/>
+ * <element name="qualifier" minOccurs="0">
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="step-size" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
+ * <element name="step-cost" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
+ * <element name="included-amount" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
+ * <element name="max-value" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
+ * <element name="included" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
+ * <element name="percent" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </element>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </element>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "", propOrder = {
+ "options"
+ })
+ public static class Options {
+
+ @XmlElement(name = "option", required = true)
+ protected List<PriceQuotes.PriceQuote.PriceDetails.Options.Option> options;
+
+ /**
+ * Gets the value of the options property.
+ *
+ * <p>
+ * This accessor method returns a reference to the live list,
+ * not a snapshot. Therefore any modification you make to the
+ * returned list will be present inside the JAXB object.
+ * This is why there is not a <CODE>set</CODE> method for the options property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getOptions().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link PriceQuotes.PriceQuote.PriceDetails.Options.Option }
+ *
+ *
+ */
+ public List<PriceQuotes.PriceQuote.PriceDetails.Options.Option> getOptions() {
+ if (options == null) {
+ options = new ArrayList<PriceQuotes.PriceQuote.PriceDetails.Options.Option>();
+ }
+ return this.options;
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="option-code" type="{http://www.w3.org/2001/XMLSchema}normalizedString"/>
+ * <element name="option-name" type="{http://www.w3.org/2001/XMLSchema}normalizedString"/>
+ * <element name="option-price" type="{http://www.w3.org/2001/XMLSchema}decimal"/>
+ * <element name="qualifier" minOccurs="0">
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="step-size" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
+ * <element name="step-cost" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
+ * <element name="included-amount" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
+ * <element name="max-value" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
+ * <element name="included" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
+ * <element name="percent" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </element>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "", propOrder = {
+
+ })
+ public static class Option {
+
+ @XmlElement(name = "option-code", required = true)
+ @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+ @XmlSchemaType(name = "normalizedString")
+ protected String optionCode;
+ @XmlElement(name = "option-name", required = true)
+ @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+ @XmlSchemaType(name = "normalizedString")
+ protected String optionName;
+ @XmlElement(name = "option-price", required = true)
+ protected BigDecimal optionPrice;
+ protected PriceQuotes.PriceQuote.PriceDetails.Options.Option.Qualifier qualifier;
+
+ /**
+ * Gets the value of the optionCode property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getOptionCode() {
+ return optionCode;
+ }
+
+ /**
+ * Sets the value of the optionCode property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setOptionCode(String value) {
+ this.optionCode = value;
+ }
+
+ /**
+ * Gets the value of the optionName property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getOptionName() {
+ return optionName;
+ }
+
+ /**
+ * Sets the value of the optionName property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setOptionName(String value) {
+ this.optionName = value;
+ }
+
+ /**
+ * Gets the value of the optionPrice property.
+ *
+ * @return
+ * possible object is
+ * {@link BigDecimal }
+ *
+ */
+ public BigDecimal getOptionPrice() {
+ return optionPrice;
+ }
+
+ /**
+ * Sets the value of the optionPrice property.
+ *
+ * @param value
+ * allowed object is
+ * {@link BigDecimal }
+ *
+ */
+ public void setOptionPrice(BigDecimal value) {
+ this.optionPrice = value;
+ }
+
+ /**
+ * Gets the value of the qualifier property.
+ *
+ * @return
+ * possible object is
+ * {@link PriceQuotes.PriceQuote.PriceDetails.Options.Option.Qualifier }
+ *
+ */
+ public PriceQuotes.PriceQuote.PriceDetails.Options.Option.Qualifier getQualifier() {
+ return qualifier;
+ }
+
+ /**
+ * Sets the value of the qualifier property.
+ *
+ * @param value
+ * allowed object is
+ * {@link PriceQuotes.PriceQuote.PriceDetails.Options.Option.Qualifier }
+ *
+ */
+ public void setQualifier(PriceQuotes.PriceQuote.PriceDetails.Options.Option.Qualifier value) {
+ this.qualifier = value;
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="step-size" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
+ * <element name="step-cost" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
+ * <element name="included-amount" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
+ * <element name="max-value" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
+ * <element name="included" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
+ * <element name="percent" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "", propOrder = {
+
+ })
+ public static class Qualifier {
+
+ @XmlElement(name = "step-size")
+ protected BigDecimal stepSize;
+ @XmlElement(name = "step-cost")
+ protected BigDecimal stepCost;
+ @XmlElement(name = "included-amount")
+ protected BigDecimal includedAmount;
+ @XmlElement(name = "max-value")
+ protected BigDecimal maxValue;
+ protected Boolean included;
+ protected BigDecimal percent;
+
+ /**
+ * Gets the value of the stepSize property.
+ *
+ * @return
+ * possible object is
+ * {@link BigDecimal }
+ *
+ */
+ public BigDecimal getStepSize() {
+ return stepSize;
+ }
+
+ /**
+ * Sets the value of the stepSize property.
+ *
+ * @param value
+ * allowed object is
+ * {@link BigDecimal }
+ *
+ */
+ public void setStepSize(BigDecimal value) {
+ this.stepSize = value;
+ }
+
+ /**
+ * Gets the value of the stepCost property.
+ *
+ * @return
+ * possible object is
+ * {@link BigDecimal }
+ *
+ */
+ public BigDecimal getStepCost() {
+ return stepCost;
+ }
+
+ /**
+ * Sets the value of the stepCost property.
+ *
+ * @param value
+ * allowed object is
+ * {@link BigDecimal }
+ *
+ */
+ public void setStepCost(BigDecimal value) {
+ this.stepCost = value;
+ }
+
+ /**
+ * Gets the value of the includedAmount property.
+ *
+ * @return
+ * possible object is
+ * {@link BigDecimal }
+ *
+ */
+ public BigDecimal getIncludedAmount() {
+ return includedAmount;
+ }
+
+ /**
+ * Sets the value of the includedAmount property.
+ *
+ * @param value
+ * allowed object is
+ * {@link BigDecimal }
+ *
+ */
+ public void setIncludedAmount(BigDecimal value) {
+ this.includedAmount = value;
+ }
+
+ /**
+ * Gets the value of the maxValue property.
+ *
+ * @return
+ * possible object is
+ * {@link BigDecimal }
+ *
+ */
+ public BigDecimal getMaxValue() {
+ return maxValue;
+ }
+
+ /**
+ * Sets the value of the maxValue property.
+ *
+ * @param value
+ * allowed object is
+ * {@link BigDecimal }
+ *
+ */
+ public void setMaxValue(BigDecimal value) {
+ this.maxValue = value;
+ }
+
+ /**
+ * Gets the value of the included property.
+ *
+ * @return
+ * possible object is
+ * {@link Boolean }
+ *
+ */
+ public Boolean isIncluded() {
+ return included;
+ }
+
+ /**
+ * Sets the value of the included property.
+ *
+ * @param value
+ * allowed object is
+ * {@link Boolean }
+ *
+ */
+ public void setIncluded(Boolean value) {
+ this.included = value;
+ }
+
+ /**
+ * Gets the value of the percent property.
+ *
+ * @return
+ * possible object is
+ * {@link BigDecimal }
+ *
+ */
+ public BigDecimal getPercent() {
+ return percent;
+ }
+
+ /**
+ * Sets the value of the percent property.
+ *
+ * @param value
+ * allowed object is
+ * {@link BigDecimal }
+ *
+ */
+ public void setPercent(BigDecimal value) {
+ this.percent = value;
+ }
+
+ }
+
+ }
+
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="gst" type="{http://www.canadapost.ca/ws/ship/rate-v3}TaxType" minOccurs="0"/>
+ * <element name="pst" type="{http://www.canadapost.ca/ws/ship/rate-v3}TaxType" minOccurs="0"/>
+ * <element name="hst" type="{http://www.canadapost.ca/ws/ship/rate-v3}TaxType" minOccurs="0"/>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "", propOrder = {
+
+ })
+ public static class Taxes {
+
+ protected TaxType gst;
+ protected TaxType pst;
+ protected TaxType hst;
+
+ /**
+ * Gets the value of the gst property.
+ *
+ * @return
+ * possible object is
+ * {@link TaxType }
+ *
+ */
+ public TaxType getGst() {
+ return gst;
+ }
+
+ /**
+ * Sets the value of the gst property.
+ *
+ * @param value
+ * allowed object is
+ * {@link TaxType }
+ *
+ */
+ public void setGst(TaxType value) {
+ this.gst = value;
+ }
+
+ /**
+ * Gets the value of the pst property.
+ *
+ * @return
+ * possible object is
+ * {@link TaxType }
+ *
+ */
+ public TaxType getPst() {
+ return pst;
+ }
+
+ /**
+ * Sets the value of the pst property.
+ *
+ * @param value
+ * allowed object is
+ * {@link TaxType }
+ *
+ */
+ public void setPst(TaxType value) {
+ this.pst = value;
+ }
+
+ /**
+ * Gets the value of the hst property.
+ *
+ * @return
+ * possible object is
+ * {@link TaxType }
+ *
+ */
+ public TaxType getHst() {
+ return hst;
+ }
+
+ /**
+ * Sets the value of the hst property.
+ *
+ * @param value
+ * allowed object is
+ * {@link TaxType }
+ *
+ */
+ public void setHst(TaxType value) {
+ this.hst = value;
+ }
+
+ }
+
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="am-delivery" type="{http://www.w3.org/2001/XMLSchema}boolean"/>
+ * <element name="guaranteed-delivery" type="{http://www.w3.org/2001/XMLSchema}boolean"/>
+ * <element name="expected-transit-time" type="{http://www.w3.org/2001/XMLSchema}positiveInteger" minOccurs="0"/>
+ * <element name="expected-delivery-date" type="{http://www.w3.org/2001/XMLSchema}date" minOccurs="0"/>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "", propOrder = {
+
+ })
+ public static class ServiceStandard {
+
+ @XmlElement(name = "am-delivery")
+ protected boolean amDelivery;
+ @XmlElement(name = "guaranteed-delivery")
+ protected boolean guaranteedDelivery;
+ @XmlElement(name = "expected-transit-time")
+ @XmlSchemaType(name = "positiveInteger")
+ protected BigInteger expectedTransitTime;
+ @XmlElement(name = "expected-delivery-date")
+ @XmlSchemaType(name = "date")
+ protected XMLGregorianCalendar expectedDeliveryDate;
+
+ /**
+ * Gets the value of the amDelivery property.
+ *
+ */
+ public boolean isAmDelivery() {
+ return amDelivery;
+ }
+
+ /**
+ * Sets the value of the amDelivery property.
+ *
+ */
+ public void setAmDelivery(boolean value) {
+ this.amDelivery = value;
+ }
+
+ /**
+ * Gets the value of the guaranteedDelivery property.
+ *
+ */
+ public boolean isGuaranteedDelivery() {
+ return guaranteedDelivery;
+ }
+
+ /**
+ * Sets the value of the guaranteedDelivery property.
+ *
+ */
+ public void setGuaranteedDelivery(boolean value) {
+ this.guaranteedDelivery = value;
+ }
+
+ /**
+ * Gets the value of the expectedTransitTime property.
+ *
+ * @return
+ * possible object is
+ * {@link BigInteger }
+ *
+ */
+ public BigInteger getExpectedTransitTime() {
+ return expectedTransitTime;
+ }
+
+ /**
+ * Sets the value of the expectedTransitTime property.
+ *
+ * @param value
+ * allowed object is
+ * {@link BigInteger }
+ *
+ */
+ public void setExpectedTransitTime(BigInteger value) {
+ this.expectedTransitTime = value;
+ }
+
+ /**
+ * Gets the value of the expectedDeliveryDate property.
+ *
+ * @return
+ * possible object is
+ * {@link XMLGregorianCalendar }
+ *
+ */
+ public XMLGregorianCalendar getExpectedDeliveryDate() {
+ return expectedDeliveryDate;
+ }
+
+ /**
+ * Sets the value of the expectedDeliveryDate property.
+ *
+ * @param value
+ * allowed object is
+ * {@link XMLGregorianCalendar }
+ *
+ */
+ public void setExpectedDeliveryDate(XMLGregorianCalendar value) {
+ this.expectedDeliveryDate = value;
+ }
+
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType>
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <all>
+ * <element name="cubed-weight" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
+ * </all>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "", propOrder = {
+
+ })
+ public static class WeightDetails {
+
+ @XmlElement(name = "cubed-weight")
+ protected BigDecimal cubedWeight;
+
+ /**
+ * Gets the value of the cubedWeight property.
+ *
+ * @return
+ * possible object is
+ * {@link BigDecimal }
+ *
+ */
+ public BigDecimal getCubedWeight() {
+ return cubedWeight;
+ }
+
+ /**
+ * Sets the value of the cubedWeight property.
+ *
+ * @param value
+ * allowed object is
+ * {@link BigDecimal }
+ *
+ */
+ public void setCubedWeight(BigDecimal value) {
+ this.cubedWeight = value;
+ }
+
+ }
+
+ }
+
+}
diff --git a/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/rating/TaxType.java b/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/rating/TaxType.java
new file mode 100644
index 0000000..049dfca
--- /dev/null
+++ b/shopizer-canadapost/src/main/java/ca/canadapost/cpcdp/rating/generated/rating/TaxType.java
@@ -0,0 +1,95 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.03.13 at 11:05:37 AM EDT
+//
+
+
+package ca.canadapost.cpcdp.rating.generated.rating;
+
+import java.math.BigDecimal;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+
+
+/**
+ * <p>Java class for TaxType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="TaxType">
+ * <simpleContent>
+ * <extension base="<http://www.w3.org/2001/XMLSchema>decimal">
+ * <attribute name="percent" type="{http://www.w3.org/2001/XMLSchema}decimal" />
+ * </extension>
+ * </simpleContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "TaxType", propOrder = {
+ "value"
+})
+public class TaxType {
+
+ @XmlValue
+ protected BigDecimal value;
+ @XmlAttribute(name = "percent")
+ protected BigDecimal percent;
+
+ /**
+ * Gets the value of the value property.
+ *
+ * @return
+ * possible object is
+ * {@link BigDecimal }
+ *
+ */
+ public BigDecimal getValue() {
+ return value;
+ }
+
+ /**
+ * Sets the value of the value property.
+ *
+ * @param value
+ * allowed object is
+ * {@link BigDecimal }
+ *
+ */
+ public void setValue(BigDecimal value) {
+ this.value = value;
+ }
+
+ /**
+ * Gets the value of the percent property.
+ *
+ * @return
+ * possible object is
+ * {@link BigDecimal }
+ *
+ */
+ public BigDecimal getPercent() {
+ return percent;
+ }
+
+ /**
+ * Sets the value of the percent property.
+ *
+ * @param value
+ * allowed object is
+ * {@link BigDecimal }
+ *
+ */
+ public void setPercent(BigDecimal value) {
+ this.percent = value;
+ }
+
+}
diff --git a/shopizer-canadapost/src/main/java/com/shopizer/modules/shipping/canadapost/CanadaPostQuoteModule.java b/shopizer-canadapost/src/main/java/com/shopizer/modules/shipping/canadapost/CanadaPostQuoteModule.java
new file mode 100644
index 0000000..4c19564
--- /dev/null
+++ b/shopizer-canadapost/src/main/java/com/shopizer/modules/shipping/canadapost/CanadaPostQuoteModule.java
@@ -0,0 +1,361 @@
+package com.shopizer.modules.shipping.canadapost;
+
+import java.io.InputStream;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+
+import javax.xml.bind.JAXBContext;
+
+import org.apache.commons.lang.Validate;
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import ca.canadapost.cpcdp.rating.generated.messages.Messages;
+import ca.canadapost.cpcdp.rating.generated.rating.MailingScenario;
+import ca.canadapost.cpcdp.rating.generated.rating.MailingScenario.Destination;
+import ca.canadapost.cpcdp.rating.generated.rating.MailingScenario.Destination.Domestic;
+import ca.canadapost.cpcdp.rating.generated.rating.MailingScenario.Destination.International;
+import ca.canadapost.cpcdp.rating.generated.rating.MailingScenario.Destination.UnitedStates;
+import ca.canadapost.cpcdp.rating.generated.rating.MailingScenario.Services;
+import ca.canadapost.cpcdp.rating.generated.rating.PriceQuotes;
+
+import com.salesmanager.core.model.common.Delivery;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.reference.country.Country;
+import com.salesmanager.core.model.shipping.PackageDetails;
+import com.salesmanager.core.model.shipping.ShippingConfiguration;
+import com.salesmanager.core.model.shipping.ShippingOption;
+import com.salesmanager.core.model.shipping.ShippingOrigin;
+import com.salesmanager.core.model.shipping.ShippingQuote;
+import com.salesmanager.core.model.system.CustomIntegrationConfiguration;
+import com.salesmanager.core.model.system.IntegrationConfiguration;
+import com.salesmanager.core.model.system.IntegrationModule;
+import com.salesmanager.core.model.system.ModuleConfig;
+import com.salesmanager.core.modules.integration.IntegrationException;
+import com.salesmanager.core.modules.integration.shipping.model.ShippingQuoteModule;
+import com.sun.jersey.api.client.Client;
+import com.sun.jersey.api.client.ClientResponse;
+import com.sun.jersey.api.client.WebResource;
+import com.sun.jersey.api.client.config.ClientConfig;
+import com.sun.jersey.api.client.config.DefaultClientConfig;
+
+/**
+ * Shipping Module for Canada Post GetRates service
+ * https://www.canadapost.ca/cpo/mc/business/productsservices/developers/services/rating/default.jsf
+ * @author carlsamson
+ *
+ */
+public class CanadaPostQuoteModule implements ShippingQuoteModule {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(CanadaPostQuoteModule.class);
+
+ private final static String CANADA_CODE = "CA";
+ private final static String US_CODE = "US";
+
+ //dev "https://ct.soa-gw.canadapost.ca/rs/ship/price";
+ //prod "https://soa-gw.canadapost.ca/rs/ship/price";
+
+ @Override
+ public void validateModuleConfiguration(
+ IntegrationConfiguration integrationConfiguration,
+ MerchantStore store) throws IntegrationException {
+
+ List<String> errorFields = null;
+
+ Map<String,String> keys = integrationConfiguration.getIntegrationKeys();
+
+ if(keys==null) {
+ IntegrationException ex = new IntegrationException(IntegrationException.ERROR_VALIDATION_SAVE);
+ ex.setErrorFields(errorFields);
+ throw ex;
+ }
+
+
+ if(StringUtils.isBlank(keys.get("username"))) {
+ errorFields = new ArrayList<String>();
+ errorFields.add("username");
+ }
+
+ if(StringUtils.isBlank(keys.get("password"))) {
+ errorFields = new ArrayList<String>();
+ errorFields.add("password");
+ }
+
+ if(StringUtils.isBlank(keys.get("account"))) {
+ errorFields = new ArrayList<String>();
+ errorFields.add("account");
+ }
+
+ if(StringUtils.isBlank(keys.get("apikey"))) {
+ errorFields = new ArrayList<String>();
+ errorFields.add("apikey");
+ }
+
+ if(errorFields!=null) {
+ IntegrationException ex = new IntegrationException(IntegrationException.ERROR_VALIDATION_SAVE);
+ ex.setErrorFields(errorFields);
+ throw ex;
+
+ }
+
+
+ }
+
+ @Override
+ public CustomIntegrationConfiguration getCustomModuleConfiguration(
+ MerchantStore store) throws IntegrationException {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @SuppressWarnings("deprecation")
+ @Override
+ public List<ShippingOption> getShippingQuotes(ShippingQuote quote,
+ List<PackageDetails> packages, BigDecimal orderTotal,
+ Delivery delivery, ShippingOrigin origin, MerchantStore store,
+ IntegrationConfiguration configuration, IntegrationModule module,
+ ShippingConfiguration shippingConfiguration, Locale locale)
+ throws IntegrationException {
+
+
+ Validate.notNull(shippingConfiguration, "Module Canadapost is not configured");
+ Validate.notNull(packages, "Packages are null");
+ Validate.notNull(delivery, "Delivery is null");
+ Validate.notNull(origin, "Origin is null");
+ Validate.notNull(origin.getPostalCode(), "Origin postal code is null");
+
+ if(StringUtils.isBlank(delivery.getPostalCode())) {
+ return null;
+ }
+
+ // only applies to Canada and US
+ Country country = delivery.getCountry();
+
+ if(!(country.getIsoCode().equals("US") || country.getIsoCode().equals("CA"))) {
+ throw new IntegrationException("Canadapost Not configured for shipping in country " + country.getIsoCode());
+ }
+
+ Map<String,String> keys = configuration.getIntegrationKeys();
+ Map<String,List<String>> options = configuration.getIntegrationOptions();
+
+ if(keys==null) {
+ throw new IntegrationException("Canadapost missing configuration keys");
+ }
+
+ if(options==null) {
+ throw new IntegrationException("Canadapost missing configuration options");
+ }
+
+ if(StringUtils.isBlank(keys.get("username"))) {
+ throw new IntegrationException("Canadapost missing configuration key username");
+ }
+
+ if(StringUtils.isBlank(keys.get("password"))) {
+ throw new IntegrationException("Canadapost missing configuration key password");
+ }
+
+ if(StringUtils.isBlank(keys.get("account"))) {
+ throw new IntegrationException("Canadapost missing configuration key account");
+ }
+
+ String username = keys.get("username");
+ String password = keys.get("password");
+ String client = keys.get("account");
+
+ List<String> domesticServices = options.get("services-domestic");
+ List<String> intlServices = options.get("services-intl");
+ List<String> usaServices = options.get("services-usa");
+
+ String host = null;
+ String protocol = null;
+ String port = null;
+ String url = null;
+
+
+ //against which environment are we using the service
+ String env = configuration.getEnvironment();
+
+
+ Map<String, ModuleConfig> moduleConfigsMap = module.getModuleConfigs();
+ for(String key : moduleConfigsMap.keySet()) {
+
+ ModuleConfig moduleConfig = (ModuleConfig)moduleConfigsMap.get(key);
+ if(moduleConfig.getEnv().equals(env)) {
+ host = moduleConfig.getHost();
+ protocol = moduleConfig.getScheme();
+ port = moduleConfig.getPort();
+ url = moduleConfig.getUri();
+ break;
+ }
+ }
+
+ StringBuilder link = new StringBuilder().append(protocol).append("://").append(host).append(":").append(port);
+ if(!StringUtils.isBlank(url)) {
+ link.append(url);
+ }
+
+
+ Client serviceClient = null;
+
+ ClientConfig config = new DefaultClientConfig();
+ serviceClient = Client.create(config);
+ serviceClient.addFilter(new com.sun.jersey.api.client.filter.HTTPBasicAuthFilter(username, password));
+
+
+ MailingScenario mailingScenario = new MailingScenario();
+ //mailingScenario.setCustomerNumber(client);
+ mailingScenario.setQuoteType("counter");
+
+ mailingScenario.setOriginPostalCode(origin.getPostalCode().replaceAll("\\s+","").toUpperCase());
+ Destination destination = new Destination();
+
+ if(delivery.getCountry().getIsoCode().equals(CANADA_CODE)) {
+
+ if(domesticServices==null || domesticServices.size()==0) {
+ throw new IntegrationException("Canadapost selected domestic services are missing");
+ }
+
+ Domestic domestic = new Domestic();
+ domestic.setPostalCode(delivery.getPostalCode().replaceAll("\\s+","").toUpperCase());
+ destination.setDomestic(domestic);
+
+ Services service = new Services();
+ for(String domesticService : domesticServices) {
+ service.getServiceCodes().add(domesticService);
+ }
+
+ mailingScenario.setServices(service);
+
+ } else if(delivery.getCountry().getIsoCode().equals(US_CODE)) {
+
+ if(usaServices==null || usaServices.size()==0) {
+ throw new IntegrationException("Canadapost selected USA services are missing");
+ }
+
+
+ UnitedStates unitedStates = new UnitedStates();
+ unitedStates.setZipCode(delivery.getPostalCode().trim());
+ destination.setUnitedStates(unitedStates);
+
+ Services service = new Services();
+ for(String usaService : usaServices) {
+ service.getServiceCodes().add(usaService);
+ }
+
+ mailingScenario.setServices(service);
+
+
+ } else {
+
+ if(intlServices==null || intlServices.size()==0) {
+ throw new IntegrationException("Canadapost selected International services are missing");
+ }
+
+ International international = new International();
+ international.setCountryCode(delivery.getCountry().getIsoCode());
+ destination.setInternational(international);
+
+ Services service = new Services();
+ for(String intlService : intlServices) {
+ service.getServiceCodes().add(intlService);
+ }
+
+ mailingScenario.setServices(service);
+ }
+
+ mailingScenario.setDestination(destination);
+
+
+ Map<String,ShippingOption> allOptions = new HashMap<String,ShippingOption>();
+
+ // Execute GetRates Request for each package
+ for(PackageDetails packageDetail : packages) {
+
+
+ MailingScenario.ParcelCharacteristics parcelCharacteristics = new MailingScenario.ParcelCharacteristics();
+ parcelCharacteristics.setWeight(new BigDecimal(packageDetail.getShippingWeight()));
+ MailingScenario.ParcelCharacteristics.Dimensions dimensions = new MailingScenario.ParcelCharacteristics.Dimensions();
+
+ dimensions.setHeight(new BigDecimal(packageDetail.getShippingHeight()));
+ dimensions.setWidth(new BigDecimal(packageDetail.getShippingWidth()));
+ dimensions.setLength(new BigDecimal(packageDetail.getShippingLength()));
+
+ parcelCharacteristics.setDimensions(dimensions);
+ mailingScenario.setParcelCharacteristics(parcelCharacteristics);
+
+
+ WebResource webResource = serviceClient.resource(link.toString());
+ ClientResponse resp = webResource.accept("application/vnd.cpc.ship.rate-v3+xml").header("Content-Type", "application/vnd.cpc.ship.rate-v3+xml").acceptLanguage("en-CA").post(ClientResponse.class, mailingScenario);
+
+
+
+ InputStream respIS = resp.getEntityInputStream();
+
+ LOGGER.debug("HTTP Response Status: " + resp.getStatus() + " " + resp.getClientResponseStatus());
+
+ // Example of using JAXB to parse xml response
+ JAXBContext jc;
+ try {
+ jc = JAXBContext.newInstance(PriceQuotes.class, Messages.class);
+ Object entity = jc.createUnmarshaller().unmarshal(respIS);
+ // Determine whether response data matches GetRatesInfo schema.
+ if (entity instanceof PriceQuotes) {
+ PriceQuotes priceQuotes = (PriceQuotes) entity;
+ for (Iterator<PriceQuotes.PriceQuote> iter = priceQuotes.getPriceQuotes().iterator(); iter.hasNext();) {
+ PriceQuotes.PriceQuote aPriceQuote = (PriceQuotes.PriceQuote) iter.next();
+ ShippingOption option = allOptions.get(aPriceQuote.getServiceCode());
+ if(option==null) {
+ option = new ShippingOption();
+ option.setOptionCode(aPriceQuote.getServiceCode());
+ option.setOptionPrice(aPriceQuote.getPriceDetails().getDue());
+ option.setOptionName(aPriceQuote.getServiceName());
+ allOptions.put(aPriceQuote.getServiceCode(), option);
+ } else {
+ BigDecimal due = option.getOptionPrice().add(aPriceQuote.getPriceDetails().getDue());
+ option.setOptionPrice(due);
+ }
+
+ LOGGER.debug("Service Name: " + aPriceQuote.getServiceName());
+ LOGGER.debug("Price: $" + aPriceQuote.getPriceDetails().getDue());
+
+ }
+ } else {
+ // Assume Error Schema
+ Messages messageData = (Messages) entity;
+ StringBuilder messageBuilder = new StringBuilder();
+ for (Iterator<Messages.Message> iter = messageData.getMessage().iterator(); iter.hasNext();) {
+ Messages.Message aMessage = (Messages.Message) iter.next();
+ LOGGER.debug("Error Code: " + aMessage.getCode());
+ LOGGER.debug("Error Msg: " + aMessage.getDescription());
+ messageBuilder.append(aMessage.getCode()).append(" - ");
+ messageBuilder.append(aMessage.getDescription()).append(" ");
+ }
+
+ IntegrationException ex = new IntegrationException(messageBuilder.toString());
+ ex.setErrorCode(IntegrationException.TRANSACTION_EXCEPTION);
+ throw ex;
+ }
+ } catch (Exception e) {
+ IntegrationException ex = new IntegrationException(e);
+ ex.setErrorCode(IntegrationException.TRANSACTION_EXCEPTION);
+ throw ex;
+ }
+
+ serviceClient.destroy();
+
+ }
+
+ List<ShippingOption> shippingOptions = new ArrayList<ShippingOption>(allOptions.values());
+ return shippingOptions;
+ }
+
+
+
+
+}
diff --git a/shopizer-canadapost/src/test/java/com/shopizer/modules/shipping/canadapost/test/ShippingCanadaPostTestCase.java b/shopizer-canadapost/src/test/java/com/shopizer/modules/shipping/canadapost/test/ShippingCanadaPostTestCase.java
new file mode 100644
index 0000000..23245f4
--- /dev/null
+++ b/shopizer-canadapost/src/test/java/com/shopizer/modules/shipping/canadapost/test/ShippingCanadaPostTestCase.java
@@ -0,0 +1,186 @@
+package com.shopizer.modules.shipping.canadapost.test;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.Properties;
+
+import javax.inject.Inject;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.TestExecutionListeners;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import org.springframework.test.context.support.DependencyInjectionTestExecutionListener;
+
+import com.salesmanager.core.model.common.Delivery;
+import com.salesmanager.core.model.reference.country.Country;
+import com.salesmanager.core.model.reference.zone.Zone;
+import com.salesmanager.core.model.shipping.PackageDetails;
+import com.salesmanager.core.model.shipping.ShippingConfiguration;
+import com.salesmanager.core.model.shipping.ShippingOption;
+import com.salesmanager.core.model.shipping.ShippingOrigin;
+import com.salesmanager.core.model.shipping.ShippingQuote;
+import com.salesmanager.core.model.system.IntegrationConfiguration;
+import com.salesmanager.core.model.system.IntegrationModule;
+import com.salesmanager.core.model.system.ModuleConfig;
+import com.shopizer.modules.shipping.canadapost.CanadaPostQuoteModule;
+
+import junit.framework.Assert;
+
+
+/**
+ * Create a developer account on canada post web site
+ * generate your API developer's key
+ * https://www.canadapost.ca/cpo/mc/business/productsservices/developers/services/rating/default.jsf
+ * @author carlsamson
+ *
+ */
+@ContextConfiguration(locations = {
+ "classpath:spring/spring-context-test.xml"
+})
+@RunWith(SpringJUnit4ClassRunner.class)
+@TestExecutionListeners({
+ DependencyInjectionTestExecutionListener.class
+})
+public class ShippingCanadaPostTestCase {
+
+ @Inject
+ CanadaPostQuoteModule canadapost;
+
+ @Inject
+ @Qualifier("canadapost-properties")
+ private Properties userProps;
+
+ @Test
+ public void getCanadaPostShippingQuote() throws Exception {
+
+
+ String username = userProps.getProperty("username");
+ String password = userProps.getProperty("password");
+ String mailedBy = userProps.getProperty("mailBy");
+
+ ShippingQuote quote = new ShippingQuote();
+ PackageDetails pDetail = new PackageDetails();
+ pDetail.setShippingHeight(10);
+ pDetail.setShippingLength(10);
+ pDetail.setShippingWeight(10);
+ pDetail.setShippingWidth(10);
+ List<PackageDetails> details = new ArrayList<PackageDetails>();
+ details.add(pDetail);
+
+ Delivery delivery = new Delivery();
+ delivery.setAddress("358 Du Languedoc");
+ delivery.setCity("Boucherville");
+ delivery.setPostalCode("J4B 8J9");
+
+ Country country = new Country();
+ country.setIsoCode("CA");
+ country.setName("Canada");
+ delivery.setCountry(country);
+
+ Zone zone = new Zone();
+ zone.setCode("QC");
+ zone.setName("Quebec");
+
+ delivery.setZone(zone);
+
+ ShippingOrigin origin = new ShippingOrigin();
+ origin.setAddress("7070, avenue Henri-Julien");
+ origin.setCity("Montreal");
+ origin.setPostalCode("H2S 3S3");
+ origin.setZone(zone);
+ origin.setCountry(country);
+
+ IntegrationModule module = new IntegrationModule();
+ ModuleConfig moduleConfigTest = new ModuleConfig();
+ moduleConfigTest.setEnv("TEST");
+ moduleConfigTest.setScheme("https");
+ moduleConfigTest.setHost("ct.soa-gw.canadapost.ca");
+ moduleConfigTest.setPort("443");
+ moduleConfigTest.setUri("/rs/ship/price");
+
+ ModuleConfig moduleConfigProd = new ModuleConfig();
+ moduleConfigProd.setEnv("PROD");
+ moduleConfigProd.setScheme("https");
+ moduleConfigProd.setHost("soa-gw.canadapost.ca");
+ moduleConfigProd.setPort("443");
+ moduleConfigProd.setUri("/rs/ship/price");
+
+ Map<String,ModuleConfig> moduleConfigs = new HashMap<String,ModuleConfig>();
+ moduleConfigs.put("TEST", moduleConfigTest);
+ moduleConfigs.put("PROD", moduleConfigProd);
+
+ module.setModuleConfigs(moduleConfigs);
+
+ module.setCode("canadapost");
+ module.setModuleConfigs(moduleConfigs);
+
+ IntegrationConfiguration configuration = new IntegrationConfiguration();
+ configuration.setActive(true);
+ configuration.setEnvironment("TEST");
+
+ Map<String,String> integrationKeys= new HashMap<String,String>();
+ integrationKeys.put("username", username);
+ integrationKeys.put("password", password);
+ integrationKeys.put("client", mailedBy);
+
+ configuration.setIntegrationKeys(integrationKeys);
+
+ Map<String,List<String>> integrationOptions= new HashMap<String,List<String>>();
+
+
+ /**
+ * DOM.RP Regular Parcel
+ DOM.EP Expedited Parcel
+ DOM.XP Xpresspost
+ DOM.XP.CERT Xpresspost Certified
+ DOM.PC Priority
+ DOM.DT Delivered Tonight
+ DOM.LIB Library Books
+ USA.EP Expedited Parcel USA
+ USA.PW.ENV Priority Worldwide Envelope USA
+ USA.PW.PAK Priority Worldwide pak USA
+ USA.PW.PARCEL Priority Worldwide Parcel USA
+ USA.SP.AIR Small Packet USA Air
+ USA.TP Tracked Packet – USA
+ USA.TP.LVM Tracked Packet – USA (LVM)
+ (large volume mailers)
+ USA.XP Xpresspost USA
+ INT.XP Xpresspost International
+ INT.IP.AIR International Parcel Air
+ INT.IP.SURF International Parcel Surface
+ INT.PW.ENV Priority Worldwide Envelope Int’l
+ INT.PW.PAK Priority Worldwide pak Int’l
+ INT.PW.PARCEL Priority Worldwide parcel Int’l
+ INT.SP.AIR Small Packet International Air
+ INT.SP.SURF Small Packet International Surface
+ INT.TP Tracked Packet – International
+ */
+
+ List<String> domestic = new ArrayList<String>();
+ domestic.add("DOM.RP");
+ integrationOptions.put("services-domestic", domestic);
+ configuration.setIntegrationOptions(integrationOptions);
+
+ ShippingConfiguration shippingConfiguration = new ShippingConfiguration();
+
+ List<ShippingOption> options = canadapost.getShippingQuotes(quote, details, null, delivery, origin, null, configuration, module, shippingConfiguration, Locale.CANADA);
+
+ Assert.assertNotNull("Options should not be empty", options);
+
+ for(ShippingOption opt : options) {
+ System.out.println(opt.getOptionCode() + " " + opt.getOptionPrice().doubleValue());
+ }
+
+ System.out.println("Done ...");
+
+ }
+
+
+
+}
diff --git a/shopizer-canadapost/src/test/resources/.svn/all-wcprops b/shopizer-canadapost/src/test/resources/.svn/all-wcprops
new file mode 100644
index 0000000..0367388
--- /dev/null
+++ b/shopizer-canadapost/src/test/resources/.svn/all-wcprops
@@ -0,0 +1,5 @@
+K 25
+svn:wc:ra_dav:version-url
+V 54
+/!svn/ver/567/branches/v2/sm-search/src/test/resources
+END
diff --git a/shopizer-canadapost/src/test/resources/.svn/entries b/shopizer-canadapost/src/test/resources/.svn/entries
new file mode 100644
index 0000000..a930aeb
--- /dev/null
+++ b/shopizer-canadapost/src/test/resources/.svn/entries
@@ -0,0 +1,31 @@
+10
+
+dir
+567
+http://svn.shopizer.com/branches/v2/sm-search/src/test/resources
+http://svn.shopizer.com
+
+
+
+2013-12-17T22:28:54.444873Z
+567
+carl777
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+e1ff5de0-4b61-491c-91a6-c2558b0baace
+
+spring
+dir
+
diff --git a/shopizer-canadapost/src/test/resources/spring/.svn/all-wcprops b/shopizer-canadapost/src/test/resources/spring/.svn/all-wcprops
new file mode 100644
index 0000000..45a2431
--- /dev/null
+++ b/shopizer-canadapost/src/test/resources/spring/.svn/all-wcprops
@@ -0,0 +1,41 @@
+K 25
+svn:wc:ra_dav:version-url
+V 61
+/!svn/ver/567/branches/v2/sm-search/src/test/resources/spring
+END
+product_fr.json
+K 25
+svn:wc:ra_dav:version-url
+V 77
+/!svn/ver/567/branches/v2/sm-search/src/test/resources/spring/product_fr.json
+END
+settings_product_fr.json
+K 25
+svn:wc:ra_dav:version-url
+V 86
+/!svn/ver/567/branches/v2/sm-search/src/test/resources/spring/settings_product_fr.json
+END
+spring-context-test.xml
+K 25
+svn:wc:ra_dav:version-url
+V 85
+/!svn/ver/567/branches/v2/sm-search/src/test/resources/spring/spring-context-test.xml
+END
+shopizer-search.xml
+K 25
+svn:wc:ra_dav:version-url
+V 81
+/!svn/ver/567/branches/v2/sm-search/src/test/resources/spring/shopizer-search.xml
+END
+product.json
+K 25
+svn:wc:ra_dav:version-url
+V 74
+/!svn/ver/567/branches/v2/sm-search/src/test/resources/spring/product.json
+END
+settings_product.json
+K 25
+svn:wc:ra_dav:version-url
+V 83
+/!svn/ver/567/branches/v2/sm-search/src/test/resources/spring/settings_product.json
+END
diff --git a/shopizer-canadapost/src/test/resources/spring/.svn/entries b/shopizer-canadapost/src/test/resources/spring/.svn/entries
new file mode 100644
index 0000000..a7a97b8
--- /dev/null
+++ b/shopizer-canadapost/src/test/resources/spring/.svn/entries
@@ -0,0 +1,232 @@
+10
+
+dir
+567
+http://svn.shopizer.com/branches/v2/sm-search/src/test/resources/spring
+http://svn.shopizer.com
+
+
+
+2013-12-17T22:28:54.444873Z
+567
+carl777
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+e1ff5de0-4b61-491c-91a6-c2558b0baace
+
+settings_product_fr.json
+file
+
+
+
+
+2013-12-07T19:20:03.000000Z
+60182772b24f669fabfa7ae4cb8cfe05
+2013-12-17T22:28:54.444873Z
+567
+carl777
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+280
+
+product_fr.json
+file
+
+
+
+
+2013-12-07T19:22:30.000000Z
+5adce96f24e8cdae7d051a8e2df05a52
+2013-12-17T22:28:54.444873Z
+567
+carl777
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+760
+
+spring-context-test.xml
+file
+
+
+
+
+2013-10-22T23:18:52.000000Z
+13a38abd88b40ac5ce9df69faecf8ab5
+2013-12-17T22:28:54.444873Z
+567
+carl777
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1464
+
+shopizer-search.xml
+file
+
+
+
+
+2013-12-07T19:18:27.000000Z
+dd4fe1152dc56cb269098cd4f09acbec
+2013-12-17T22:28:54.444873Z
+567
+carl777
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+6170
+
+product.json
+file
+
+
+
+
+2013-12-07T19:22:11.000000Z
+a99fac5e2bfd56fbcb0ec8408fb642d6
+2013-12-17T22:28:54.444873Z
+567
+carl777
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+761
+
+settings_product.json
+file
+
+
+
+
+2013-12-07T19:24:04.000000Z
+60182772b24f669fabfa7ae4cb8cfe05
+2013-12-17T22:28:54.444873Z
+567
+carl777
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+280
+
diff --git a/shopizer-canadapost/src/test/resources/spring/.svn/text-base/product.json.svn-base b/shopizer-canadapost/src/test/resources/spring/.svn/text-base/product.json.svn-base
new file mode 100644
index 0000000..5dfd03b
--- /dev/null
+++ b/shopizer-canadapost/src/test/resources/spring/.svn/text-base/product.json.svn-base
@@ -0,0 +1,14 @@
+{"product_en": {
+ "properties" : {
+ "name": {"type": "multi_field","fields": {"name_original":{"type":"string","index":"not_analyzed"},"name_searchable":{"type":"string","index":"analyzed","store":"no"}}},
+ "price" : {"type":"string","index":"not_analyzed"},
+ "categories" : {"type":"string","index":"not_analyzed"},
+ "lang" : {"type":"string","index":"not_analyzed"},
+ "store" : {"type":"string","index":"not_analyzed"},
+ "availability" : {"type":"string","index":"not_analyzed"},
+ "available" : {"type":"string","index":"not_analyzed"},
+ "description" : {"type":"string","index":"analyzed","index_analyzer": "english"},
+ "tags" : {"type":"string","index":"analyzed"}
+ }
+ }
+}
\ No newline at end of file
diff --git a/shopizer-canadapost/src/test/resources/spring/.svn/text-base/product_fr.json.svn-base b/shopizer-canadapost/src/test/resources/spring/.svn/text-base/product_fr.json.svn-base
new file mode 100644
index 0000000..a32a216
--- /dev/null
+++ b/shopizer-canadapost/src/test/resources/spring/.svn/text-base/product_fr.json.svn-base
@@ -0,0 +1,14 @@
+{"product_fr": {
+ "properties" : {
+ "name": {"type": "multi_field","fields": {"name_original":{"type":"string","index":"not_analyzed"},"name_searchable":{"type":"string","index":"analyzed","store":"no"}}},
+ "price" : {"type":"string","index":"not_analyzed"},
+ "categories" : {"type":"string","index":"not_analyzed"},
+ "lang" : {"type":"string","index":"not_analyzed"},
+ "store" : {"type":"string","index":"not_analyzed"},
+ "availability" : {"type":"string","index":"not_analyzed"},
+ "available" : {"type":"string","index":"not_analyzed"},
+ "description" : {"type":"string","index":"analyzed","index_analyzer": "french"},
+ "tags" : {"type":"string","index":"analyzed"}
+ }
+ }
+}
\ No newline at end of file
diff --git a/shopizer-canadapost/src/test/resources/spring/.svn/text-base/settings_product.json.svn-base b/shopizer-canadapost/src/test/resources/spring/.svn/text-base/settings_product.json.svn-base
new file mode 100644
index 0000000..452a01e
--- /dev/null
+++ b/shopizer-canadapost/src/test/resources/spring/.svn/text-base/settings_product.json.svn-base
@@ -0,0 +1,11 @@
+ {"index": {
+ "analysis": {
+ "analyzer": {
+ "custom_analyzer": {
+ "type": "snowball",
+ "language": "English"
+ }
+ }
+ }
+ }
+ }
\ No newline at end of file
diff --git a/shopizer-canadapost/src/test/resources/spring/.svn/text-base/settings_product_fr.json.svn-base b/shopizer-canadapost/src/test/resources/spring/.svn/text-base/settings_product_fr.json.svn-base
new file mode 100644
index 0000000..452a01e
--- /dev/null
+++ b/shopizer-canadapost/src/test/resources/spring/.svn/text-base/settings_product_fr.json.svn-base
@@ -0,0 +1,11 @@
+ {"index": {
+ "analysis": {
+ "analyzer": {
+ "custom_analyzer": {
+ "type": "snowball",
+ "language": "English"
+ }
+ }
+ }
+ }
+ }
\ No newline at end of file
diff --git a/shopizer-canadapost/src/test/resources/spring/.svn/text-base/shopizer-search.xml.svn-base b/shopizer-canadapost/src/test/resources/spring/.svn/text-base/shopizer-search.xml.svn-base
new file mode 100644
index 0000000..f774a66
--- /dev/null
+++ b/shopizer-canadapost/src/test/resources/spring/.svn/text-base/shopizer-search.xml.svn-base
@@ -0,0 +1,188 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
+
+ <!-- can have different search client for indexing & searching -->
+ <bean id="searchClient" class="com.shopizer.search.utils.SearchClient">
+ <property name="serverConfiguration">
+ <ref bean="serverConfiguration" />
+ </property>
+ </bean>
+
+ <!-- Server configuration -->
+ <bean id="serverConfiguration" class="com.shopizer.search.utils.ServerConfiguration">
+ <property name="clusterName" value="shopizer"/>
+ <!-- local (embedded version, will create new indexes in the working directory) or remote (requires existing server) -->
+ <property name="mode" value="remote"/>
+ <!-- those properties are used when configured for remote -->
+ <property name="clusterHost" value="127.0.0.1"/>
+ <property name="clusterPort" value="9300"/>
+ </bean>
+
+
+
+ <bean id="searchDelegate" class="com.shopizer.search.services.impl.SearchDelegateImpl">
+ <property name="searchClient">
+ <ref bean="searchClient" />
+ </property>
+ </bean>
+
+ <!-- Main service -->
+ <bean id="searchService" class="com.shopizer.search.services.SearchService"></bean>
+
+
+ <!--
+ Flow definitions for indexing and searching
+ -->
+
+
+ <bean id="searchWorkflow" class="com.shopizer.search.services.workflow.SearchWorkflow">
+ <property name="searchFlow">
+ <list>
+ <bean id="search" class="com.shopizer.search.services.worker.SearchWorkerImpl"/>
+ </list>
+ </property>
+ <property name="searchKeywordWorkflow">
+ <list>
+ <bean id="searchKeyword" class="com.shopizer.search.services.worker.KeywordSearchWorkerImpl"/>
+ </list>
+ </property>
+ <property name="searchClient">
+ <ref bean="searchClient" />
+ </property>
+ </bean>
+
+ <bean id="indexWorkflow" class="com.shopizer.search.services.workflow.IndexWorkflow">
+ <property name="indexWorkflow">
+ <list>
+ <ref bean="index" />
+ <ref bean="keyword" />
+ </list>
+ </property>
+ <property name="searchClient">
+ <ref bean="searchClient" />
+ </property>
+ </bean>
+
+ <bean id="deleteWorkflow" class="com.shopizer.search.services.workflow.DeleteObjectWorkflow">
+ <property name="deleteObjectWorkflow">
+ <list>
+ <bean id="deleteObject" class="com.shopizer.search.services.worker.DeleteObjectImpl"/>
+ <ref bean="deleteKeywords" />
+ </list>
+ </property>
+ <property name="searchClient">
+ <ref bean="searchClient" />
+ </property>
+ </bean>
+
+
+ <bean id="getWorkflow" class="com.shopizer.search.services.workflow.GetWorkflow">
+ <property name="searchClient">
+ <ref bean="searchClient" />
+ </property>
+ </bean>
+
+ <bean id="deleteKeywords" class="com.shopizer.search.services.worker.DeleteKeywordsImpl">
+ <property name="indexConfigurations">
+ <list>
+ <ref bean="keywordindex_en" />
+ <ref bean="keywordindex_fr" />
+ </list>
+ </property>
+ </bean>
+
+ <bean id="index" class="com.shopizer.search.services.worker.ObjectIndexerImpl">
+ <property name="indexConfigurations">
+ <list>
+ <ref bean="productindex_en_defaultstore" />
+ <ref bean="productindex_fr_defaultstore" />
+ </list>
+ </property>
+ </bean>
+
+
+
+ <!-- The presence of those properties will allow the creation of mapping files -->
+ <bean id="productindex_en_defaultstore" class="com.shopizer.search.utils.IndexConfiguration">
+ <property name="collectionName" value="product_en_default"/>
+ <property name="indexName" value="product_en"/>
+ <property name="mappingFileName" value="spring/product.json"/>
+ <!-- not necessary, only to define index and search rules -->
+ <property name="settingsFileName" value="spring/settings_product.json"/>
+ </bean>
+
+ <bean id="productindex_fr_defaultstore" class="com.shopizer.search.utils.IndexConfiguration">
+ <property name="collectionName" value="product_fr_default"/>
+ <property name="indexName" value="product_fr"/>
+ <property name="mappingFileName" value="spring/product_fr.json"/>
+ <!-- not necessary, only to define index and search rules -->
+ <property name="settingsFileName" value="spring/settings_product_fr.json"/>
+ </bean>
+
+ <bean id="keyword" class="com.shopizer.search.services.worker.KeywordIndexerImpl">
+ <property name="indexConfigurations">
+ <list>
+ <ref bean="keywordindex_en" />
+ <ref bean="keywordindex_fr" />
+ </list>
+ </property>
+ </bean>
+
+ <bean id="keywordindex_en" class="com.shopizer.search.utils.CustomIndexConfiguration">
+ <property name="collectionName" value="keyword_en_%store%"/>
+ <property name="createOnIndexName" value="product_en"/>
+ <property name="fields">
+ <list>
+ <ref bean="field1" />
+ <ref bean="field2" />
+ </list>
+ </property>
+ <!-- NO FILTERS
+ <property name="filters">
+ <list>
+ <ref bean="filter1" />
+ </list>
+ </property>
+ -->
+ </bean>
+
+
+ <bean id="keywordindex_fr" class="com.shopizer.search.utils.CustomIndexConfiguration">
+ <property name="collectionName" value="keyword_fr_%store%"/>
+ <property name="createOnIndexName" value="product_fr"/>
+ <property name="fields">
+ <list>
+ <ref bean="field1" />
+ <ref bean="field2" />
+ </list>
+ </property>
+ <!-- NO FILTERS
+ <property name="filters">
+ <list>
+ <ref bean="filter1" />
+ </list>
+ </property>
+ -->
+ </bean>
+
+
+ <!-- supported field types List, Integer, Double, Boolean, String -->
+ <bean id="field1" class="com.shopizer.search.utils.CustomIndexFieldConfiguration">
+ <property name="fieldName" value="tags"/>
+ <property name="fieldType" value="List"/>
+ </bean>
+ <bean id="field2" class="com.shopizer.search.utils.CustomIndexFieldConfiguration">
+ <property name="fieldName" value="name"/>
+ <property name="fieldType" value="String"/>
+ </bean>
+ <!--
+ <bean id="filter1" class="com.shopizer.search.utils.CustomIndexFieldConfiguration">
+ <property name="fieldName" value="price"/>
+ <property name="fieldType" value="Double"/>
+ </bean>
+ -->
+
+</beans>
\ No newline at end of file
diff --git a/shopizer-canadapost/src/test/resources/spring/.svn/text-base/spring-context-test.xml.svn-base b/shopizer-canadapost/src/test/resources/spring/.svn/text-base/spring-context-test.xml.svn-base
new file mode 100644
index 0000000..3a2f00e
--- /dev/null
+++ b/shopizer-canadapost/src/test/resources/spring/.svn/text-base/spring-context-test.xml.svn-base
@@ -0,0 +1,21 @@
+<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:aop="http://www.springframework.org/schema/aop"
+ xmlns:context="http://www.springframework.org/schema/context" xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:task="http://www.springframework.org/schema/task"
+ xmlns:util="http://www.springframework.org/schema/util"
+ xsi:schemaLocation="
+ http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+ http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+ http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
+ http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.0.xsd
+ http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
+ http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.0.xsd
+ http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd">
+
+ <context:annotation-config />
+ <context:component-scan base-package="com.shopizer" />
+
+
+ <!-- search -->
+ <import resource="classpath:/spring/shopizer-search.xml" />
+
+
+</beans>
\ No newline at end of file
diff --git a/shopizer-canadapost/src/test/resources/spring/spring-context-test.xml b/shopizer-canadapost/src/test/resources/spring/spring-context-test.xml
new file mode 100644
index 0000000..7f3da22
--- /dev/null
+++ b/shopizer-canadapost/src/test/resources/spring/spring-context-test.xml
@@ -0,0 +1,24 @@
+<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:aop="http://www.springframework.org/schema/aop"
+ xmlns:context="http://www.springframework.org/schema/context" xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:task="http://www.springframework.org/schema/task"
+ xmlns:util="http://www.springframework.org/schema/util"
+ xsi:schemaLocation="
+ http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
+ http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+ http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
+ http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee.xsd
+ http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
+ http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task.xsd
+ http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">
+
+ <context:annotation-config />
+ <context:component-scan base-package="com.shopizer" />
+
+ <bean id="canadapost" class="com.shopizer.modules.shipping.canadapost.CanadaPostQuoteModule"/>
+
+ <util:properties id="canadapost-properties">
+ <prop key="username">FIRST PART OF API KEY BEFORE :</prop>
+ <prop key="password">FIRST PART OF API KEY AFTER :</prop>
+ <prop key="mailBy">YOUR CPC IDENTIFIER</prop>
+ </util:properties>
+
+</beans>
\ No newline at end of file
diff --git a/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/common/CcAddressDetailsType.class b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/common/CcAddressDetailsType.class
new file mode 100644
index 0000000..15b8dcd
Binary files /dev/null and b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/common/CcAddressDetailsType.class differ
diff --git a/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/common/CcDetailsType.class b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/common/CcDetailsType.class
new file mode 100644
index 0000000..854a26a
Binary files /dev/null and b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/common/CcDetailsType.class differ
diff --git a/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/common/CcType.class b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/common/CcType.class
new file mode 100644
index 0000000..e594aec
Binary files /dev/null and b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/common/CcType.class differ
diff --git a/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/common/Links.class b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/common/Links.class
new file mode 100644
index 0000000..a8434c7
Binary files /dev/null and b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/common/Links.class differ
diff --git a/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/common/LinkType.class b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/common/LinkType.class
new file mode 100644
index 0000000..074640a
Binary files /dev/null and b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/common/LinkType.class differ
diff --git a/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/common/ObjectFactory.class b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/common/ObjectFactory.class
new file mode 100644
index 0000000..26db0aa
Binary files /dev/null and b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/common/ObjectFactory.class differ
diff --git a/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/CcAddressDetailsType.class b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/CcAddressDetailsType.class
new file mode 100644
index 0000000..0d669fc
Binary files /dev/null and b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/CcAddressDetailsType.class differ
diff --git a/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/CcDetailsType.class b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/CcDetailsType.class
new file mode 100644
index 0000000..9e7aa8b
Binary files /dev/null and b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/CcDetailsType.class differ
diff --git a/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/CcType.class b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/CcType.class
new file mode 100644
index 0000000..e5106f3
Binary files /dev/null and b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/CcType.class differ
diff --git a/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/Link.class b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/Link.class
new file mode 100644
index 0000000..7db1471
Binary files /dev/null and b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/Link.class differ
diff --git a/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/Links.class b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/Links.class
new file mode 100644
index 0000000..80c9b50
Binary files /dev/null and b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/Links.class differ
diff --git a/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/NumberRangeType.class b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/NumberRangeType.class
new file mode 100644
index 0000000..832fccc
Binary files /dev/null and b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/NumberRangeType.class differ
diff --git a/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/ObjectFactory.class b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/ObjectFactory.class
new file mode 100644
index 0000000..3888fd0
Binary files /dev/null and b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/ObjectFactory.class differ
diff --git a/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/Option$ConflictingOptions.class b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/Option$ConflictingOptions.class
new file mode 100644
index 0000000..ca7af9b
Binary files /dev/null and b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/Option$ConflictingOptions.class differ
diff --git a/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/Option$PrerequisiteOptions.class b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/Option$PrerequisiteOptions.class
new file mode 100644
index 0000000..f50f639
Binary files /dev/null and b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/Option$PrerequisiteOptions.class differ
diff --git a/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/Option.class b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/Option.class
new file mode 100644
index 0000000..5eb9e0d
Binary files /dev/null and b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/Option.class differ
diff --git a/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/Options$Option.class b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/Options$Option.class
new file mode 100644
index 0000000..2e3a0a5
Binary files /dev/null and b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/Options$Option.class differ
diff --git a/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/Options.class b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/Options.class
new file mode 100644
index 0000000..a97c322
Binary files /dev/null and b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/Options.class differ
diff --git a/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/package-info.class b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/package-info.class
new file mode 100644
index 0000000..7fd24c4
Binary files /dev/null and b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/package-info.class differ
diff --git a/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/RelType.class b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/RelType.class
new file mode 100644
index 0000000..6b62696
Binary files /dev/null and b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/RelType.class differ
diff --git a/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/Service$Options$Option.class b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/Service$Options$Option.class
new file mode 100644
index 0000000..0515117
Binary files /dev/null and b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/Service$Options$Option.class differ
diff --git a/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/Service$Options.class b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/Service$Options.class
new file mode 100644
index 0000000..d41a7c7
Binary files /dev/null and b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/Service$Options.class differ
diff --git a/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/Service$Restrictions$DimensionalRestrictions.class b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/Service$Restrictions$DimensionalRestrictions.class
new file mode 100644
index 0000000..34184ab
Binary files /dev/null and b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/Service$Restrictions$DimensionalRestrictions.class differ
diff --git a/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/Service$Restrictions.class b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/Service$Restrictions.class
new file mode 100644
index 0000000..0579695
Binary files /dev/null and b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/Service$Restrictions.class differ
diff --git a/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/Service.class b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/Service.class
new file mode 100644
index 0000000..47a5578
Binary files /dev/null and b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/Service.class differ
diff --git a/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/Services$Service.class b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/Services$Service.class
new file mode 100644
index 0000000..5176c5c
Binary files /dev/null and b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/Services$Service.class differ
diff --git a/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/Services.class b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/Services.class
new file mode 100644
index 0000000..a6a8a88
Binary files /dev/null and b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/discovery/Services.class differ
diff --git a/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/messages/Messages$Message.class b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/messages/Messages$Message.class
new file mode 100644
index 0000000..80ed73d
Binary files /dev/null and b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/messages/Messages$Message.class differ
diff --git a/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/messages/Messages.class b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/messages/Messages.class
new file mode 100644
index 0000000..4006e8b
Binary files /dev/null and b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/messages/Messages.class differ
diff --git a/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/messages/ObjectFactory.class b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/messages/ObjectFactory.class
new file mode 100644
index 0000000..c145dd8
Binary files /dev/null and b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/messages/ObjectFactory.class differ
diff --git a/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/messages/package-info.class b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/messages/package-info.class
new file mode 100644
index 0000000..ff9b7df
Binary files /dev/null and b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/messages/package-info.class differ
diff --git a/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/CcAddressDetailsType.class b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/CcAddressDetailsType.class
new file mode 100644
index 0000000..b218646
Binary files /dev/null and b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/CcAddressDetailsType.class differ
diff --git a/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/CcDetailsType.class b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/CcDetailsType.class
new file mode 100644
index 0000000..b200bac
Binary files /dev/null and b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/CcDetailsType.class differ
diff --git a/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/CcType.class b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/CcType.class
new file mode 100644
index 0000000..cadfbec
Binary files /dev/null and b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/CcType.class differ
diff --git a/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/Link.class b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/Link.class
new file mode 100644
index 0000000..13de181
Binary files /dev/null and b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/Link.class differ
diff --git a/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/Links.class b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/Links.class
new file mode 100644
index 0000000..aab87ca
Binary files /dev/null and b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/Links.class differ
diff --git a/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/MailingScenario$Destination$Domestic.class b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/MailingScenario$Destination$Domestic.class
new file mode 100644
index 0000000..83358a4
Binary files /dev/null and b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/MailingScenario$Destination$Domestic.class differ
diff --git a/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/MailingScenario$Destination$International.class b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/MailingScenario$Destination$International.class
new file mode 100644
index 0000000..427faf9
Binary files /dev/null and b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/MailingScenario$Destination$International.class differ
diff --git a/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/MailingScenario$Destination$UnitedStates.class b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/MailingScenario$Destination$UnitedStates.class
new file mode 100644
index 0000000..79bef6a
Binary files /dev/null and b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/MailingScenario$Destination$UnitedStates.class differ
diff --git a/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/MailingScenario$Destination.class b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/MailingScenario$Destination.class
new file mode 100644
index 0000000..d4521ed
Binary files /dev/null and b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/MailingScenario$Destination.class differ
diff --git a/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/MailingScenario$Options$Option.class b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/MailingScenario$Options$Option.class
new file mode 100644
index 0000000..00bda38
Binary files /dev/null and b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/MailingScenario$Options$Option.class differ
diff --git a/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/MailingScenario$Options.class b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/MailingScenario$Options.class
new file mode 100644
index 0000000..cc92aae
Binary files /dev/null and b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/MailingScenario$Options.class differ
diff --git a/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/MailingScenario$ParcelCharacteristics$Dimensions.class b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/MailingScenario$ParcelCharacteristics$Dimensions.class
new file mode 100644
index 0000000..1b5d4d5
Binary files /dev/null and b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/MailingScenario$ParcelCharacteristics$Dimensions.class differ
diff --git a/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/MailingScenario$ParcelCharacteristics.class b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/MailingScenario$ParcelCharacteristics.class
new file mode 100644
index 0000000..bdb033c
Binary files /dev/null and b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/MailingScenario$ParcelCharacteristics.class differ
diff --git a/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/MailingScenario$Services.class b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/MailingScenario$Services.class
new file mode 100644
index 0000000..0882db2
Binary files /dev/null and b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/MailingScenario$Services.class differ
diff --git a/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/MailingScenario.class b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/MailingScenario.class
new file mode 100644
index 0000000..fa3d0a5
Binary files /dev/null and b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/MailingScenario.class differ
diff --git a/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/ObjectFactory.class b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/ObjectFactory.class
new file mode 100644
index 0000000..bf3a4f5
Binary files /dev/null and b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/ObjectFactory.class differ
diff --git a/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/package-info.class b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/package-info.class
new file mode 100644
index 0000000..ccad094
Binary files /dev/null and b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/package-info.class differ
diff --git a/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/PriceQuotes$PriceQuote$PriceDetails$Adjustments$Adjustment$Qualifier.class b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/PriceQuotes$PriceQuote$PriceDetails$Adjustments$Adjustment$Qualifier.class
new file mode 100644
index 0000000..8362cc1
Binary files /dev/null and b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/PriceQuotes$PriceQuote$PriceDetails$Adjustments$Adjustment$Qualifier.class differ
diff --git a/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/PriceQuotes$PriceQuote$PriceDetails$Adjustments$Adjustment.class b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/PriceQuotes$PriceQuote$PriceDetails$Adjustments$Adjustment.class
new file mode 100644
index 0000000..8bfd955
Binary files /dev/null and b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/PriceQuotes$PriceQuote$PriceDetails$Adjustments$Adjustment.class differ
diff --git a/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/PriceQuotes$PriceQuote$PriceDetails$Adjustments.class b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/PriceQuotes$PriceQuote$PriceDetails$Adjustments.class
new file mode 100644
index 0000000..9a8d1a0
Binary files /dev/null and b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/PriceQuotes$PriceQuote$PriceDetails$Adjustments.class differ
diff --git a/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/PriceQuotes$PriceQuote$PriceDetails$Options$Option$Qualifier.class b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/PriceQuotes$PriceQuote$PriceDetails$Options$Option$Qualifier.class
new file mode 100644
index 0000000..8ab648a
Binary files /dev/null and b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/PriceQuotes$PriceQuote$PriceDetails$Options$Option$Qualifier.class differ
diff --git a/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/PriceQuotes$PriceQuote$PriceDetails$Options$Option.class b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/PriceQuotes$PriceQuote$PriceDetails$Options$Option.class
new file mode 100644
index 0000000..c07fc4b
Binary files /dev/null and b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/PriceQuotes$PriceQuote$PriceDetails$Options$Option.class differ
diff --git a/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/PriceQuotes$PriceQuote$PriceDetails$Options.class b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/PriceQuotes$PriceQuote$PriceDetails$Options.class
new file mode 100644
index 0000000..ff48033
Binary files /dev/null and b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/PriceQuotes$PriceQuote$PriceDetails$Options.class differ
diff --git a/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/PriceQuotes$PriceQuote$PriceDetails$Taxes.class b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/PriceQuotes$PriceQuote$PriceDetails$Taxes.class
new file mode 100644
index 0000000..eff2376
Binary files /dev/null and b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/PriceQuotes$PriceQuote$PriceDetails$Taxes.class differ
diff --git a/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/PriceQuotes$PriceQuote$PriceDetails.class b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/PriceQuotes$PriceQuote$PriceDetails.class
new file mode 100644
index 0000000..04a2489
Binary files /dev/null and b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/PriceQuotes$PriceQuote$PriceDetails.class differ
diff --git a/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/PriceQuotes$PriceQuote$ServiceStandard.class b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/PriceQuotes$PriceQuote$ServiceStandard.class
new file mode 100644
index 0000000..80e7476
Binary files /dev/null and b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/PriceQuotes$PriceQuote$ServiceStandard.class differ
diff --git a/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/PriceQuotes$PriceQuote$WeightDetails.class b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/PriceQuotes$PriceQuote$WeightDetails.class
new file mode 100644
index 0000000..acc2697
Binary files /dev/null and b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/PriceQuotes$PriceQuote$WeightDetails.class differ
diff --git a/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/PriceQuotes$PriceQuote.class b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/PriceQuotes$PriceQuote.class
new file mode 100644
index 0000000..6060fd9
Binary files /dev/null and b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/PriceQuotes$PriceQuote.class differ
diff --git a/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/PriceQuotes.class b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/PriceQuotes.class
new file mode 100644
index 0000000..875c31f
Binary files /dev/null and b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/PriceQuotes.class differ
diff --git a/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/TaxType.class b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/TaxType.class
new file mode 100644
index 0000000..4afa75d
Binary files /dev/null and b/shopizer-canadapost/target/classes/ca/canadapost/cpcdp/rating/generated/rating/TaxType.class differ
diff --git a/shopizer-canadapost/target/classes/com/shopizer/modules/shipping/canadapost/CanadaPostQuoteModule.class b/shopizer-canadapost/target/classes/com/shopizer/modules/shipping/canadapost/CanadaPostQuoteModule.class
new file mode 100644
index 0000000..e7403b2
Binary files /dev/null and b/shopizer-canadapost/target/classes/com/shopizer/modules/shipping/canadapost/CanadaPostQuoteModule.class differ
diff --git a/shopizer-canadapost/target/classes/META-INF/MANIFEST.MF b/shopizer-canadapost/target/classes/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..bd82657
--- /dev/null
+++ b/shopizer-canadapost/target/classes/META-INF/MANIFEST.MF
@@ -0,0 +1,5 @@
+Manifest-Version: 1.0
+Built-By: c.samson
+Build-Jdk: 1.8.0_91
+Created-By: Maven Integration for Eclipse
+
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
new file mode 100644
index 0000000..9b028b3
--- /dev/null
+++ b/shopizer-canadapost/target/classes/META-INF/maven/com.shopizer/shopizer-shipping-canadapost-module/pom.properties
@@ -0,0 +1,7 @@
+#Generated by Maven Integration for Eclipse
+#Tue Oct 25 09:55:51 EDT 2016
+version=2.5.0-SNAPSHOT
+groupId=com.shopizer
+m2e.projectName=shopizer-canadapost
+m2e.projectLocation=C\:\\code\\personal\\shopizer-2.5\\shopizer\\shopizer-canadapost
+artifactId=shopizer-shipping-canadapost-module
diff --git a/shopizer-canadapost/target/classes/META-INF/maven/com.shopizer/shopizer-shipping-canadapost-module/pom.xml b/shopizer-canadapost/target/classes/META-INF/maven/com.shopizer/shopizer-shipping-canadapost-module/pom.xml
new file mode 100644
index 0000000..d567bb3
--- /dev/null
+++ b/shopizer-canadapost/target/classes/META-INF/maven/com.shopizer/shopizer-shipping-canadapost-module/pom.xml
@@ -0,0 +1,203 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>com.shopizer</groupId>
+ <artifactId>shopizer-shipping-canadapost-module</artifactId>
+ <version>2.5.0-SNAPSHOT</version>
+ <packaging>jar</packaging>
+ <name>shopizer-shipping-canadapost-module</name>
+ <url>http://www.shopizer.com</url>
+
+
+
+ <properties>
+
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ <java-version>1.8</java-version>
+ <sm-core-model.version>2.5.0-SNAPSHOT</sm-core-model.version>
+ <sm-core-modules.version>2.5.0-SNAPSHOT</sm-core-modules.version>
+
+
+ <jackson-version>1.9.13</jackson-version>
+ <org.springframework-version>4.2.1.RELEASE</org.springframework-version>
+ <junit.version>4.9</junit.version>
+ <org.aspectj-version>1.6.10</org.aspectj-version>
+ <org.slf4j-version>1.6.6</org.slf4j-version>
+
+
+ </properties>
+
+ <!-- mvn clean deploy -->
+ <parent>
+ <groupId>org.sonatype.oss</groupId>
+ <artifactId>oss-parent</artifactId>
+ <version>7</version>
+ </parent>
+
+
+
+ <dependencies>
+
+
+
+ <!-- sm-core-model -->
+ <dependency>
+ <groupId>com.shopizer</groupId>
+ <artifactId>sm-core-model</artifactId>
+ <version>${sm-core-model.version}</version>
+ </dependency>
+
+
+ <!-- sm-core-modules -->
+ <dependency>
+ <groupId>com.shopizer</groupId>
+ <artifactId>sm-core-modules</artifactId>
+ <version>${sm-core-modules.version}</version>
+ </dependency>
+
+
+
+
+ <!-- Spring -->
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-context</artifactId>
+ <version>${org.springframework-version}</version>
+ <exclusions>
+ <!-- Exclude Commons Logging in favor of SLF4j -->
+ <exclusion>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <!-- AspectJ -->
+ <dependency>
+ <groupId>org.aspectj</groupId>
+ <artifactId>aspectjrt</artifactId>
+ <version>${org.aspectj-version}</version>
+ </dependency>
+
+ <!-- Logging -->
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ <version>${org.slf4j-version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>jcl-over-slf4j</artifactId>
+ <version>${org.slf4j-version}</version>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ <version>${org.slf4j-version}</version>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ <version>1.2.16</version>
+ <scope>compile</scope>
+ </dependency>
+
+ <!-- @Inject -->
+ <dependency>
+ <groupId>javax.inject</groupId>
+ <artifactId>javax.inject</artifactId>
+ <version>1</version>
+ </dependency>
+
+ <!-- Servlet -->
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ <version>2.5</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.servlet.jsp</groupId>
+ <artifactId>jsp-api</artifactId>
+ <version>2.1</version>
+ <scope>provided</scope>
+ </dependency>
+
+
+ <!-- Jackson JSON Processor -->
+ <dependency>
+ <groupId>org.codehaus.jackson</groupId>
+ <artifactId>jackson-mapper-asl</artifactId>
+ <version>${jackson-version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ <version>2.0.1</version>
+ </dependency>
+
+ <dependency>
+ <groupId>commons-configuration</groupId>
+ <artifactId>commons-configuration</artifactId>
+ <version>1.6</version>
+ </dependency>
+
+ <dependency>
+ <groupId>com.sun.jersey</groupId>
+ <artifactId>jersey-bundle</artifactId>
+ <version>1.19</version>
+ </dependency>
+
+
+
+ <!-- Test dependencies -->
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>${junit.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-test</artifactId>
+ <version>${org.springframework-version}</version>
+ <scope>test</scope>
+ </dependency>
+
+
+
+
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>2.3.2</version>
+ <configuration>
+ <source>${java-version}</source>
+ <target>${java-version}</target>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>2.12</version>
+ <configuration>
+ <skipTests>true</skipTests>
+ </configuration>
+ </plugin>
+
+
+ </plugins>
+ </build>
+
+
+ <scm>
+ <connection>scm:svn:http://svn.sonatype.org/spice/tags/shopizer-shipping-canadapost-module-2.0.3</connection>
+ <developerConnection>scm:svn:https://svn.sonatype.org/spice/tags/shopizer-shipping-canadapost-module-2.0.3</developerConnection>
+ <url>http://svn.sonatype.org/spice/tags/shopizer-shipping-canadapost-module-2.0.3</url>
+ </scm>
+</project>
\ No newline at end of file
diff --git a/shopizer-canadapost/target/maven-archiver/pom.properties b/shopizer-canadapost/target/maven-archiver/pom.properties
new file mode 100644
index 0000000..3db1dae
--- /dev/null
+++ b/shopizer-canadapost/target/maven-archiver/pom.properties
@@ -0,0 +1,5 @@
+#Generated by Maven
+#Thu Sep 29 09:35:01 EDT 2016
+version=2.5.0-SNAPSHOT
+groupId=com.shopizer
+artifactId=shopizer-shipping-canadapost-module
diff --git a/shopizer-canadapost/target/shopizer-shipping-canadapost-module-2.5.0-SNAPSHOT.jar b/shopizer-canadapost/target/shopizer-shipping-canadapost-module-2.5.0-SNAPSHOT.jar
new file mode 100644
index 0000000..dd18756
Binary files /dev/null and b/shopizer-canadapost/target/shopizer-shipping-canadapost-module-2.5.0-SNAPSHOT.jar differ
diff --git a/shopizer-canadapost/target/test-classes/com/shopizer/modules/shipping/canadapost/test/ShippingCanadaPostTestCase.class b/shopizer-canadapost/target/test-classes/com/shopizer/modules/shipping/canadapost/test/ShippingCanadaPostTestCase.class
new file mode 100644
index 0000000..f090a5a
Binary files /dev/null and b/shopizer-canadapost/target/test-classes/com/shopizer/modules/shipping/canadapost/test/ShippingCanadaPostTestCase.class differ
diff --git a/shopizer-canadapost/target/test-classes/spring/spring-context-test.xml b/shopizer-canadapost/target/test-classes/spring/spring-context-test.xml
new file mode 100644
index 0000000..7f3da22
--- /dev/null
+++ b/shopizer-canadapost/target/test-classes/spring/spring-context-test.xml
@@ -0,0 +1,24 @@
+<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:aop="http://www.springframework.org/schema/aop"
+ xmlns:context="http://www.springframework.org/schema/context" xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:task="http://www.springframework.org/schema/task"
+ xmlns:util="http://www.springframework.org/schema/util"
+ xsi:schemaLocation="
+ http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
+ http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+ http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
+ http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee.xsd
+ http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
+ http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task.xsd
+ http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">
+
+ <context:annotation-config />
+ <context:component-scan base-package="com.shopizer" />
+
+ <bean id="canadapost" class="com.shopizer.modules.shipping.canadapost.CanadaPostQuoteModule"/>
+
+ <util:properties id="canadapost-properties">
+ <prop key="username">FIRST PART OF API KEY BEFORE :</prop>
+ <prop key="password">FIRST PART OF API KEY AFTER :</prop>
+ <prop key="mailBy">YOUR CPC IDENTIFIER</prop>
+ </util:properties>
+
+</beans>
\ No newline at end of file
shopizer-shipping-distance-module/.classpath 37(+37 -0)
diff --git a/shopizer-shipping-distance-module/.classpath b/shopizer-shipping-distance-module/.classpath
new file mode 100644
index 0000000..62d4b8e
--- /dev/null
+++ b/shopizer-shipping-distance-module/.classpath
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" output="target/classes" path="src/main/java">
+ <attributes>
+ <attribute name="optional" value="true"/>
+ <attribute name="maven.pomderived" value="true"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
+ <attributes>
+ <attribute name="maven.pomderived" value="true"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="src" output="target/test-classes" path="src/test/java">
+ <attributes>
+ <attribute name="optional" value="true"/>
+ <attribute name="maven.pomderived" value="true"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources">
+ <attributes>
+ <attribute name="maven.pomderived" value="true"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
+ <attributes>
+ <attribute name="maven.pomderived" value="true"/>
+ <attribute name="org.eclipse.jst.component.nondependency" value=""/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
+ <attributes>
+ <attribute name="maven.pomderived" value="true"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="output" path="target/classes"/>
+</classpath>
shopizer-shipping-distance-module/.project 36(+36 -0)
diff --git a/shopizer-shipping-distance-module/.project b/shopizer-shipping-distance-module/.project
new file mode 100644
index 0000000..54a4018
--- /dev/null
+++ b/shopizer-shipping-distance-module/.project
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>shopizer-shipping-distance-processor</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.wst.common.project.facet.core.builder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.wst.validation.validationbuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.m2e.core.maven2Builder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
+ <nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.m2e.core.maven2Nature</nature>
+ <nature>org.eclipse.wst.common.project.facet.core.nature</nature>
+ </natures>
+</projectDescription>
diff --git a/shopizer-shipping-distance-module/.settings/org.eclipse.core.resources.prefs b/shopizer-shipping-distance-module/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..29abf99
--- /dev/null
+++ b/shopizer-shipping-distance-module/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,6 @@
+eclipse.preferences.version=1
+encoding//src/main/java=UTF-8
+encoding//src/main/resources=UTF-8
+encoding//src/test/java=UTF-8
+encoding//src/test/resources=UTF-8
+encoding/<project>=UTF-8
diff --git a/shopizer-shipping-distance-module/.settings/org.eclipse.jdt.core.prefs b/shopizer-shipping-distance-module/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..13b3428
--- /dev/null
+++ b/shopizer-shipping-distance-module/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,13 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/shopizer-shipping-distance-module/.settings/org.eclipse.m2e.core.prefs b/shopizer-shipping-distance-module/.settings/org.eclipse.m2e.core.prefs
new file mode 100644
index 0000000..f897a7f
--- /dev/null
+++ b/shopizer-shipping-distance-module/.settings/org.eclipse.m2e.core.prefs
@@ -0,0 +1,4 @@
+activeProfiles=
+eclipse.preferences.version=1
+resolveWorkspaceProjects=true
+version=1
diff --git a/shopizer-shipping-distance-module/.settings/org.eclipse.wst.common.component b/shopizer-shipping-distance-module/.settings/org.eclipse.wst.common.component
new file mode 100644
index 0000000..0d1ff75
--- /dev/null
+++ b/shopizer-shipping-distance-module/.settings/org.eclipse.wst.common.component
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
+ <wb-module deploy-name="shopizer-shipping-distance-processor">
+ <wb-resource deploy-path="/" source-path="/src/main/java"/>
+ <wb-resource deploy-path="/" source-path="/src/main/resources"/>
+ </wb-module>
+</project-modules>
diff --git a/shopizer-shipping-distance-module/.settings/org.eclipse.wst.common.project.facet.core.xml b/shopizer-shipping-distance-module/.settings/org.eclipse.wst.common.project.facet.core.xml
new file mode 100644
index 0000000..ee260d9
--- /dev/null
+++ b/shopizer-shipping-distance-module/.settings/org.eclipse.wst.common.project.facet.core.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<faceted-project>
+ <installed facet="jst.utility" version="1.0"/>
+ <installed facet="java" version="1.8"/>
+</faceted-project>
diff --git a/shopizer-shipping-distance-module/.settings/org.eclipse.wst.validation.prefs b/shopizer-shipping-distance-module/.settings/org.eclipse.wst.validation.prefs
new file mode 100644
index 0000000..04cad8c
--- /dev/null
+++ b/shopizer-shipping-distance-module/.settings/org.eclipse.wst.validation.prefs
@@ -0,0 +1,2 @@
+disabled=06target
+eclipse.preferences.version=1
shopizer-shipping-distance-module/pom.xml 225(+225 -0)
diff --git a/shopizer-shipping-distance-module/pom.xml b/shopizer-shipping-distance-module/pom.xml
new file mode 100644
index 0000000..9e66765
--- /dev/null
+++ b/shopizer-shipping-distance-module/pom.xml
@@ -0,0 +1,225 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>com.shopizer</groupId>
+ <artifactId>shopizer-shipping-distance-processor</artifactId>
+ <version>2.5.0-SNAPSHOT</version>
+ <packaging>jar</packaging>
+ <name>shopizer-shipping-distance-processor</name>
+ <url>http://www.shopizer.com</url>
+
+
+
+ <properties>
+
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ <java-version>1.8</java-version>
+ <sm-core-model.version>2.5.0-SNAPSHOT</sm-core-model.version>
+ <sm-core-modules.version>2.5.0-SNAPSHOT</sm-core-modules.version>
+
+
+ <jackson-version>1.9.13</jackson-version>
+ <org.springframework-version>4.2.1.RELEASE</org.springframework-version>
+ <junit.version>4.9</junit.version>
+ <org.aspectj-version>1.6.10</org.aspectj-version>
+ <org.slf4j-version>1.6.6</org.slf4j-version>
+ <sm-core.drools.version>5.6.0.Final</sm-core.drools.version>
+ <google-client-maps-services-version>0.1.6</google-client-maps-services-version>
+
+ </properties>
+
+ <!-- mvn clean deploy -->
+ <parent>
+ <groupId>org.sonatype.oss</groupId>
+ <artifactId>oss-parent</artifactId>
+ <version>7</version>
+ </parent>
+
+
+
+
+
+ <dependencies>
+
+
+
+ <!-- sm-core-model -->
+ <dependency>
+ <groupId>com.shopizer</groupId>
+ <artifactId>sm-core-model</artifactId>
+ <version>${sm-core-model.version}</version>
+ </dependency>
+
+
+ <!-- sm-core-modules -->
+ <dependency>
+ <groupId>com.shopizer</groupId>
+ <artifactId>sm-core-modules</artifactId>
+ <version>${sm-core-modules.version}</version>
+ </dependency>
+
+
+
+
+ <!-- Spring -->
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-context</artifactId>
+ <version>${org.springframework-version}</version>
+ <exclusions>
+ <!-- Exclude Commons Logging in favor of SLF4j -->
+ <exclusion>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <!-- AspectJ -->
+ <dependency>
+ <groupId>org.aspectj</groupId>
+ <artifactId>aspectjrt</artifactId>
+ <version>${org.aspectj-version}</version>
+ </dependency>
+
+ <!-- Logging -->
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ <version>${org.slf4j-version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>jcl-over-slf4j</artifactId>
+ <version>${org.slf4j-version}</version>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ <version>${org.slf4j-version}</version>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ <version>1.2.16</version>
+ <scope>compile</scope>
+ </dependency>
+
+ <!-- @Inject -->
+ <dependency>
+ <groupId>javax.inject</groupId>
+ <artifactId>javax.inject</artifactId>
+ <version>1</version>
+ </dependency>
+
+ <!-- Servlet -->
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ <version>2.5</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.servlet.jsp</groupId>
+ <artifactId>jsp-api</artifactId>
+ <version>2.1</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>jstl</artifactId>
+ <version>1.2</version>
+ </dependency>
+
+ <!-- Jackson JSON Processor -->
+ <dependency>
+ <groupId>org.codehaus.jackson</groupId>
+ <artifactId>jackson-mapper-asl</artifactId>
+ <version>${jackson-version}</version>
+ </dependency>
+
+
+ <!-- JSR 303 with Hibernate Validator -->
+ <dependency>
+ <groupId>javax.validation</groupId>
+ <artifactId>validation-api</artifactId>
+ <version>1.0.0.GA</version>
+ </dependency>
+
+
+ <dependency>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ <version>2.0.1</version>
+ </dependency>
+
+ <dependency>
+ <groupId>commons-configuration</groupId>
+ <artifactId>commons-configuration</artifactId>
+ <version>1.6</version>
+ </dependency>
+
+
+ <!-- Google Map API -->
+ <dependency>
+ <groupId>com.google.maps</groupId>
+ <artifactId>google-maps-services</artifactId>
+ <version>${google-client-maps-services-version}</version>
+ </dependency>
+
+
+
+ <!-- Test dependencies -->
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>${junit.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-test</artifactId>
+ <version>${org.springframework-version}</version>
+ <scope>test</scope>
+ </dependency>
+
+ <!-- Rules engine -->
+ <dependency>
+ <groupId>org.drools</groupId>
+ <artifactId>drools-spring</artifactId>
+ <version>${sm-core.drools.version}</version>
+ </dependency>
+
+
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>2.3.2</version>
+ <configuration>
+ <source>${java-version}</source>
+ <target>${java-version}</target>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>2.12</version>
+ <configuration>
+ <skipTests>true</skipTests>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+
+ <scm>
+ <connection>scm:svn:http://svn.sonatype.org/spice/tags/shopizer-shipping-distance-processor-2.0.3</connection>
+ <developerConnection>scm:svn:https://svn.sonatype.org/spice/tags/shopizer-shipping-distance-processor-2.0.3</developerConnection>
+ <url>http://svn.sonatype.org/spice/tags/shopizer-shipping-distance-processor-2.0.3</url>
+ </scm>
+</project>
\ No newline at end of file
diff --git a/shopizer-shipping-distance-module/pom.xml.releaseBackup b/shopizer-shipping-distance-module/pom.xml.releaseBackup
new file mode 100644
index 0000000..52e4135
--- /dev/null
+++ b/shopizer-shipping-distance-module/pom.xml.releaseBackup
@@ -0,0 +1,225 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>com.shopizer</groupId>
+ <artifactId>shopizer-shipping-distance-processor</artifactId>
+ <version>2.0.3-SNAPSHOT</version>
+ <packaging>jar</packaging>
+ <name>shopizer-shipping-distance-processor</name>
+ <url>http://www.shopizer.com</url>
+
+
+
+ <properties>
+
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ <java-version>1.7</java-version>
+ <sm-core-model.version>2.0.3</sm-core-model.version>
+ <sm-core-modules.version>2.0.3</sm-core-modules.version>
+
+
+ <jackson-version>1.9.13</jackson-version>
+ <org.springframework-version>3.2.0.RELEASE</org.springframework-version>
+ <junit.version>4.9</junit.version>
+ <org.aspectj-version>1.6.10</org.aspectj-version>
+ <org.slf4j-version>1.6.6</org.slf4j-version>
+ <sm-core.drools.version>5.6.0.Final</sm-core.drools.version>
+ <google-client-maps-services-version>0.1.6</google-client-maps-services-version>
+
+ </properties>
+
+ <!-- mvn clean deploy -->
+ <parent>
+ <groupId>org.sonatype.oss</groupId>
+ <artifactId>oss-parent</artifactId>
+ <version>7</version>
+ </parent>
+
+
+
+
+
+ <dependencies>
+
+
+
+ <!-- sm-core-model -->
+ <dependency>
+ <groupId>com.shopizer</groupId>
+ <artifactId>sm-core-model</artifactId>
+ <version>${sm-core-model.version}</version>
+ </dependency>
+
+
+ <!-- sm-core-modules -->
+ <dependency>
+ <groupId>com.shopizer</groupId>
+ <artifactId>sm-core-modules</artifactId>
+ <version>${sm-core-modules.version}</version>
+ </dependency>
+
+
+
+
+ <!-- Spring -->
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-context</artifactId>
+ <version>${org.springframework-version}</version>
+ <exclusions>
+ <!-- Exclude Commons Logging in favor of SLF4j -->
+ <exclusion>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <!-- AspectJ -->
+ <dependency>
+ <groupId>org.aspectj</groupId>
+ <artifactId>aspectjrt</artifactId>
+ <version>${org.aspectj-version}</version>
+ </dependency>
+
+ <!-- Logging -->
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ <version>${org.slf4j-version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>jcl-over-slf4j</artifactId>
+ <version>${org.slf4j-version}</version>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ <version>${org.slf4j-version}</version>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ <version>1.2.16</version>
+ <scope>compile</scope>
+ </dependency>
+
+ <!-- @Inject -->
+ <dependency>
+ <groupId>javax.inject</groupId>
+ <artifactId>javax.inject</artifactId>
+ <version>1</version>
+ </dependency>
+
+ <!-- Servlet -->
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ <version>2.5</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.servlet.jsp</groupId>
+ <artifactId>jsp-api</artifactId>
+ <version>2.1</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>jstl</artifactId>
+ <version>1.2</version>
+ </dependency>
+
+ <!-- Jackson JSON Processor -->
+ <dependency>
+ <groupId>org.codehaus.jackson</groupId>
+ <artifactId>jackson-mapper-asl</artifactId>
+ <version>${jackson-version}</version>
+ </dependency>
+
+
+ <!-- JSR 303 with Hibernate Validator -->
+ <dependency>
+ <groupId>javax.validation</groupId>
+ <artifactId>validation-api</artifactId>
+ <version>1.0.0.GA</version>
+ </dependency>
+
+
+ <dependency>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ <version>2.0.1</version>
+ </dependency>
+
+ <dependency>
+ <groupId>commons-configuration</groupId>
+ <artifactId>commons-configuration</artifactId>
+ <version>1.6</version>
+ </dependency>
+
+
+ <!-- Google Map API -->
+ <dependency>
+ <groupId>com.google.maps</groupId>
+ <artifactId>google-maps-services</artifactId>
+ <version>${google-client-maps-services-version}</version>
+ </dependency>
+
+
+
+ <!-- Test dependencies -->
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>${junit.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-test</artifactId>
+ <version>${org.springframework-version}</version>
+ <scope>test</scope>
+ </dependency>
+
+ <!-- Rules engine -->
+ <dependency>
+ <groupId>org.drools</groupId>
+ <artifactId>drools-spring</artifactId>
+ <version>${sm-core.drools.version}</version>
+ </dependency>
+
+
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>2.3.2</version>
+ <configuration>
+ <source>${java-version}</source>
+ <target>${java-version}</target>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>2.12</version>
+ <configuration>
+ <skipTests>true</skipTests>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+
+ <scm>
+ <connection>scm:svn:http://svn.sonatype.org/spice/tags/shopizer-shipping-distance-processor-2.0.3</connection>
+ <developerConnection>scm:svn:https://svn.sonatype.org/spice/tags/shopizer-shipping-distance-processor-2.0.3</developerConnection>
+ <url>http://svn.sonatype.org/spice/tags/shopizer-shipping-distance-processor-2.0.3</url>
+ </scm>
+</project>
\ No newline at end of file
diff --git a/shopizer-shipping-distance-module/README.md b/shopizer-shipping-distance-module/README.md
new file mode 100644
index 0000000..430b97e
--- /dev/null
+++ b/shopizer-shipping-distance-module/README.md
@@ -0,0 +1,8 @@
+# shopizer-shipping-distance-module
+Calculates shipping fees based on the distance between the store warehouse and the delivery address
+
+Requires a google API key
+
+https://github.com/googlemaps/google-maps-services-java/tree/master/src/test/java/com/google/maps
+https://developers.google.com/maps/documentation/webservices/client-library
+http://thenextweb.com/apps/2015/01/08/google-maps-api-integration-gets-simpler-java-python-libraries/
\ No newline at end of file
diff --git a/shopizer-shipping-distance-module/release.properties b/shopizer-shipping-distance-module/release.properties
new file mode 100644
index 0000000..f86e806
--- /dev/null
+++ b/shopizer-shipping-distance-module/release.properties
@@ -0,0 +1,16 @@
+#release configuration
+#Sun Oct 25 12:19:36 EDT 2015
+project.scm.com.shopizer\:shopizer-shipping-distance-processor.developerConnection=scm\:svn\:https\://svn.sonatype.org/spice/tags/shopizer-shipping-distance-processor-2.0.3
+scm.tag=shopizer-shipping-distance-processor-2.0.3
+scm.url=scm\:svn\:https\://svn.sonatype.org/spice/tags/shopizer-shipping-distance-processor-2.0.3
+pushChanges=true
+preparationGoals=clean verify
+project.scm.com.shopizer\:shopizer-shipping-distance-processor.tag=HEAD
+project.scm.com.shopizer\:shopizer-shipping-distance-processor.url=http\://svn.sonatype.org/spice/tags/shopizer-shipping-distance-processor-2.0.3
+remoteTagging=true
+scm.commentPrefix=[maven-release-plugin]
+project.dev.com.shopizer\:shopizer-shipping-distance-processor=2.0.4-SNAPSHOT
+project.rel.com.shopizer\:shopizer-shipping-distance-processor=2.0.3
+project.scm.com.shopizer\:shopizer-shipping-distance-processor.connection=scm\:svn\:http\://svn.sonatype.org/spice/tags/shopizer-shipping-distance-processor-2.0.3
+exec.additionalArguments=-Psonatype-oss-release
+completedPhase=run-preparation-goals
diff --git a/shopizer-shipping-distance-module/src/.svn/all-wcprops b/shopizer-shipping-distance-module/src/.svn/all-wcprops
new file mode 100644
index 0000000..a154484
--- /dev/null
+++ b/shopizer-shipping-distance-module/src/.svn/all-wcprops
@@ -0,0 +1,5 @@
+K 25
+svn:wc:ra_dav:version-url
+V 39
+/!svn/ver/567/branches/v2/sm-search/src
+END
diff --git a/shopizer-shipping-distance-module/src/.svn/entries b/shopizer-shipping-distance-module/src/.svn/entries
new file mode 100644
index 0000000..76460ee
--- /dev/null
+++ b/shopizer-shipping-distance-module/src/.svn/entries
@@ -0,0 +1,34 @@
+10
+
+dir
+567
+http://svn.shopizer.com/branches/v2/sm-search/src
+http://svn.shopizer.com
+
+
+
+2013-12-17T22:28:54.444873Z
+567
+carl777
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+e1ff5de0-4b61-491c-91a6-c2558b0baace
+
+test
+dir
+
+main
+dir
+
diff --git a/shopizer-shipping-distance-module/src/main/java/com/shopizer/modules/shipping/distance/ShippingDistancePreProcessorImpl.java b/shopizer-shipping-distance-module/src/main/java/com/shopizer/modules/shipping/distance/ShippingDistancePreProcessorImpl.java
new file mode 100644
index 0000000..bd59c75
--- /dev/null
+++ b/shopizer-shipping-distance-module/src/main/java/com/shopizer/modules/shipping/distance/ShippingDistancePreProcessorImpl.java
@@ -0,0 +1,238 @@
+package com.shopizer.modules.shipping.distance;
+
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Locale;
+
+import org.apache.commons.lang.Validate;
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.google.maps.DistanceMatrixApi;
+import com.google.maps.GeoApiContext;
+import com.google.maps.GeocodingApi;
+import com.google.maps.model.Distance;
+import com.google.maps.model.DistanceMatrix;
+import com.google.maps.model.DistanceMatrixRow;
+import com.google.maps.model.GeocodingResult;
+import com.google.maps.model.LatLng;
+import com.salesmanager.core.model.common.Delivery;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.shipping.PackageDetails;
+import com.salesmanager.core.model.shipping.ShippingConfiguration;
+import com.salesmanager.core.model.shipping.ShippingOrigin;
+import com.salesmanager.core.model.shipping.ShippingQuote;
+import com.salesmanager.core.model.system.IntegrationConfiguration;
+import com.salesmanager.core.model.system.IntegrationModule;
+import com.salesmanager.core.modules.constants.Constants;
+import com.salesmanager.core.modules.integration.IntegrationException;
+import com.salesmanager.core.modules.integration.shipping.model.ShippingQuotePrePostProcessModule;
+
+/**
+ * Uses google api to get lng, lat and distance in km for a given delivery address
+ * The route will be displayed on a map to the end user and available
+ * from the admin section
+ *
+ * The module can be configured to use miles by changing distance.inMeters
+ *
+ * To use this pre-processor you will need a google api-key
+ *
+ * Access google developers console
+ * https://console.developers.google.com/project
+ *
+ * Geocoding
+ * Distance Matrix
+ * Directions
+ *
+ * Create new key for server application
+ * Copy API key
+ * https://console.developers.google.com
+ *
+ * https://developers.google.com/maps/documentation/webservices/client-library
+ * https://github.com/googlemaps/google-maps-services-java/tree/master/src/test/java/com/google/maps
+ *
+ * @author carlsamson
+ *
+ */
+public class ShippingDistancePreProcessorImpl implements ShippingQuotePrePostProcessModule {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(ShippingDistancePreProcessorImpl.class);
+
+ private final static String BLANK = " ";
+
+ private final static String MODULE_CODE = "shippingDistanceModule";
+
+
+ private String apiKey;
+
+ private List<String> allowedZonesCodes = null;
+
+
+
+ public List<String> getAllowedZonesCodes() {
+ return allowedZonesCodes;
+ }
+
+
+
+
+
+ public void setAllowedZonesCodes(List<String> allowedZonesCodes) {
+ this.allowedZonesCodes = allowedZonesCodes;
+ }
+
+
+
+
+
+ public void prePostProcessShippingQuotes(ShippingQuote quote,
+ List<PackageDetails> packages, BigDecimal orderTotal,
+ Delivery delivery, ShippingOrigin origin, MerchantStore store,
+ IntegrationConfiguration globalShippingConfiguration,
+ IntegrationModule currentModule,
+ ShippingConfiguration shippingConfiguration,
+ List<IntegrationModule> allModules, Locale locale)
+ throws IntegrationException {
+
+
+ /** which destinations are supported by this module **/
+
+ if(delivery.getZone()==null) {
+ return;
+ }
+
+ boolean zoneAllowed = false;
+ if(allowedZonesCodes!=null) {
+ for(String zoneCode : allowedZonesCodes) {
+ if(zoneCode.equals(delivery.getZone().getCode())) {
+ zoneAllowed = true;
+ break;
+ }
+ }
+ }
+
+ if(!zoneAllowed) {
+ return;
+ }
+
+ if(StringUtils.isBlank(delivery.getPostalCode())) {
+ return;
+ }
+
+ Validate.notNull(apiKey, "Requires the configuration of google apiKey");
+
+ GeoApiContext context = new GeoApiContext().setApiKey(apiKey);
+
+ //build origin address
+ StringBuilder originAddress = new StringBuilder();
+
+ originAddress.append(origin.getAddress()).append(BLANK)
+ .append(origin.getCity()).append(BLANK)
+ .append(origin.getPostalCode()).append(BLANK);
+
+ if(!StringUtils.isBlank(origin.getState())) {
+ originAddress.append(origin.getState()).append(" ");
+ }
+ if(origin.getZone()!=null) {
+ originAddress.append(origin.getZone().getCode()).append(" ");
+ }
+ originAddress.append(origin.getCountry().getIsoCode());
+
+
+ //build destination address
+ StringBuilder destinationAddress = new StringBuilder();
+
+ destinationAddress.append(delivery.getAddress()).append(BLANK);
+ if(!StringUtils.isBlank(delivery.getCity())) {
+ destinationAddress.append(delivery.getCity()).append(BLANK);
+ }
+ destinationAddress.append(delivery.getPostalCode()).append(BLANK);
+
+ if(!StringUtils.isBlank(delivery.getState())) {
+ destinationAddress.append(delivery.getState()).append(" ");
+ }
+ if(delivery.getZone()!=null) {
+ destinationAddress.append(delivery.getZone().getCode()).append(" ");
+ }
+ destinationAddress.append(delivery.getCountry().getIsoCode());
+
+
+ try {
+ GeocodingResult[] originAdressResult = GeocodingApi.geocode(context,
+ originAddress.toString()).await();
+
+ GeocodingResult[] destinationAdressResult = GeocodingApi.geocode(context,
+ destinationAddress.toString()).await();
+
+ if(originAdressResult.length>0 && destinationAdressResult.length>0) {
+ LatLng originLatLng = originAdressResult[0].geometry.location;
+ LatLng destinationLatLng = destinationAdressResult[0].geometry.location;
+
+ delivery.setLatitude(String.valueOf(destinationLatLng.lat));
+ delivery.setLongitude(String.valueOf(destinationLatLng.lng));
+
+ //keep latlng for further usage in order to display the map
+
+
+ DistanceMatrix distanceRequest = DistanceMatrixApi.newRequest(context)
+ .origins(new LatLng(originLatLng.lat, originLatLng.lng))
+
+ .destinations(new LatLng(destinationLatLng.lat, destinationLatLng.lng))
+ .awaitIgnoreError();
+
+
+ if(distanceRequest!=null) {
+ DistanceMatrixRow distanceMax = distanceRequest.rows[0];
+ Distance distance = distanceMax.elements[0].distance;
+ quote.getQuoteInformations().put(Constants.DISTANCE_KEY, 0.001 * distance.inMeters);
+ }
+
+ }
+
+ } catch (Exception e) {
+ LOGGER.error("Exception while calculating the shipping distance",e);
+ }
+
+ }
+
+
+
+
+
+ public String getApiKey() {
+ return apiKey;
+ }
+
+
+
+
+
+ public void setApiKey(String apiKey) {
+ this.apiKey = apiKey;
+ }
+
+
+
+
+
+
+ public String getModuleCode() {
+ // TODO Auto-generated method stub
+ return MODULE_CODE;
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+}
diff --git a/shopizer-shipping-distance-module/src/test/java/com/shopizer/modules/shipping/distance/test/ShippingDistanceProcessorTestCase.java b/shopizer-shipping-distance-module/src/test/java/com/shopizer/modules/shipping/distance/test/ShippingDistanceProcessorTestCase.java
new file mode 100644
index 0000000..e430fb5
--- /dev/null
+++ b/shopizer-shipping-distance-module/src/test/java/com/shopizer/modules/shipping/distance/test/ShippingDistanceProcessorTestCase.java
@@ -0,0 +1,69 @@
+package com.shopizer.modules.shipping.distance.test;
+
+import java.util.Locale;
+
+import javax.inject.Inject;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.TestExecutionListeners;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import org.springframework.test.context.support.DependencyInjectionTestExecutionListener;
+
+import com.salesmanager.core.model.common.Delivery;
+import com.salesmanager.core.model.reference.country.Country;
+import com.salesmanager.core.model.reference.zone.Zone;
+import com.salesmanager.core.model.shipping.ShippingOrigin;
+import com.salesmanager.core.model.shipping.ShippingQuote;
+import com.salesmanager.core.modules.constants.Constants;
+import com.salesmanager.core.modules.integration.shipping.model.ShippingQuotePrePostProcessModule;
+
+@ContextConfiguration(locations = {
+ "classpath:spring/spring-context-test.xml"
+})
+@RunWith(SpringJUnit4ClassRunner.class)
+@TestExecutionListeners({
+ DependencyInjectionTestExecutionListener.class
+})
+public class ShippingDistanceProcessorTestCase {
+
+ @Inject
+ ShippingQuotePrePostProcessModule shippingDecisionTablePreProcessor;
+
+ @Test
+ public void testDistance() throws Exception {
+
+ ShippingQuote shippingQuote = new ShippingQuote();
+
+ Delivery delivery = new Delivery();
+ delivery.setAddress("358 Du Languedoc");
+ delivery.setCity("Boucherville");
+ delivery.setPostalCode("J4B 8J9");
+
+ Country country = new Country();
+ country.setIsoCode("CA");
+ country.setName("Canada");
+ delivery.setCountry(country);
+
+ Zone zone = new Zone();
+ zone.setCode("QC");
+ zone.setName("Quebec");
+
+ delivery.setZone(zone);
+
+ ShippingOrigin origin = new ShippingOrigin();
+ origin.setAddress("7070, avenue Henri-Julien");
+ origin.setCity("Montreal");
+ origin.setPostalCode("H2S 3S3");
+ origin.setZone(zone);
+ origin.setCountry(country);
+
+ shippingDecisionTablePreProcessor.prePostProcessShippingQuotes(shippingQuote, null, null, delivery, origin, null, null, null, null, null, Locale.CANADA);
+
+ System.out.println(delivery.getLatitude());
+ System.out.println(delivery.getLongitude());
+ System.out.println(shippingQuote.getQuoteInformations().get(Constants.DISTANCE_KEY));
+
+ }
+}
diff --git a/shopizer-shipping-distance-module/src/test/resources/.svn/all-wcprops b/shopizer-shipping-distance-module/src/test/resources/.svn/all-wcprops
new file mode 100644
index 0000000..0367388
--- /dev/null
+++ b/shopizer-shipping-distance-module/src/test/resources/.svn/all-wcprops
@@ -0,0 +1,5 @@
+K 25
+svn:wc:ra_dav:version-url
+V 54
+/!svn/ver/567/branches/v2/sm-search/src/test/resources
+END
diff --git a/shopizer-shipping-distance-module/src/test/resources/.svn/entries b/shopizer-shipping-distance-module/src/test/resources/.svn/entries
new file mode 100644
index 0000000..a930aeb
--- /dev/null
+++ b/shopizer-shipping-distance-module/src/test/resources/.svn/entries
@@ -0,0 +1,31 @@
+10
+
+dir
+567
+http://svn.shopizer.com/branches/v2/sm-search/src/test/resources
+http://svn.shopizer.com
+
+
+
+2013-12-17T22:28:54.444873Z
+567
+carl777
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+e1ff5de0-4b61-491c-91a6-c2558b0baace
+
+spring
+dir
+
diff --git a/shopizer-shipping-distance-module/src/test/resources/spring/.svn/all-wcprops b/shopizer-shipping-distance-module/src/test/resources/spring/.svn/all-wcprops
new file mode 100644
index 0000000..45a2431
--- /dev/null
+++ b/shopizer-shipping-distance-module/src/test/resources/spring/.svn/all-wcprops
@@ -0,0 +1,41 @@
+K 25
+svn:wc:ra_dav:version-url
+V 61
+/!svn/ver/567/branches/v2/sm-search/src/test/resources/spring
+END
+product_fr.json
+K 25
+svn:wc:ra_dav:version-url
+V 77
+/!svn/ver/567/branches/v2/sm-search/src/test/resources/spring/product_fr.json
+END
+settings_product_fr.json
+K 25
+svn:wc:ra_dav:version-url
+V 86
+/!svn/ver/567/branches/v2/sm-search/src/test/resources/spring/settings_product_fr.json
+END
+spring-context-test.xml
+K 25
+svn:wc:ra_dav:version-url
+V 85
+/!svn/ver/567/branches/v2/sm-search/src/test/resources/spring/spring-context-test.xml
+END
+shopizer-search.xml
+K 25
+svn:wc:ra_dav:version-url
+V 81
+/!svn/ver/567/branches/v2/sm-search/src/test/resources/spring/shopizer-search.xml
+END
+product.json
+K 25
+svn:wc:ra_dav:version-url
+V 74
+/!svn/ver/567/branches/v2/sm-search/src/test/resources/spring/product.json
+END
+settings_product.json
+K 25
+svn:wc:ra_dav:version-url
+V 83
+/!svn/ver/567/branches/v2/sm-search/src/test/resources/spring/settings_product.json
+END
diff --git a/shopizer-shipping-distance-module/src/test/resources/spring/.svn/entries b/shopizer-shipping-distance-module/src/test/resources/spring/.svn/entries
new file mode 100644
index 0000000..a7a97b8
--- /dev/null
+++ b/shopizer-shipping-distance-module/src/test/resources/spring/.svn/entries
@@ -0,0 +1,232 @@
+10
+
+dir
+567
+http://svn.shopizer.com/branches/v2/sm-search/src/test/resources/spring
+http://svn.shopizer.com
+
+
+
+2013-12-17T22:28:54.444873Z
+567
+carl777
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+e1ff5de0-4b61-491c-91a6-c2558b0baace
+
+settings_product_fr.json
+file
+
+
+
+
+2013-12-07T19:20:03.000000Z
+60182772b24f669fabfa7ae4cb8cfe05
+2013-12-17T22:28:54.444873Z
+567
+carl777
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+280
+
+product_fr.json
+file
+
+
+
+
+2013-12-07T19:22:30.000000Z
+5adce96f24e8cdae7d051a8e2df05a52
+2013-12-17T22:28:54.444873Z
+567
+carl777
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+760
+
+spring-context-test.xml
+file
+
+
+
+
+2013-10-22T23:18:52.000000Z
+13a38abd88b40ac5ce9df69faecf8ab5
+2013-12-17T22:28:54.444873Z
+567
+carl777
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1464
+
+shopizer-search.xml
+file
+
+
+
+
+2013-12-07T19:18:27.000000Z
+dd4fe1152dc56cb269098cd4f09acbec
+2013-12-17T22:28:54.444873Z
+567
+carl777
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+6170
+
+product.json
+file
+
+
+
+
+2013-12-07T19:22:11.000000Z
+a99fac5e2bfd56fbcb0ec8408fb642d6
+2013-12-17T22:28:54.444873Z
+567
+carl777
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+761
+
+settings_product.json
+file
+
+
+
+
+2013-12-07T19:24:04.000000Z
+60182772b24f669fabfa7ae4cb8cfe05
+2013-12-17T22:28:54.444873Z
+567
+carl777
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+280
+
diff --git a/shopizer-shipping-distance-module/src/test/resources/spring/.svn/text-base/product.json.svn-base b/shopizer-shipping-distance-module/src/test/resources/spring/.svn/text-base/product.json.svn-base
new file mode 100644
index 0000000..5dfd03b
--- /dev/null
+++ b/shopizer-shipping-distance-module/src/test/resources/spring/.svn/text-base/product.json.svn-base
@@ -0,0 +1,14 @@
+{"product_en": {
+ "properties" : {
+ "name": {"type": "multi_field","fields": {"name_original":{"type":"string","index":"not_analyzed"},"name_searchable":{"type":"string","index":"analyzed","store":"no"}}},
+ "price" : {"type":"string","index":"not_analyzed"},
+ "categories" : {"type":"string","index":"not_analyzed"},
+ "lang" : {"type":"string","index":"not_analyzed"},
+ "store" : {"type":"string","index":"not_analyzed"},
+ "availability" : {"type":"string","index":"not_analyzed"},
+ "available" : {"type":"string","index":"not_analyzed"},
+ "description" : {"type":"string","index":"analyzed","index_analyzer": "english"},
+ "tags" : {"type":"string","index":"analyzed"}
+ }
+ }
+}
\ No newline at end of file
diff --git a/shopizer-shipping-distance-module/src/test/resources/spring/.svn/text-base/product_fr.json.svn-base b/shopizer-shipping-distance-module/src/test/resources/spring/.svn/text-base/product_fr.json.svn-base
new file mode 100644
index 0000000..a32a216
--- /dev/null
+++ b/shopizer-shipping-distance-module/src/test/resources/spring/.svn/text-base/product_fr.json.svn-base
@@ -0,0 +1,14 @@
+{"product_fr": {
+ "properties" : {
+ "name": {"type": "multi_field","fields": {"name_original":{"type":"string","index":"not_analyzed"},"name_searchable":{"type":"string","index":"analyzed","store":"no"}}},
+ "price" : {"type":"string","index":"not_analyzed"},
+ "categories" : {"type":"string","index":"not_analyzed"},
+ "lang" : {"type":"string","index":"not_analyzed"},
+ "store" : {"type":"string","index":"not_analyzed"},
+ "availability" : {"type":"string","index":"not_analyzed"},
+ "available" : {"type":"string","index":"not_analyzed"},
+ "description" : {"type":"string","index":"analyzed","index_analyzer": "french"},
+ "tags" : {"type":"string","index":"analyzed"}
+ }
+ }
+}
\ No newline at end of file
diff --git a/shopizer-shipping-distance-module/src/test/resources/spring/.svn/text-base/settings_product.json.svn-base b/shopizer-shipping-distance-module/src/test/resources/spring/.svn/text-base/settings_product.json.svn-base
new file mode 100644
index 0000000..452a01e
--- /dev/null
+++ b/shopizer-shipping-distance-module/src/test/resources/spring/.svn/text-base/settings_product.json.svn-base
@@ -0,0 +1,11 @@
+ {"index": {
+ "analysis": {
+ "analyzer": {
+ "custom_analyzer": {
+ "type": "snowball",
+ "language": "English"
+ }
+ }
+ }
+ }
+ }
\ No newline at end of file
diff --git a/shopizer-shipping-distance-module/src/test/resources/spring/.svn/text-base/settings_product_fr.json.svn-base b/shopizer-shipping-distance-module/src/test/resources/spring/.svn/text-base/settings_product_fr.json.svn-base
new file mode 100644
index 0000000..452a01e
--- /dev/null
+++ b/shopizer-shipping-distance-module/src/test/resources/spring/.svn/text-base/settings_product_fr.json.svn-base
@@ -0,0 +1,11 @@
+ {"index": {
+ "analysis": {
+ "analyzer": {
+ "custom_analyzer": {
+ "type": "snowball",
+ "language": "English"
+ }
+ }
+ }
+ }
+ }
\ No newline at end of file
diff --git a/shopizer-shipping-distance-module/src/test/resources/spring/.svn/text-base/shopizer-search.xml.svn-base b/shopizer-shipping-distance-module/src/test/resources/spring/.svn/text-base/shopizer-search.xml.svn-base
new file mode 100644
index 0000000..f774a66
--- /dev/null
+++ b/shopizer-shipping-distance-module/src/test/resources/spring/.svn/text-base/shopizer-search.xml.svn-base
@@ -0,0 +1,188 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
+
+ <!-- can have different search client for indexing & searching -->
+ <bean id="searchClient" class="com.shopizer.search.utils.SearchClient">
+ <property name="serverConfiguration">
+ <ref bean="serverConfiguration" />
+ </property>
+ </bean>
+
+ <!-- Server configuration -->
+ <bean id="serverConfiguration" class="com.shopizer.search.utils.ServerConfiguration">
+ <property name="clusterName" value="shopizer"/>
+ <!-- local (embedded version, will create new indexes in the working directory) or remote (requires existing server) -->
+ <property name="mode" value="remote"/>
+ <!-- those properties are used when configured for remote -->
+ <property name="clusterHost" value="127.0.0.1"/>
+ <property name="clusterPort" value="9300"/>
+ </bean>
+
+
+
+ <bean id="searchDelegate" class="com.shopizer.search.services.impl.SearchDelegateImpl">
+ <property name="searchClient">
+ <ref bean="searchClient" />
+ </property>
+ </bean>
+
+ <!-- Main service -->
+ <bean id="searchService" class="com.shopizer.search.services.SearchService"></bean>
+
+
+ <!--
+ Flow definitions for indexing and searching
+ -->
+
+
+ <bean id="searchWorkflow" class="com.shopizer.search.services.workflow.SearchWorkflow">
+ <property name="searchFlow">
+ <list>
+ <bean id="search" class="com.shopizer.search.services.worker.SearchWorkerImpl"/>
+ </list>
+ </property>
+ <property name="searchKeywordWorkflow">
+ <list>
+ <bean id="searchKeyword" class="com.shopizer.search.services.worker.KeywordSearchWorkerImpl"/>
+ </list>
+ </property>
+ <property name="searchClient">
+ <ref bean="searchClient" />
+ </property>
+ </bean>
+
+ <bean id="indexWorkflow" class="com.shopizer.search.services.workflow.IndexWorkflow">
+ <property name="indexWorkflow">
+ <list>
+ <ref bean="index" />
+ <ref bean="keyword" />
+ </list>
+ </property>
+ <property name="searchClient">
+ <ref bean="searchClient" />
+ </property>
+ </bean>
+
+ <bean id="deleteWorkflow" class="com.shopizer.search.services.workflow.DeleteObjectWorkflow">
+ <property name="deleteObjectWorkflow">
+ <list>
+ <bean id="deleteObject" class="com.shopizer.search.services.worker.DeleteObjectImpl"/>
+ <ref bean="deleteKeywords" />
+ </list>
+ </property>
+ <property name="searchClient">
+ <ref bean="searchClient" />
+ </property>
+ </bean>
+
+
+ <bean id="getWorkflow" class="com.shopizer.search.services.workflow.GetWorkflow">
+ <property name="searchClient">
+ <ref bean="searchClient" />
+ </property>
+ </bean>
+
+ <bean id="deleteKeywords" class="com.shopizer.search.services.worker.DeleteKeywordsImpl">
+ <property name="indexConfigurations">
+ <list>
+ <ref bean="keywordindex_en" />
+ <ref bean="keywordindex_fr" />
+ </list>
+ </property>
+ </bean>
+
+ <bean id="index" class="com.shopizer.search.services.worker.ObjectIndexerImpl">
+ <property name="indexConfigurations">
+ <list>
+ <ref bean="productindex_en_defaultstore" />
+ <ref bean="productindex_fr_defaultstore" />
+ </list>
+ </property>
+ </bean>
+
+
+
+ <!-- The presence of those properties will allow the creation of mapping files -->
+ <bean id="productindex_en_defaultstore" class="com.shopizer.search.utils.IndexConfiguration">
+ <property name="collectionName" value="product_en_default"/>
+ <property name="indexName" value="product_en"/>
+ <property name="mappingFileName" value="spring/product.json"/>
+ <!-- not necessary, only to define index and search rules -->
+ <property name="settingsFileName" value="spring/settings_product.json"/>
+ </bean>
+
+ <bean id="productindex_fr_defaultstore" class="com.shopizer.search.utils.IndexConfiguration">
+ <property name="collectionName" value="product_fr_default"/>
+ <property name="indexName" value="product_fr"/>
+ <property name="mappingFileName" value="spring/product_fr.json"/>
+ <!-- not necessary, only to define index and search rules -->
+ <property name="settingsFileName" value="spring/settings_product_fr.json"/>
+ </bean>
+
+ <bean id="keyword" class="com.shopizer.search.services.worker.KeywordIndexerImpl">
+ <property name="indexConfigurations">
+ <list>
+ <ref bean="keywordindex_en" />
+ <ref bean="keywordindex_fr" />
+ </list>
+ </property>
+ </bean>
+
+ <bean id="keywordindex_en" class="com.shopizer.search.utils.CustomIndexConfiguration">
+ <property name="collectionName" value="keyword_en_%store%"/>
+ <property name="createOnIndexName" value="product_en"/>
+ <property name="fields">
+ <list>
+ <ref bean="field1" />
+ <ref bean="field2" />
+ </list>
+ </property>
+ <!-- NO FILTERS
+ <property name="filters">
+ <list>
+ <ref bean="filter1" />
+ </list>
+ </property>
+ -->
+ </bean>
+
+
+ <bean id="keywordindex_fr" class="com.shopizer.search.utils.CustomIndexConfiguration">
+ <property name="collectionName" value="keyword_fr_%store%"/>
+ <property name="createOnIndexName" value="product_fr"/>
+ <property name="fields">
+ <list>
+ <ref bean="field1" />
+ <ref bean="field2" />
+ </list>
+ </property>
+ <!-- NO FILTERS
+ <property name="filters">
+ <list>
+ <ref bean="filter1" />
+ </list>
+ </property>
+ -->
+ </bean>
+
+
+ <!-- supported field types List, Integer, Double, Boolean, String -->
+ <bean id="field1" class="com.shopizer.search.utils.CustomIndexFieldConfiguration">
+ <property name="fieldName" value="tags"/>
+ <property name="fieldType" value="List"/>
+ </bean>
+ <bean id="field2" class="com.shopizer.search.utils.CustomIndexFieldConfiguration">
+ <property name="fieldName" value="name"/>
+ <property name="fieldType" value="String"/>
+ </bean>
+ <!--
+ <bean id="filter1" class="com.shopizer.search.utils.CustomIndexFieldConfiguration">
+ <property name="fieldName" value="price"/>
+ <property name="fieldType" value="Double"/>
+ </bean>
+ -->
+
+</beans>
\ No newline at end of file
diff --git a/shopizer-shipping-distance-module/src/test/resources/spring/.svn/text-base/spring-context-test.xml.svn-base b/shopizer-shipping-distance-module/src/test/resources/spring/.svn/text-base/spring-context-test.xml.svn-base
new file mode 100644
index 0000000..3a2f00e
--- /dev/null
+++ b/shopizer-shipping-distance-module/src/test/resources/spring/.svn/text-base/spring-context-test.xml.svn-base
@@ -0,0 +1,21 @@
+<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:aop="http://www.springframework.org/schema/aop"
+ xmlns:context="http://www.springframework.org/schema/context" xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:task="http://www.springframework.org/schema/task"
+ xmlns:util="http://www.springframework.org/schema/util"
+ xsi:schemaLocation="
+ http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+ http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+ http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
+ http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.0.xsd
+ http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
+ http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.0.xsd
+ http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd">
+
+ <context:annotation-config />
+ <context:component-scan base-package="com.shopizer" />
+
+
+ <!-- search -->
+ <import resource="classpath:/spring/shopizer-search.xml" />
+
+
+</beans>
\ No newline at end of file
diff --git a/shopizer-shipping-distance-module/src/test/resources/spring/processors/shopizer-core-shipping-processors.xml b/shopizer-shipping-distance-module/src/test/resources/spring/processors/shopizer-core-shipping-processors.xml
new file mode 100644
index 0000000..15147f6
--- /dev/null
+++ b/shopizer-shipping-distance-module/src/test/resources/spring/processors/shopizer-core-shipping-processors.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:util="http://www.springframework.org/schema/util"
+ xsi:schemaLocation="
+ http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+ http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">
+
+
+ <!-- shipping-distance-processor project -->
+ <bean id="shippingDistancePreProcessor"
+ class="com.shopizer.modules.shipping.distance.ShippingDistancePreProcessorImpl">
+ <!-- google distance API key -->
+ <property name="apiKey" value="[your API key]"/>
+ <property name="allowedZonesCodes" ref="acceptedZones"/>
+ </bean>
+
+
+ <util:list id="acceptedZones" value-type="java.lang.String">
+ <value>QC</value>
+ </util:list>
+
+
+</beans>
\ No newline at end of file
diff --git a/shopizer-shipping-distance-module/src/test/resources/spring/spring-context-test.xml b/shopizer-shipping-distance-module/src/test/resources/spring/spring-context-test.xml
new file mode 100644
index 0000000..817beb2
--- /dev/null
+++ b/shopizer-shipping-distance-module/src/test/resources/spring/spring-context-test.xml
@@ -0,0 +1,21 @@
+<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:aop="http://www.springframework.org/schema/aop"
+ xmlns:context="http://www.springframework.org/schema/context" xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:task="http://www.springframework.org/schema/task"
+ xmlns:util="http://www.springframework.org/schema/util"
+ xsi:schemaLocation="
+ http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
+ http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+ http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
+ http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee.xsd
+ http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
+ http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task.xsd
+ http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">
+
+ <context:annotation-config />
+ <context:component-scan base-package="com.shopizer" />
+
+
+ <!-- pre-processors -->
+ <import resource="classpath:/spring/processors/shopizer-core-shipping-processors.xml" />
+
+
+</beans>
\ No newline at end of file
diff --git a/shopizer-shipping-distance-module/target/classes/com/shopizer/modules/shipping/distance/ShippingDistancePreProcessorImpl.class b/shopizer-shipping-distance-module/target/classes/com/shopizer/modules/shipping/distance/ShippingDistancePreProcessorImpl.class
new file mode 100644
index 0000000..48116c9
Binary files /dev/null and b/shopizer-shipping-distance-module/target/classes/com/shopizer/modules/shipping/distance/ShippingDistancePreProcessorImpl.class differ
diff --git a/shopizer-shipping-distance-module/target/classes/META-INF/MANIFEST.MF b/shopizer-shipping-distance-module/target/classes/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..bd82657
--- /dev/null
+++ b/shopizer-shipping-distance-module/target/classes/META-INF/MANIFEST.MF
@@ -0,0 +1,5 @@
+Manifest-Version: 1.0
+Built-By: c.samson
+Build-Jdk: 1.8.0_91
+Created-By: Maven Integration for Eclipse
+
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
new file mode 100644
index 0000000..92a4a87
--- /dev/null
+++ b/shopizer-shipping-distance-module/target/classes/META-INF/maven/com.shopizer/shopizer-shipping-distance-processor/pom.properties
@@ -0,0 +1,7 @@
+#Generated by Maven Integration for Eclipse
+#Tue Oct 25 09:55:51 EDT 2016
+version=2.5.0-SNAPSHOT
+groupId=com.shopizer
+m2e.projectName=shopizer-shipping-distance-processor
+m2e.projectLocation=C\:\\code\\personal\\shopizer-2.5\\shopizer\\shopizer-shipping-distance-module
+artifactId=shopizer-shipping-distance-processor
diff --git a/shopizer-shipping-distance-module/target/classes/META-INF/maven/com.shopizer/shopizer-shipping-distance-processor/pom.xml b/shopizer-shipping-distance-module/target/classes/META-INF/maven/com.shopizer/shopizer-shipping-distance-processor/pom.xml
new file mode 100644
index 0000000..9e66765
--- /dev/null
+++ b/shopizer-shipping-distance-module/target/classes/META-INF/maven/com.shopizer/shopizer-shipping-distance-processor/pom.xml
@@ -0,0 +1,225 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>com.shopizer</groupId>
+ <artifactId>shopizer-shipping-distance-processor</artifactId>
+ <version>2.5.0-SNAPSHOT</version>
+ <packaging>jar</packaging>
+ <name>shopizer-shipping-distance-processor</name>
+ <url>http://www.shopizer.com</url>
+
+
+
+ <properties>
+
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ <java-version>1.8</java-version>
+ <sm-core-model.version>2.5.0-SNAPSHOT</sm-core-model.version>
+ <sm-core-modules.version>2.5.0-SNAPSHOT</sm-core-modules.version>
+
+
+ <jackson-version>1.9.13</jackson-version>
+ <org.springframework-version>4.2.1.RELEASE</org.springframework-version>
+ <junit.version>4.9</junit.version>
+ <org.aspectj-version>1.6.10</org.aspectj-version>
+ <org.slf4j-version>1.6.6</org.slf4j-version>
+ <sm-core.drools.version>5.6.0.Final</sm-core.drools.version>
+ <google-client-maps-services-version>0.1.6</google-client-maps-services-version>
+
+ </properties>
+
+ <!-- mvn clean deploy -->
+ <parent>
+ <groupId>org.sonatype.oss</groupId>
+ <artifactId>oss-parent</artifactId>
+ <version>7</version>
+ </parent>
+
+
+
+
+
+ <dependencies>
+
+
+
+ <!-- sm-core-model -->
+ <dependency>
+ <groupId>com.shopizer</groupId>
+ <artifactId>sm-core-model</artifactId>
+ <version>${sm-core-model.version}</version>
+ </dependency>
+
+
+ <!-- sm-core-modules -->
+ <dependency>
+ <groupId>com.shopizer</groupId>
+ <artifactId>sm-core-modules</artifactId>
+ <version>${sm-core-modules.version}</version>
+ </dependency>
+
+
+
+
+ <!-- Spring -->
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-context</artifactId>
+ <version>${org.springframework-version}</version>
+ <exclusions>
+ <!-- Exclude Commons Logging in favor of SLF4j -->
+ <exclusion>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <!-- AspectJ -->
+ <dependency>
+ <groupId>org.aspectj</groupId>
+ <artifactId>aspectjrt</artifactId>
+ <version>${org.aspectj-version}</version>
+ </dependency>
+
+ <!-- Logging -->
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ <version>${org.slf4j-version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>jcl-over-slf4j</artifactId>
+ <version>${org.slf4j-version}</version>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ <version>${org.slf4j-version}</version>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ <version>1.2.16</version>
+ <scope>compile</scope>
+ </dependency>
+
+ <!-- @Inject -->
+ <dependency>
+ <groupId>javax.inject</groupId>
+ <artifactId>javax.inject</artifactId>
+ <version>1</version>
+ </dependency>
+
+ <!-- Servlet -->
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ <version>2.5</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.servlet.jsp</groupId>
+ <artifactId>jsp-api</artifactId>
+ <version>2.1</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>jstl</artifactId>
+ <version>1.2</version>
+ </dependency>
+
+ <!-- Jackson JSON Processor -->
+ <dependency>
+ <groupId>org.codehaus.jackson</groupId>
+ <artifactId>jackson-mapper-asl</artifactId>
+ <version>${jackson-version}</version>
+ </dependency>
+
+
+ <!-- JSR 303 with Hibernate Validator -->
+ <dependency>
+ <groupId>javax.validation</groupId>
+ <artifactId>validation-api</artifactId>
+ <version>1.0.0.GA</version>
+ </dependency>
+
+
+ <dependency>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ <version>2.0.1</version>
+ </dependency>
+
+ <dependency>
+ <groupId>commons-configuration</groupId>
+ <artifactId>commons-configuration</artifactId>
+ <version>1.6</version>
+ </dependency>
+
+
+ <!-- Google Map API -->
+ <dependency>
+ <groupId>com.google.maps</groupId>
+ <artifactId>google-maps-services</artifactId>
+ <version>${google-client-maps-services-version}</version>
+ </dependency>
+
+
+
+ <!-- Test dependencies -->
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>${junit.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-test</artifactId>
+ <version>${org.springframework-version}</version>
+ <scope>test</scope>
+ </dependency>
+
+ <!-- Rules engine -->
+ <dependency>
+ <groupId>org.drools</groupId>
+ <artifactId>drools-spring</artifactId>
+ <version>${sm-core.drools.version}</version>
+ </dependency>
+
+
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>2.3.2</version>
+ <configuration>
+ <source>${java-version}</source>
+ <target>${java-version}</target>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>2.12</version>
+ <configuration>
+ <skipTests>true</skipTests>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+
+ <scm>
+ <connection>scm:svn:http://svn.sonatype.org/spice/tags/shopizer-shipping-distance-processor-2.0.3</connection>
+ <developerConnection>scm:svn:https://svn.sonatype.org/spice/tags/shopizer-shipping-distance-processor-2.0.3</developerConnection>
+ <url>http://svn.sonatype.org/spice/tags/shopizer-shipping-distance-processor-2.0.3</url>
+ </scm>
+</project>
\ No newline at end of file
diff --git a/shopizer-shipping-distance-module/target/maven-archiver/pom.properties b/shopizer-shipping-distance-module/target/maven-archiver/pom.properties
new file mode 100644
index 0000000..705688e
--- /dev/null
+++ b/shopizer-shipping-distance-module/target/maven-archiver/pom.properties
@@ -0,0 +1,5 @@
+#Generated by Maven
+#Thu Sep 29 12:15:45 EDT 2016
+version=2.5.0-SNAPSHOT
+groupId=com.shopizer
+artifactId=shopizer-shipping-distance-processor
diff --git a/shopizer-shipping-distance-module/target/shopizer-shipping-distance-processor-2.5.0-SNAPSHOT.jar b/shopizer-shipping-distance-module/target/shopizer-shipping-distance-processor-2.5.0-SNAPSHOT.jar
new file mode 100644
index 0000000..64978a6
Binary files /dev/null and b/shopizer-shipping-distance-module/target/shopizer-shipping-distance-processor-2.5.0-SNAPSHOT.jar differ
diff --git a/shopizer-shipping-distance-module/target/test-classes/com/shopizer/modules/shipping/distance/test/ShippingDistanceProcessorTestCase.class b/shopizer-shipping-distance-module/target/test-classes/com/shopizer/modules/shipping/distance/test/ShippingDistanceProcessorTestCase.class
new file mode 100644
index 0000000..10fee3e
Binary files /dev/null and b/shopizer-shipping-distance-module/target/test-classes/com/shopizer/modules/shipping/distance/test/ShippingDistanceProcessorTestCase.class differ
diff --git a/shopizer-shipping-distance-module/target/test-classes/spring/processors/shopizer-core-shipping-processors.xml b/shopizer-shipping-distance-module/target/test-classes/spring/processors/shopizer-core-shipping-processors.xml
new file mode 100644
index 0000000..15147f6
--- /dev/null
+++ b/shopizer-shipping-distance-module/target/test-classes/spring/processors/shopizer-core-shipping-processors.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:util="http://www.springframework.org/schema/util"
+ xsi:schemaLocation="
+ http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+ http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">
+
+
+ <!-- shipping-distance-processor project -->
+ <bean id="shippingDistancePreProcessor"
+ class="com.shopizer.modules.shipping.distance.ShippingDistancePreProcessorImpl">
+ <!-- google distance API key -->
+ <property name="apiKey" value="[your API key]"/>
+ <property name="allowedZonesCodes" ref="acceptedZones"/>
+ </bean>
+
+
+ <util:list id="acceptedZones" value-type="java.lang.String">
+ <value>QC</value>
+ </util:list>
+
+
+</beans>
\ No newline at end of file
diff --git a/shopizer-shipping-distance-module/target/test-classes/spring/spring-context-test.xml b/shopizer-shipping-distance-module/target/test-classes/spring/spring-context-test.xml
new file mode 100644
index 0000000..817beb2
--- /dev/null
+++ b/shopizer-shipping-distance-module/target/test-classes/spring/spring-context-test.xml
@@ -0,0 +1,21 @@
+<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:aop="http://www.springframework.org/schema/aop"
+ xmlns:context="http://www.springframework.org/schema/context" xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:task="http://www.springframework.org/schema/task"
+ xmlns:util="http://www.springframework.org/schema/util"
+ xsi:schemaLocation="
+ http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
+ http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+ http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
+ http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee.xsd
+ http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
+ http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task.xsd
+ http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">
+
+ <context:annotation-config />
+ <context:component-scan base-package="com.shopizer" />
+
+
+ <!-- pre-processors -->
+ <import resource="classpath:/spring/processors/shopizer-core-shipping-processors.xml" />
+
+
+</beans>
\ No newline at end of file
sm-core/.classpath 36(+36 -0)
diff --git a/sm-core/.classpath b/sm-core/.classpath
new file mode 100644
index 0000000..fc5f96c
--- /dev/null
+++ b/sm-core/.classpath
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" output="target/classes" path="src/main/java">
+ <attributes>
+ <attribute name="optional" value="true"/>
+ <attribute name="maven.pomderived" value="true"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
+ <attributes>
+ <attribute name="maven.pomderived" value="true"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="src" output="target/test-classes" path="src/test/java">
+ <attributes>
+ <attribute name="optional" value="true"/>
+ <attribute name="maven.pomderived" value="true"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources">
+ <attributes>
+ <attribute name="maven.pomderived" value="true"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
+ <attributes>
+ <attribute name="maven.pomderived" value="true"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
+ <attributes>
+ <attribute name="maven.pomderived" value="true"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="output" path="target/classes"/>
+</classpath>
sm-core/.project 29(+29 -0)
diff --git a/sm-core/.project b/sm-core/.project
new file mode 100644
index 0000000..e8eaab5
--- /dev/null
+++ b/sm-core/.project
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>sm-core</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.wst.common.project.facet.core.builder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.m2e.core.maven2Builder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.m2e.core.maven2Nature</nature>
+ <nature>org.eclipse.wst.common.project.facet.core.nature</nature>
+ </natures>
+</projectDescription>
diff --git a/sm-core/.settings/org.eclipse.core.resources.prefs b/sm-core/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..04cfa2c
--- /dev/null
+++ b/sm-core/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,6 @@
+eclipse.preferences.version=1
+encoding//src/main/java=UTF-8
+encoding//src/main/resources=UTF-8
+encoding//src/test/java=UTF-8
+encoding//src/test/resources=UTF-8
+encoding/<project>=UTF-8
diff --git a/sm-core/.settings/org.eclipse.jdt.core.prefs b/sm-core/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..1ab2bb5
--- /dev/null
+++ b/sm-core/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,8 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/sm-core/.settings/org.eclipse.m2e.core.prefs b/sm-core/.settings/org.eclipse.m2e.core.prefs
new file mode 100644
index 0000000..41475ee
--- /dev/null
+++ b/sm-core/.settings/org.eclipse.m2e.core.prefs
@@ -0,0 +1,4 @@
+activeProfiles=
+eclipse.preferences.version=1
+resolveWorkspaceProjects=false
+version=1
diff --git a/sm-core/.settings/org.eclipse.wst.common.project.facet.core.xml b/sm-core/.settings/org.eclipse.wst.common.project.facet.core.xml
new file mode 100644
index 0000000..017b6f4
--- /dev/null
+++ b/sm-core/.settings/org.eclipse.wst.common.project.facet.core.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<faceted-project>
+ <installed facet="java" version="1.8"/>
+</faceted-project>
diff --git a/sm-core/files/repos/FilesRepository.dat b/sm-core/files/repos/FilesRepository.dat
new file mode 100644
index 0000000..b2476e0
Binary files /dev/null and b/sm-core/files/repos/FilesRepository.dat differ
diff --git a/sm-core/files/store/StoreRepository.dat b/sm-core/files/store/StoreRepository.dat
new file mode 100644
index 0000000..8da2fe1
Binary files /dev/null and b/sm-core/files/store/StoreRepository.dat differ
sm-core/pom.xml 948(+221 -727)
diff --git a/sm-core/pom.xml b/sm-core/pom.xml
old mode 100755
new mode 100644
index 1741c80..6f16889
--- a/sm-core/pom.xml
+++ b/sm-core/pom.xml
@@ -1,727 +1,221 @@
-<?xml version="1.0"?>
-<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
- <modelVersion>4.0.0</modelVersion>
-
- <parent>
- <groupId>com.shopizer</groupId>
- <artifactId>shopizer</artifactId>
- <version>2.0.3-SNAPSHOT</version>
- </parent>
-
- <artifactId>sm-core</artifactId>
- <!--<version>${sm-core.version}</version>-->
- <packaging>jar</packaging>
-
- <name>sm-core</name>
- <url>http://www.shopizer.com</url>
-
- <properties>
-
-
- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-
- <jackson-version>1.9.13</jackson-version>
- <axis-version>1.4</axis-version>
- <jaxws.api.version>2.1</jaxws.api.version>
- <jaxws.version>2.1.4</jaxws.version>
- <jsr181.version>1.0-MR1</jsr181.version>
- <jsr250.version>1.0</jsr250.version>
- <io.searchbox.jest-version>0.1.5</io.searchbox.jest-version>
- <guava.version>18.0</guava.version>
- <gson.version>2.3.1</gson.version>
-
- <jasperreports-version>3.7.4</jasperreports-version>
- <infinispan.version>5.3.0.Final</infinispan.version>
- <freemarker.version>2.3.19</freemarker.version>
- <org.slf4j-version>1.6.6</org.slf4j-version>
- <hibernate.ehcache.version>3.5.1-Final</hibernate.ehcache.version>
- <sm-core.drools.version>5.6.0.Final</sm-core.drools.version>
- <sm-core.hibernate-entitymanager-version>4.1.2</sm-core.hibernate-entitymanager-version>
- <sm-core.aspectj.version>1.5.4</sm-core.aspectj.version>
- <sm-core.mysql-connector-java>5.1.31</sm-core.mysql-connector-java>
- <sm-core.junit.version>4.9</sm-core.junit.version>
- <sm-core.org.springframework.version>3.2.16.RELEASE</sm-core.org.springframework.version>
- <sm-core.c3p0.version>0.9.1.2</sm-core.c3p0.version>
- <sm-core.querydsl.version>3.4.2</sm-core.querydsl.version>
- <sm-core.jodatime.version>2.0</sm-core.jodatime.version>
- <sm-core.jodatime-hibernate.version>1.3</sm-core.jodatime-hibernate.version>
- <sm-core.javassist.version>3.3</sm-core.javassist.version>
- </properties>
-
- <dependencies>
-
-
- <!-- sm-core-model -->
- <dependency>
- <groupId>com.shopizer</groupId>
- <artifactId>sm-core-model</artifactId>
- <version>${sm-core-model.version}</version>
- </dependency>
-
- <!-- sm-core-modules -->
- <dependency>
- <groupId>com.shopizer</groupId>
- <artifactId>sm-core-modules</artifactId>
- <version>${sm-core-modules.version}</version>
- </dependency>
-
- <!-- sm-search -->
- <dependency>
- <groupId>com.shopizer</groupId>
- <artifactId>sm-search</artifactId>
- <version>${sm-search.version}</version>
- </dependency>
-
- <!-- shipping rules -->
- <!-- shipping distance pre-processor -->
- <dependency>
- <groupId>com.shopizer</groupId>
- <artifactId>shopizer-shipping-distance-processor</artifactId>
- <version>${sm-shipping-distance-processor.version}</version>
- </dependency>
-
- <!-- canadapost -->
- <dependency>
- <groupId>com.shopizer</groupId>
- <artifactId>shopizer-shipping-canadapost-module</artifactId>
- <version>0.0.1</version>
- </dependency>
-
- <!-- Loggers -->
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-log4j12</artifactId>
- <version>${org.slf4j-version}</version>
- </dependency>
-
- <!-- required for query dsl 3 -->
- <dependency>
- <groupId>cglib</groupId>
- <artifactId>cglib</artifactId>
- <version>2.2</version>
- </dependency>
-
- <!-- Hibernate -->
- <dependency>
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-core</artifactId>
- <version>${sm-core.hibernate-entitymanager-version}</version>
- <exclusions>
- <exclusion>
- <artifactId>javassist</artifactId>
- <groupId>org.javassist</groupId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-entitymanager</artifactId>
- <version>${sm-core.hibernate-entitymanager-version}</version>
- <exclusions>
- <exclusion>
- <groupId>asm</groupId>
- <artifactId>asm</artifactId>
- </exclusion>
- <exclusion>
- <groupId>asm</groupId>
- <artifactId>asm-attrs</artifactId>
- </exclusion>
- <exclusion>
- <groupId>cglib</groupId>
- <artifactId>cglib</artifactId>
- </exclusion>
- <exclusion>
- <artifactId>javassist</artifactId>
- <groupId>javassist</groupId>
- </exclusion>
- <exclusion>
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-core</artifactId>
- </exclusion>
- <exclusion>
- <artifactId>javassist</artifactId>
- <groupId>org.javassist</groupId>
- </exclusion>
- </exclusions>
- </dependency>
-
- <!-- Hibernate ehcache -->
- <dependency>
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-ehcache</artifactId>
- <version>${hibernate.ehcache.version}</version>
- </dependency>
-
- <!-- Javassist -->
- <dependency>
- <groupId>javassist</groupId>
- <artifactId>javassist</artifactId>
- <version>${sm-core.javassist.version}</version>
- </dependency>
-
- <!-- QueryDsl -->
- <dependency>
- <groupId>com.mysema.querydsl</groupId>
- <artifactId>querydsl-apt</artifactId>
- <version>${sm-core.querydsl.version}</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>com.mysema.querydsl</groupId>
- <artifactId>querydsl-core</artifactId>
- <version>${sm-core.querydsl.version}</version>
- </dependency>
- <dependency>
- <groupId>com.mysema.querydsl</groupId>
- <artifactId>querydsl-jpa</artifactId>
- <version>${sm-core.querydsl.version}</version>
- </dependency>
-
- <!-- Pool c3p0 -->
- <dependency>
- <groupId>c3p0</groupId>
- <artifactId>c3p0</artifactId>
- <version>${sm-core.c3p0.version}</version>
- </dependency>
-
- <!-- Spring -->
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-aop</artifactId>
- <version>${sm-core.org.springframework.version}</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-aspects</artifactId>
- <version>${sm-core.org.springframework.version}</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-beans</artifactId>
- <version>${sm-core.org.springframework.version}</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-context</artifactId>
- <version>${sm-core.org.springframework.version}</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-core</artifactId>
- <version>${sm-core.org.springframework.version}</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-expression</artifactId>
- <version>${sm-core.org.springframework.version}</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-orm</artifactId>
- <version>${sm-core.org.springframework.version}</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-web</artifactId>
- <version>${sm-core.org.springframework.version}</version>
- </dependency>
-
- <!-- JSR 303 with Hibernate Validator -->
- <dependency>
- <groupId>javax.validation</groupId>
- <artifactId>validation-api</artifactId>
- <version>1.0.0.GA</version>
- </dependency>
- <dependency>
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-validator</artifactId>
- <version>4.3.0.Final</version>
- </dependency>
-
- <!-- AspectJ -->
- <dependency>
- <groupId>aspectj</groupId>
- <artifactId>aspectjrt</artifactId>
- <version>${sm-core.aspectj.version}</version>
- </dependency>
- <dependency>
- <groupId>aspectj</groupId>
- <artifactId>aspectjweaver</artifactId>
- <version>${sm-core.aspectj.version}</version>
- </dependency>
-
- <!-- Mysql Connector -->
- <dependency>
- <groupId>mysql</groupId>
- <artifactId>mysql-connector-java</artifactId>
- <version>${sm-core.mysql-connector-java}</version>
- </dependency>
-
- <!-- H2 Connector -->
- <dependency>
- <groupId>com.h2database</groupId>
- <artifactId>h2</artifactId>
- <version>1.3.152</version>
- </dependency>
-
-
- <!-- Jackson JSON Processor -->
- <dependency>
- <groupId>org.codehaus.jackson</groupId>
- <artifactId>jackson-mapper-asl</artifactId>
- <version>${jackson-version}</version>
- </dependency>
- <dependency>
- <groupId>com.googlecode.json-simple</groupId>
- <artifactId>json-simple</artifactId>
- <version>1.1.1</version>
- </dependency>
-
- <!-- File Upload -->
- <dependency>
- <groupId>commons-fileupload</groupId>
- <artifactId>commons-fileupload</artifactId>
- <version>1.2.2</version>
- </dependency>
- <dependency>
- <groupId>commons-io</groupId>
- <artifactId>commons-io</artifactId>
- <version>2.0.1</version>
- </dependency>
-
- <dependency>
- <groupId>commons-collections</groupId>
- <artifactId>commons-collections</artifactId>
- <version>3.2.2</version>
- </dependency>
-
- <!-- Apache common -->
- <dependency>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-lang3</artifactId>
- <version>3.0</version>
- </dependency>
-
- <dependency>
- <groupId>commons-validator</groupId>
- <artifactId>commons-validator</artifactId>
- <version>1.4.0</version>
- </dependency>
-
- <!-- Rules engine -->
- <dependency>
- <groupId>org.drools</groupId>
- <artifactId>drools-spring</artifactId>
- <version>${sm-core.drools.version}</version>
- </dependency>
-
-
- <dependency>
- <groupId>commons-lang</groupId>
- <artifactId>commons-lang</artifactId>
- <version>2.6</version>
- </dependency>
-
-
- <dependency>
- <groupId>commons-httpclient</groupId>
- <artifactId>commons-httpclient</artifactId>
- <version>3.1</version>
- </dependency>
-
-
-
- <!-- JodaTime -->
- <dependency>
- <groupId>joda-time</groupId>
- <artifactId>joda-time</artifactId>
- <version>${sm-core.jodatime.version}</version>
- </dependency>
- <dependency>
- <groupId>org.jadira.usertype</groupId>
- <artifactId>usertype.core</artifactId>
- <version>3.0.0.CR1</version>
- </dependency>
-
-
- <!-- Infinispan -->
- <dependency>
- <groupId>org.infinispan</groupId>
- <artifactId>infinispan-core</artifactId>
- <version>${infinispan.version}</version>
- </dependency>
-
- <dependency>
- <groupId>org.infinispan</groupId>
- <artifactId>infinispan-cachestore-jdbc</artifactId>
- <version>${infinispan.version}</version>
- </dependency>
-
- <dependency>
- <groupId>org.infinispan</groupId>
- <artifactId>infinispan-tree</artifactId>
- <version>${infinispan.version}</version>
- </dependency>
-
- <dependency>
- <groupId>org.freemarker</groupId>
- <artifactId>freemarker</artifactId>
- <version>${freemarker.version}</version>
- </dependency>
-
- <dependency>
- <groupId>javax.mail</groupId>
- <artifactId>mail</artifactId>
- <version>1.4.5</version>
- </dependency>
-
-
- <dependency>
- <groupId>org.jopendocument</groupId>
- <artifactId>jOpenDocument</artifactId>
- <version>1.3b1</version>
- </dependency>
-
- <!--
- <dependency>
- <groupId>com.lowagie</groupId>
- <artifactId>itext</artifactId>
- <version>4.2.1</version>
- </dependency>
- -->
-
-
- <dependency>
- <groupId>com.itextpdf</groupId>
- <artifactId>itextpdf</artifactId>
- <version>5.5.6</version>
- </dependency>
-
-
- <!-- integration -->
- <!--
- <dependency>
- <groupId>com.paypal.sdk</groupId>
- <artifactId>rest-api-sdk</artifactId>
- <version>0.7.1</version>
- </dependency>
- -->
-
- <dependency>
- <groupId>com.paypal.sdk</groupId>
- <artifactId>merchantsdk</artifactId>
- <version>2.6.109</version>
- </dependency>
-
- <dependency>
- <groupId>com.maxmind.geoip2</groupId>
- <artifactId>geoip2</artifactId>
- <version>0.7.0</version>
- </dependency>
-
- <!-- search -->
- <dependency>
- <groupId>io.searchbox</groupId>
- <artifactId>jest</artifactId>
- <version>${io.searchbox.jest-version}</version>
- </dependency>
-
- <dependency>
- <groupId>com.google.guava</groupId>
- <artifactId>guava</artifactId>
- <version>${guava.version}</version>
- </dependency>
-
- <dependency>
- <groupId>com.google.code.gson</groupId>
- <artifactId>gson</artifactId>
- <version>${gson.version}</version>
- </dependency>
-
- <!-- Test dependencies -->
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>${sm-core.junit.version}</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-test</artifactId>
- <version>${sm-core.org.springframework.version}</version>
- <scope>test</scope>
- </dependency>
-
- <!-- <dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc5</artifactId>
- <version>11.1.0.7.0</version> <scope>provided</scope> </dependency> -->
- </dependencies>
-
- <repositories>
- <!-- For testing against latest Spring snapshots -->
- <repository>
- <id>org.springframework.maven.snapshot</id>
- <name>Spring Maven Snapshot Repository</name>
- <url>http://maven.springframework.org/snapshot</url>
- <releases><enabled>false</enabled></releases>
- <snapshots><enabled>true</enabled></snapshots>
- </repository>
- <!-- For developing against latest Spring milestones -->
- <repository>
- <id>org.springframework.maven.milestone</id>
- <name>Spring Maven Milestone Repository</name>
- <url>http://maven.springframework.org/milestone</url>
- <snapshots><enabled>false</enabled></snapshots>
- </repository>
- <repository>
- <id>org.jboss.repository.releases</id>
- <name>JBoss Maven Release Repository</name>
- <url>https://repository.jboss.org/nexus/content/repositories/releases</url>
- <snapshots><enabled>false</enabled></snapshots>
- </repository>
- </repositories>
-
- <build>
- <!--
- Annotation processor to be generated in target/generated-sources
- The build will generate the required annotated classes in generated-sources
- Then will jump to the regular build in pluginManagement
-
- mvn clean
- mvn install
-
- ** if the install phase complains on missing Qxyz classes then
-
- mvn clean
- mvn generate-sources
- mvn install
-
- *** Want to have the schema generated
-
- ** hbm2ddl not working
- mvn hibernate3:hbm2ddl
-
- -->
- <plugins>
- <!--
- <plugin>
- <groupId>org.bsc.maven</groupId>
- <artifactId>maven-processor-plugin</artifactId>
- <executions>
- <execution>
- <goals>
- <goal>process</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>com.mysema.maven</groupId>
- <artifactId>maven-apt-plugin</artifactId>
- <executions>
- <execution>
- <goals>
- <goal>process</goal>
- </goals>
- <configuration>
- <outputDirectory>target/generated-sources/querydsl</outputDirectory>
- <processor>com.mysema.query.apt.jpa.JPAAnnotationProcessor</processor>
- </configuration>
- </execution>
- </executions>
- </plugin>
- -->
- </plugins>
- <pluginManagement>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <version>3.2</version>
- <configuration>
- <source>${jdk-version}</source>
- <target>${jdk-version}</target>
- <encoding>${project.build.sourceEncoding}</encoding>
- <compilerArgument>-proc:none</compilerArgument>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
- <version>2.12</version>
- <configuration>
- <skipTests>true</skipTests>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-war-plugin</artifactId>
- <version>2.2</version>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-install-plugin</artifactId>
- <version>2.3.1</version>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-release-plugin</artifactId>
- <version>2.2.2</version>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-assembly-plugin</artifactId>
- <version>2.3</version>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-source-plugin</artifactId>
- <executions>
- <execution>
- <id>attach-sources</id>
- <goals>
- <goal>jar</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- <!--
- <plugin>
- <groupId>org.bsc.maven</groupId>
- <artifactId>maven-processor-plugin</artifactId>
- <version>2.0.5</version>
- <configuration>
- <outputDirectory>target/generated-sources</outputDirectory>
- <options>
- <fullyAnnotationConfigured>true</fullyAnnotationConfigured>
- <addSuppressWarningsAnnotation>true</addSuppressWarningsAnnotation>
- </options>
- </configuration>
- <executions>
- <execution>
- <id>process</id>
- <goals>
- <goal>process</goal>
- </goals>
- <phase>generate-sources</phase>
- </execution>
- </executions>
- </plugin>
- -->
- <!--
- <plugin>
- <groupId>org.bsc.maven</groupId>
- <artifactId>maven-processor-plugin</artifactId>
- <executions>
- <execution>
- <id>process</id>
- <goals>
- <goal>process</goal>
- </goals>
- <phase>generate-sources</phase>
- <configuration>
- <options>
- <fullyAnnotationConfigured>true</fullyAnnotationConfigured>
- <addSuppressWarningsAnnotation>true</addSuppressWarningsAnnotation>
- </options>
- </configuration>
- </execution>
- </executions>
- <dependencies>
- <dependency>
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-jpamodelgen</artifactId>
- <version>${sm-core.hibernate-jpamodelgen.version}</version>
- </dependency>
- </dependencies>
- </plugin>
- -->
- <!--
- <plugin>
- <groupId>com.mysema.maven</groupId>
- <artifactId>maven-apt-plugin</artifactId>
- <version>1.0.2</version>
- <configuration>
- <outputDirectory>target/generated-sources/querydsl</outputDirectory>
- </configuration>
- <executions>
- <execution>
- <goals>
- <goal>process</goal>
- </goals>
- <configuration>
- <processor>com.mysema.query.apt.jpa.JPAAnnotationProcessor</processor>
- </configuration>
- </execution>
- </executions>
- <dependencies>
- <dependency>
- <groupId>com.mysema.querydsl</groupId>
- <artifactId>querydsl-apt</artifactId>
- <version>${sm-core.querydsl.version}</version>
- </dependency>
- </dependencies>
- </plugin>
- -->
- <!-- hbm2ddl Hibernate entities to schema -->
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>hibernate3-maven-plugin</artifactId>
- <version>2.2</version><!-- 2.2 -->
- <executions>
- <execution>
- <phase>process-classes</phase>
- <goals>
- <goal>hbm2ddl</goal>
- </goals>
- </execution>
- </executions>
- <configuration>
- <components>
- <component>
- <name>hbm2ddl</name>
- <implementation>jpaconfiguration</implementation>
- </component>
- </components>
- <componentProperties>
- <persistenceunit>sm-unit</persistenceunit>
- <!--<propertyfile>src/test/resources/hbm2ddl.properties</propertyfile>-->
- <outputfilename>schema.ddl</outputfilename>
- <drop>false</drop>
- <create>true</create>
- <export>false</export>
- <format>true</format>
- </componentProperties>
- </configuration>
- </plugin>
- <!--This plugin's configuration is used to store Eclipse m2e settings
- only. It has no influence on the Maven build itself. -->
- <plugin>
- <groupId>org.eclipse.m2e</groupId>
- <artifactId>lifecycle-mapping</artifactId>
- <version>1.0.0</version>
- <configuration>
- <lifecycleMappingMetadata>
- <pluginExecutions>
- <pluginExecution>
- <pluginExecutionFilter>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>aspectj-maven-plugin</artifactId>
- <versionRange>[1.0,)</versionRange>
- <goals>
- <goal>test-compile</goal>
- <goal>compile</goal>
- </goals>
- </pluginExecutionFilter>
- <action>
- <execute />
- </action>
- </pluginExecution>
- </pluginExecutions>
- </lifecycleMappingMetadata>
- </configuration>
- </plugin>
- </plugins>
- </pluginManagement>
- </build>
-</project>
+<?xml version="1.0"?>
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>com.shopizer</groupId>
+ <artifactId>shopizer</artifactId>
+ <version>2.5.0-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>sm-core</artifactId>
+ <packaging>jar</packaging>
+
+ <name>sm-core</name>
+ <url>http://www.shopizer.com</url>
+
+ <properties>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+
+ <!-- testing properties -->
+ <!--<dbh2.version>1.4.187</dbh2.version>-->
+ <geoip2.version>2.7.0</geoip2.version>
+ <javax.inject.version>1</javax.inject.version>
+ <javax.el.version>2.2.4</javax.el.version>
+ <drools.version>5.6.0.Final</drools.version>
+ </properties>
+
+ <dependencies>
+
+ <!-- sm-core-model -->
+ <dependency>
+ <groupId>com.shopizer</groupId>
+ <artifactId>sm-core-model</artifactId>
+ <version>${shopizer.version}</version>
+ </dependency>
+
+
+ <!-- sm-core-modules -->
+ <dependency>
+ <groupId>com.shopizer</groupId>
+ <artifactId>sm-core-modules</artifactId>
+ <version>${shopizer.version}</version>
+ </dependency>
+
+ <!-- sm-search -->
+ <dependency>
+ <groupId>com.shopizer</groupId>
+ <artifactId>sm-search</artifactId>
+ <version>${shopizer.search.version}</version>
+ </dependency>
+
+ <!-- shipping rules -->
+ <!-- shipping distance pre-processor -->
+ <dependency>
+ <groupId>com.shopizer</groupId>
+ <artifactId>shopizer-shipping-distance-processor</artifactId>
+ <version>${shopizer-shipping-distance.version}</version>
+ </dependency>
+
+ <!-- canadapost -->
+ <dependency>
+ <groupId>com.shopizer</groupId>
+ <artifactId>shopizer-shipping-canadapost-module</artifactId>
+ <version>${shopizer-canadapost.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>javax.el</groupId>
+ <artifactId>javax.el-api</artifactId>
+ <version>${javax.el.version}</version>
+ </dependency>
+
+ <!-- Rules engine -->
+ <dependency>
+ <groupId>org.drools</groupId>
+ <artifactId>drools-spring</artifactId>
+ <version>${drools.version}</version>
+ </dependency>
+
+
+ <!-- Infinispan -->
+ <dependency>
+ <groupId>org.infinispan</groupId>
+ <artifactId>infinispan-core</artifactId>
+ <version>${infinispan.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.infinispan</groupId>
+ <artifactId>infinispan-cachestore-jdbc</artifactId>
+ <version>${infinispan.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.infinispan</groupId>
+ <artifactId>infinispan-tree</artifactId>
+ <version>${infinispan.version}</version>
+ </dependency>
+
+ <!-- tests dependencies -->
+ <!-- http://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-test -->
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-test</artifactId>
+ </dependency>
+ <!-- H2 DB -->
+ <dependency>
+ <groupId>com.h2database</groupId>
+ <artifactId>h2</artifactId>
+ <!--<version>${dbh2.version}</version>-->
+ </dependency>
+
+ <!-- https://mvnrepository.com/artifact/javax.inject/javax.inject -->
+ <dependency>
+ <groupId>javax.inject</groupId>
+ <artifactId>javax.inject</artifactId>
+ <version>${javax.inject.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>javax.validation</groupId>
+ <artifactId>validation-api</artifactId>
+ <version>1.1.0.Final</version>
+ </dependency>
+
+ <!-- https://mvnrepository.com/artifact/net.sf.ehcache/ehcache -->
+ <dependency>
+ <groupId>net.sf.ehcache</groupId>
+ <artifactId>ehcache</artifactId>
+ </dependency>
+
+
+ <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
+ <dependency>
+ <groupId>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-core</artifactId>
+ </dependency>
+
+ <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-collections4 -->
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-collections4</artifactId>
+ <version>${commons-collections4.version}</version>
+ </dependency>
+
+ <!-- https://mvnrepository.com/artifact/commons-validator/commons-validator -->
+ <dependency>
+ <groupId>commons-validator</groupId>
+ <artifactId>commons-validator</artifactId>
+ <version>${commons-validator.version}</version>
+ </dependency>
+
+
+ <!-- https://mvnrepository.com/artifact/org.freemarker/freemarker -->
+ <dependency>
+ <groupId>org.freemarker</groupId>
+ <artifactId>freemarker</artifactId>
+ </dependency>
+
+ <!-- https://mvnrepository.com/artifact/javax.mail/javax.mail-api -->
+ <dependency>
+ <groupId>javax.mail</groupId>
+ <artifactId>javax.mail-api</artifactId>
+ </dependency>
+
+ <!-- https://mvnrepository.com/artifact/org.springframework/spring-context-support -->
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-context-support</artifactId>
+ </dependency>
+
+ <!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient -->
+ <dependency>
+ <groupId>org.apache.httpcomponents</groupId>
+ <artifactId>httpclient</artifactId>
+ <version>${org.apache.httpcomponent.version}</version>
+ </dependency>
+
+
+ <!-- Payment dependencies -->
+ <dependency>
+ <groupId>com.paypal.sdk</groupId>
+ <artifactId>merchantsdk</artifactId>
+ <version>2.6.109</version>
+ </dependency>
+
+
+ <dependency>
+ <groupId>com.stripe</groupId>
+ <artifactId>stripe-java</artifactId>
+ <version>1.33.0</version>
+ </dependency>
+
+ <!-- Invoices -->
+ <dependency>
+ <groupId>com.itextpdf</groupId>
+ <artifactId>itextpdf</artifactId>
+ <version>5.5.6</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jopendocument</groupId>
+ <artifactId>jOpenDocument</artifactId>
+ <version>1.3b1</version>
+ </dependency>
+
+ <!-- https://mvnrepository.com/artifact/com.maxmind.geoip2/geoip2 -->
+ <dependency>
+ <groupId>com.maxmind.geoip2</groupId>
+ <artifactId>geoip2</artifactId>
+ <version>${geoip2.version}</version>
+ </dependency>
+
+ </dependencies>
+
+
+
+
+
+</project>
sm-core/SALESMANAGER-TEST.h2.db 0(+0 -0)
diff --git a/sm-core/SALESMANAGER-TEST.h2.db b/sm-core/SALESMANAGER-TEST.h2.db
new file mode 100644
index 0000000..9f1f157
Binary files /dev/null and b/sm-core/SALESMANAGER-TEST.h2.db differ
sm-core/SALESMANAGER-TEST.trace.db 1014(+1014 -0)
diff --git a/sm-core/SALESMANAGER-TEST.trace.db b/sm-core/SALESMANAGER-TEST.trace.db
new file mode 100644
index 0000000..33ff317
--- /dev/null
+++ b/sm-core/SALESMANAGER-TEST.trace.db
@@ -0,0 +1,1014 @@
+10-18 14:47:03 jdbc[3]: exception
+org.h2.jdbc.JdbcSQLException: The object is already closed [90007-176]
+10-18 14:47:03 jdbc[3]: exception
+org.h2.jdbc.JdbcSQLException: The object is already closed [90007-176]
+10-18 14:47:03 jdbc[3]: exception
+org.h2.jdbc.JdbcSQLException: The object is already closed [90007-176]
+2016-10-19 09:10:56 database: close
+org.h2.message.DbException: File corrupted while reading record: "index not found 321". Possible solution: use the recovery tool [90030-191]
+ at org.h2.message.DbException.get(DbException.java:179)
+ at org.h2.message.DbException.get(DbException.java:155)
+ at org.h2.store.PageStore.getPage(PageStore.java:813)
+ at org.h2.store.PageStore.compact(PageStore.java:710)
+ at org.h2.store.PageStore.compact(PageStore.java:538)
+ at org.h2.engine.Database.closeOpenFilesAndUnlock(Database.java:1356)
+ at org.h2.engine.Database.close(Database.java:1286)
+ at org.h2.engine.Database.removeSession(Database.java:1170)
+ at org.h2.engine.Session.close(Session.java:815)
+ at org.h2.jdbc.JdbcConnection.close(JdbcConnection.java:383)
+ at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.closeConnection(DatasourceConnectionProviderImpl.java:144)
+ at org.hibernate.tool.hbm2ddl.SuppliedConnectionProviderConnectionHelper.release(SuppliedConnectionProviderConnectionHelper.java:75)
+ at org.hibernate.tool.hbm2ddl.DatabaseExporter.release(DatabaseExporter.java:82)
+ at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:392)
+ at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:305)
+ at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:294)
+ at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:517)
+ at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1859)
+ at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:857)
+ at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:850)
+ at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.withTccl(ClassLoaderServiceImpl.java:425)
+ at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:849)
+ at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:60)
+ at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:343)
+ at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:319)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1637)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
+ at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
+ at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
+ at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
+ at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
+ at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1054)
+ at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:829)
+ at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:538)
+ at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:766)
+ at org.springframework.boot.SpringApplication.createAndRefreshContext(SpringApplication.java:361)
+ at org.springframework.boot.SpringApplication.run(SpringApplication.java:307)
+ at org.springframework.boot.test.SpringApplicationContextLoader.loadContext(SpringApplicationContextLoader.java:98)
+ at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:98)
+ at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:116)
+ at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:83)
+ at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:117)
+ at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:83)
+ at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:228)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:230)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:289)
+ at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:291)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:249)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:89)
+ at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
+ at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
+ at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
+ at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
+ at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
+ at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
+ at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
+ at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:193)
+ at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
+ at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
+ at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
+ at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678)
+ at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
+ at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
+Caused by: org.h2.jdbc.JdbcSQLException: File corrupted while reading record: "index not found 321". Possible solution: use the recovery tool [90030-191]
+ at org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
+ ... 67 more
+2016-10-19 09:18:25 database: close
+org.h2.message.DbException: File corrupted while reading record: "index not found 321". Possible solution: use the recovery tool [90030-191]
+ at org.h2.message.DbException.get(DbException.java:179)
+ at org.h2.message.DbException.get(DbException.java:155)
+ at org.h2.store.PageStore.getPage(PageStore.java:813)
+ at org.h2.store.PageStore.compact(PageStore.java:710)
+ at org.h2.store.PageStore.compact(PageStore.java:538)
+ at org.h2.engine.Database.closeOpenFilesAndUnlock(Database.java:1356)
+ at org.h2.engine.Database.close(Database.java:1286)
+ at org.h2.engine.Database.removeSession(Database.java:1170)
+ at org.h2.engine.Session.close(Session.java:815)
+ at org.h2.jdbc.JdbcConnection.close(JdbcConnection.java:383)
+ at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.closeConnection(DatasourceConnectionProviderImpl.java:144)
+ at org.hibernate.tool.hbm2ddl.SuppliedConnectionProviderConnectionHelper.release(SuppliedConnectionProviderConnectionHelper.java:75)
+ at org.hibernate.tool.hbm2ddl.DatabaseExporter.release(DatabaseExporter.java:82)
+ at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:392)
+ at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:305)
+ at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:294)
+ at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:517)
+ at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1859)
+ at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:857)
+ at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:850)
+ at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.withTccl(ClassLoaderServiceImpl.java:425)
+ at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:849)
+ at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:60)
+ at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:343)
+ at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:319)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1637)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
+ at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
+ at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
+ at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
+ at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
+ at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1054)
+ at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:829)
+ at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:538)
+ at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:766)
+ at org.springframework.boot.SpringApplication.createAndRefreshContext(SpringApplication.java:361)
+ at org.springframework.boot.SpringApplication.run(SpringApplication.java:307)
+ at org.springframework.boot.test.SpringApplicationContextLoader.loadContext(SpringApplicationContextLoader.java:98)
+ at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:98)
+ at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:116)
+ at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:83)
+ at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:117)
+ at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:83)
+ at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:228)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:230)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:289)
+ at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:291)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:249)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:89)
+ at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
+ at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
+ at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
+ at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
+ at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
+ at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
+ at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
+ at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:193)
+ at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
+ at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
+ at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
+ at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678)
+ at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
+ at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
+Caused by: org.h2.jdbc.JdbcSQLException: File corrupted while reading record: "index not found 321". Possible solution: use the recovery tool [90030-191]
+ at org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
+ ... 67 more
+2016-10-19 09:22:53 database: close
+org.h2.message.DbException: File corrupted while reading record: "index not found 321". Possible solution: use the recovery tool [90030-191]
+ at org.h2.message.DbException.get(DbException.java:179)
+ at org.h2.message.DbException.get(DbException.java:155)
+ at org.h2.store.PageStore.getPage(PageStore.java:813)
+ at org.h2.store.PageStore.compact(PageStore.java:710)
+ at org.h2.store.PageStore.compact(PageStore.java:538)
+ at org.h2.engine.Database.closeOpenFilesAndUnlock(Database.java:1356)
+ at org.h2.engine.Database.close(Database.java:1286)
+ at org.h2.engine.Database.removeSession(Database.java:1170)
+ at org.h2.engine.Session.close(Session.java:815)
+ at org.h2.jdbc.JdbcConnection.close(JdbcConnection.java:383)
+ at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.closeConnection(DatasourceConnectionProviderImpl.java:144)
+ at org.hibernate.tool.hbm2ddl.SuppliedConnectionProviderConnectionHelper.release(SuppliedConnectionProviderConnectionHelper.java:75)
+ at org.hibernate.tool.hbm2ddl.DatabaseExporter.release(DatabaseExporter.java:82)
+ at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:392)
+ at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:305)
+ at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:294)
+ at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:517)
+ at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1859)
+ at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:857)
+ at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:850)
+ at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.withTccl(ClassLoaderServiceImpl.java:425)
+ at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:849)
+ at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:60)
+ at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:343)
+ at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:319)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1637)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
+ at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
+ at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
+ at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
+ at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
+ at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1054)
+ at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:829)
+ at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:538)
+ at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:766)
+ at org.springframework.boot.SpringApplication.createAndRefreshContext(SpringApplication.java:361)
+ at org.springframework.boot.SpringApplication.run(SpringApplication.java:307)
+ at org.springframework.boot.test.SpringApplicationContextLoader.loadContext(SpringApplicationContextLoader.java:98)
+ at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:98)
+ at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:116)
+ at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:83)
+ at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:117)
+ at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:83)
+ at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:228)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:230)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:289)
+ at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:291)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:249)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:89)
+ at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
+ at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
+ at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
+ at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
+ at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
+ at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
+ at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
+ at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:193)
+ at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
+ at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
+ at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
+ at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678)
+ at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
+ at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
+Caused by: org.h2.jdbc.JdbcSQLException: File corrupted while reading record: "index not found 321". Possible solution: use the recovery tool [90030-191]
+ at org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
+ ... 67 more
+2016-10-19 12:12:10 database: close
+org.h2.message.DbException: File corrupted while reading record: "index not found 321". Possible solution: use the recovery tool [90030-191]
+ at org.h2.message.DbException.get(DbException.java:179)
+ at org.h2.message.DbException.get(DbException.java:155)
+ at org.h2.store.PageStore.getPage(PageStore.java:813)
+ at org.h2.store.PageStore.compact(PageStore.java:710)
+ at org.h2.store.PageStore.compact(PageStore.java:538)
+ at org.h2.engine.Database.closeOpenFilesAndUnlock(Database.java:1356)
+ at org.h2.engine.Database.close(Database.java:1286)
+ at org.h2.engine.Database.removeSession(Database.java:1170)
+ at org.h2.engine.Session.close(Session.java:815)
+ at org.h2.jdbc.JdbcConnection.close(JdbcConnection.java:383)
+ at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.closeConnection(DatasourceConnectionProviderImpl.java:144)
+ at org.hibernate.tool.hbm2ddl.SuppliedConnectionProviderConnectionHelper.release(SuppliedConnectionProviderConnectionHelper.java:75)
+ at org.hibernate.tool.hbm2ddl.DatabaseExporter.release(DatabaseExporter.java:82)
+ at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:392)
+ at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:305)
+ at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:294)
+ at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:517)
+ at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1859)
+ at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:857)
+ at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:850)
+ at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.withTccl(ClassLoaderServiceImpl.java:425)
+ at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:849)
+ at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:60)
+ at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:343)
+ at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:319)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1637)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
+ at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
+ at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
+ at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
+ at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
+ at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1054)
+ at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:829)
+ at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:538)
+ at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:766)
+ at org.springframework.boot.SpringApplication.createAndRefreshContext(SpringApplication.java:361)
+ at org.springframework.boot.SpringApplication.run(SpringApplication.java:307)
+ at org.springframework.boot.test.SpringApplicationContextLoader.loadContext(SpringApplicationContextLoader.java:98)
+ at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:98)
+ at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:116)
+ at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:83)
+ at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:117)
+ at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:83)
+ at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:228)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:230)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:289)
+ at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:291)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:249)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:89)
+ at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
+ at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
+ at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
+ at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
+ at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
+ at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
+ at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
+ at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:193)
+ at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
+ at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
+ at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
+ at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678)
+ at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
+ at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
+Caused by: org.h2.jdbc.JdbcSQLException: File corrupted while reading record: "index not found 321". Possible solution: use the recovery tool [90030-191]
+ at org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
+ ... 67 more
+2016-10-19 12:14:11 database: close
+org.h2.message.DbException: File corrupted while reading record: "index not found 321". Possible solution: use the recovery tool [90030-191]
+ at org.h2.message.DbException.get(DbException.java:179)
+ at org.h2.message.DbException.get(DbException.java:155)
+ at org.h2.store.PageStore.getPage(PageStore.java:813)
+ at org.h2.store.PageStore.compact(PageStore.java:710)
+ at org.h2.store.PageStore.compact(PageStore.java:538)
+ at org.h2.engine.Database.closeOpenFilesAndUnlock(Database.java:1356)
+ at org.h2.engine.Database.close(Database.java:1286)
+ at org.h2.engine.Database.removeSession(Database.java:1170)
+ at org.h2.engine.Session.close(Session.java:815)
+ at org.h2.jdbc.JdbcConnection.close(JdbcConnection.java:383)
+ at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.closeConnection(DatasourceConnectionProviderImpl.java:144)
+ at org.hibernate.tool.hbm2ddl.SuppliedConnectionProviderConnectionHelper.release(SuppliedConnectionProviderConnectionHelper.java:75)
+ at org.hibernate.tool.hbm2ddl.DatabaseExporter.release(DatabaseExporter.java:82)
+ at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:392)
+ at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:305)
+ at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:294)
+ at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:517)
+ at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1859)
+ at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:857)
+ at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:850)
+ at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.withTccl(ClassLoaderServiceImpl.java:425)
+ at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:849)
+ at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:60)
+ at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:343)
+ at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:319)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1637)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
+ at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
+ at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
+ at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
+ at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
+ at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1054)
+ at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:829)
+ at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:538)
+ at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:766)
+ at org.springframework.boot.SpringApplication.createAndRefreshContext(SpringApplication.java:361)
+ at org.springframework.boot.SpringApplication.run(SpringApplication.java:307)
+ at org.springframework.boot.test.SpringApplicationContextLoader.loadContext(SpringApplicationContextLoader.java:98)
+ at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:98)
+ at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:116)
+ at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:83)
+ at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:117)
+ at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:83)
+ at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:228)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:230)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:289)
+ at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:291)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:249)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:89)
+ at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
+ at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
+ at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
+ at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
+ at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
+ at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
+ at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
+ at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:193)
+ at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
+ at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
+ at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
+ at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678)
+ at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
+ at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
+Caused by: org.h2.jdbc.JdbcSQLException: File corrupted while reading record: "index not found 321". Possible solution: use the recovery tool [90030-191]
+ at org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
+ ... 67 more
+2016-10-19 12:15:47 database: close
+org.h2.message.DbException: File corrupted while reading record: "index not found 321". Possible solution: use the recovery tool [90030-191]
+ at org.h2.message.DbException.get(DbException.java:179)
+ at org.h2.message.DbException.get(DbException.java:155)
+ at org.h2.store.PageStore.getPage(PageStore.java:813)
+ at org.h2.store.PageStore.compact(PageStore.java:710)
+ at org.h2.store.PageStore.compact(PageStore.java:538)
+ at org.h2.engine.Database.closeOpenFilesAndUnlock(Database.java:1356)
+ at org.h2.engine.Database.close(Database.java:1286)
+ at org.h2.engine.Database.removeSession(Database.java:1170)
+ at org.h2.engine.Session.close(Session.java:815)
+ at org.h2.jdbc.JdbcConnection.close(JdbcConnection.java:383)
+ at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.closeConnection(DatasourceConnectionProviderImpl.java:144)
+ at org.hibernate.tool.hbm2ddl.SuppliedConnectionProviderConnectionHelper.release(SuppliedConnectionProviderConnectionHelper.java:75)
+ at org.hibernate.tool.hbm2ddl.DatabaseExporter.release(DatabaseExporter.java:82)
+ at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:392)
+ at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:305)
+ at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:294)
+ at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:517)
+ at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1859)
+ at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:857)
+ at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:850)
+ at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.withTccl(ClassLoaderServiceImpl.java:425)
+ at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:849)
+ at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:60)
+ at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:343)
+ at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:319)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1637)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
+ at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
+ at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
+ at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
+ at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
+ at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1054)
+ at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:829)
+ at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:538)
+ at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:766)
+ at org.springframework.boot.SpringApplication.createAndRefreshContext(SpringApplication.java:361)
+ at org.springframework.boot.SpringApplication.run(SpringApplication.java:307)
+ at org.springframework.boot.test.SpringApplicationContextLoader.loadContext(SpringApplicationContextLoader.java:98)
+ at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:98)
+ at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:116)
+ at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:83)
+ at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:117)
+ at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:83)
+ at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:228)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:230)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:289)
+ at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:291)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:249)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:89)
+ at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
+ at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
+ at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
+ at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
+ at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
+ at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
+ at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
+ at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:193)
+ at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
+ at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
+ at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
+ at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678)
+ at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
+ at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
+Caused by: org.h2.jdbc.JdbcSQLException: File corrupted while reading record: "index not found 321". Possible solution: use the recovery tool [90030-191]
+ at org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
+ ... 67 more
+2016-10-19 12:17:04 database: close
+org.h2.message.DbException: File corrupted while reading record: "index not found 321". Possible solution: use the recovery tool [90030-191]
+ at org.h2.message.DbException.get(DbException.java:179)
+ at org.h2.message.DbException.get(DbException.java:155)
+ at org.h2.store.PageStore.getPage(PageStore.java:813)
+ at org.h2.store.PageStore.compact(PageStore.java:710)
+ at org.h2.store.PageStore.compact(PageStore.java:538)
+ at org.h2.engine.Database.closeOpenFilesAndUnlock(Database.java:1356)
+ at org.h2.engine.Database.close(Database.java:1286)
+ at org.h2.engine.Database.removeSession(Database.java:1170)
+ at org.h2.engine.Session.close(Session.java:815)
+ at org.h2.jdbc.JdbcConnection.close(JdbcConnection.java:383)
+ at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.closeConnection(DatasourceConnectionProviderImpl.java:144)
+ at org.hibernate.tool.hbm2ddl.SuppliedConnectionProviderConnectionHelper.release(SuppliedConnectionProviderConnectionHelper.java:75)
+ at org.hibernate.tool.hbm2ddl.DatabaseExporter.release(DatabaseExporter.java:82)
+ at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:392)
+ at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:305)
+ at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:294)
+ at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:517)
+ at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1859)
+ at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:857)
+ at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:850)
+ at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.withTccl(ClassLoaderServiceImpl.java:425)
+ at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:849)
+ at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:60)
+ at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:343)
+ at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:319)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1637)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
+ at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
+ at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
+ at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
+ at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
+ at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1054)
+ at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:829)
+ at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:538)
+ at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:766)
+ at org.springframework.boot.SpringApplication.createAndRefreshContext(SpringApplication.java:361)
+ at org.springframework.boot.SpringApplication.run(SpringApplication.java:307)
+ at org.springframework.boot.test.SpringApplicationContextLoader.loadContext(SpringApplicationContextLoader.java:98)
+ at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:98)
+ at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:116)
+ at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:83)
+ at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:117)
+ at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:83)
+ at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:228)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:230)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:289)
+ at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:291)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:249)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:89)
+ at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
+ at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
+ at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
+ at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
+ at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
+ at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
+ at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
+ at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:193)
+ at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
+ at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
+ at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
+ at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678)
+ at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
+ at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
+Caused by: org.h2.jdbc.JdbcSQLException: File corrupted while reading record: "index not found 321". Possible solution: use the recovery tool [90030-191]
+ at org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
+ ... 67 more
+2016-10-19 12:21:01 database: close
+org.h2.message.DbException: File corrupted while reading record: "index not found 321". Possible solution: use the recovery tool [90030-191]
+ at org.h2.message.DbException.get(DbException.java:179)
+ at org.h2.message.DbException.get(DbException.java:155)
+ at org.h2.store.PageStore.getPage(PageStore.java:813)
+ at org.h2.store.PageStore.compact(PageStore.java:710)
+ at org.h2.store.PageStore.compact(PageStore.java:538)
+ at org.h2.engine.Database.closeOpenFilesAndUnlock(Database.java:1356)
+ at org.h2.engine.Database.close(Database.java:1286)
+ at org.h2.engine.Database.removeSession(Database.java:1170)
+ at org.h2.engine.Session.close(Session.java:815)
+ at org.h2.jdbc.JdbcConnection.close(JdbcConnection.java:383)
+ at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.closeConnection(DatasourceConnectionProviderImpl.java:144)
+ at org.hibernate.tool.hbm2ddl.SuppliedConnectionProviderConnectionHelper.release(SuppliedConnectionProviderConnectionHelper.java:75)
+ at org.hibernate.tool.hbm2ddl.DatabaseExporter.release(DatabaseExporter.java:82)
+ at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:392)
+ at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:305)
+ at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:294)
+ at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:517)
+ at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1859)
+ at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:857)
+ at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:850)
+ at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.withTccl(ClassLoaderServiceImpl.java:425)
+ at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:849)
+ at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:60)
+ at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:343)
+ at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:319)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1637)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
+ at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
+ at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
+ at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
+ at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
+ at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1054)
+ at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:829)
+ at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:538)
+ at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:766)
+ at org.springframework.boot.SpringApplication.createAndRefreshContext(SpringApplication.java:361)
+ at org.springframework.boot.SpringApplication.run(SpringApplication.java:307)
+ at org.springframework.boot.test.SpringApplicationContextLoader.loadContext(SpringApplicationContextLoader.java:98)
+ at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:98)
+ at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:116)
+ at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:83)
+ at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:117)
+ at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:83)
+ at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:228)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:230)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:289)
+ at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:291)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:249)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:89)
+ at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
+ at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
+ at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
+ at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
+ at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
+ at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
+ at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
+ at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:193)
+ at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
+ at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
+ at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
+ at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678)
+ at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
+ at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
+Caused by: org.h2.jdbc.JdbcSQLException: File corrupted while reading record: "index not found 321". Possible solution: use the recovery tool [90030-191]
+ at org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
+ ... 67 more
+2016-10-19 12:21:58 database: close
+org.h2.message.DbException: File corrupted while reading record: "index not found 321". Possible solution: use the recovery tool [90030-191]
+ at org.h2.message.DbException.get(DbException.java:179)
+ at org.h2.message.DbException.get(DbException.java:155)
+ at org.h2.store.PageStore.getPage(PageStore.java:813)
+ at org.h2.store.PageStore.compact(PageStore.java:710)
+ at org.h2.store.PageStore.compact(PageStore.java:538)
+ at org.h2.engine.Database.closeOpenFilesAndUnlock(Database.java:1356)
+ at org.h2.engine.Database.close(Database.java:1286)
+ at org.h2.engine.Database.removeSession(Database.java:1170)
+ at org.h2.engine.Session.close(Session.java:815)
+ at org.h2.jdbc.JdbcConnection.close(JdbcConnection.java:383)
+ at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.closeConnection(DatasourceConnectionProviderImpl.java:144)
+ at org.hibernate.tool.hbm2ddl.SuppliedConnectionProviderConnectionHelper.release(SuppliedConnectionProviderConnectionHelper.java:75)
+ at org.hibernate.tool.hbm2ddl.DatabaseExporter.release(DatabaseExporter.java:82)
+ at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:392)
+ at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:305)
+ at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:294)
+ at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:517)
+ at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1859)
+ at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:857)
+ at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:850)
+ at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.withTccl(ClassLoaderServiceImpl.java:425)
+ at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:849)
+ at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:60)
+ at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:343)
+ at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:319)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1637)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
+ at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
+ at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
+ at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
+ at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
+ at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1054)
+ at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:829)
+ at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:538)
+ at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:766)
+ at org.springframework.boot.SpringApplication.createAndRefreshContext(SpringApplication.java:361)
+ at org.springframework.boot.SpringApplication.run(SpringApplication.java:307)
+ at org.springframework.boot.test.SpringApplicationContextLoader.loadContext(SpringApplicationContextLoader.java:98)
+ at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:98)
+ at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:116)
+ at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:83)
+ at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:117)
+ at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:83)
+ at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:228)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:230)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:289)
+ at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:291)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:249)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:89)
+ at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
+ at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
+ at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
+ at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
+ at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
+ at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
+ at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
+ at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:193)
+ at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
+ at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
+ at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
+ at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678)
+ at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
+ at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
+Caused by: org.h2.jdbc.JdbcSQLException: File corrupted while reading record: "index not found 321". Possible solution: use the recovery tool [90030-191]
+ at org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
+ ... 67 more
+2016-10-19 12:33:29 database: close
+org.h2.message.DbException: File corrupted while reading record: "index not found 321". Possible solution: use the recovery tool [90030-191]
+ at org.h2.message.DbException.get(DbException.java:179)
+ at org.h2.message.DbException.get(DbException.java:155)
+ at org.h2.store.PageStore.getPage(PageStore.java:813)
+ at org.h2.store.PageStore.compact(PageStore.java:710)
+ at org.h2.store.PageStore.compact(PageStore.java:538)
+ at org.h2.engine.Database.closeOpenFilesAndUnlock(Database.java:1356)
+ at org.h2.engine.Database.close(Database.java:1286)
+ at org.h2.engine.Database.removeSession(Database.java:1170)
+ at org.h2.engine.Session.close(Session.java:815)
+ at org.h2.jdbc.JdbcConnection.close(JdbcConnection.java:383)
+ at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.closeConnection(DatasourceConnectionProviderImpl.java:144)
+ at org.hibernate.tool.hbm2ddl.SuppliedConnectionProviderConnectionHelper.release(SuppliedConnectionProviderConnectionHelper.java:75)
+ at org.hibernate.tool.hbm2ddl.DatabaseExporter.release(DatabaseExporter.java:82)
+ at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:392)
+ at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:305)
+ at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:294)
+ at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:517)
+ at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1859)
+ at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:857)
+ at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:850)
+ at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.withTccl(ClassLoaderServiceImpl.java:425)
+ at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:849)
+ at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:60)
+ at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:343)
+ at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:319)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1637)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
+ at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
+ at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
+ at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
+ at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
+ at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1054)
+ at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:829)
+ at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:538)
+ at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:766)
+ at org.springframework.boot.SpringApplication.createAndRefreshContext(SpringApplication.java:361)
+ at org.springframework.boot.SpringApplication.run(SpringApplication.java:307)
+ at org.springframework.boot.test.SpringApplicationContextLoader.loadContext(SpringApplicationContextLoader.java:98)
+ at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:98)
+ at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:116)
+ at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:83)
+ at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:117)
+ at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:83)
+ at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:228)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:230)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:289)
+ at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:291)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:249)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:89)
+ at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
+ at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
+ at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
+ at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
+ at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
+ at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
+ at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
+ at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:193)
+ at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
+ at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
+ at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
+ at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678)
+ at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
+ at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
+Caused by: org.h2.jdbc.JdbcSQLException: File corrupted while reading record: "index not found 321". Possible solution: use the recovery tool [90030-191]
+ at org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
+ ... 67 more
+2016-10-19 12:37:13 database: close
+org.h2.message.DbException: File corrupted while reading record: "index not found 321". Possible solution: use the recovery tool [90030-191]
+ at org.h2.message.DbException.get(DbException.java:179)
+ at org.h2.message.DbException.get(DbException.java:155)
+ at org.h2.store.PageStore.getPage(PageStore.java:813)
+ at org.h2.store.PageStore.compact(PageStore.java:710)
+ at org.h2.store.PageStore.compact(PageStore.java:538)
+ at org.h2.engine.Database.closeOpenFilesAndUnlock(Database.java:1356)
+ at org.h2.engine.Database.close(Database.java:1286)
+ at org.h2.engine.Database.removeSession(Database.java:1170)
+ at org.h2.engine.Session.close(Session.java:815)
+ at org.h2.jdbc.JdbcConnection.close(JdbcConnection.java:383)
+ at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.closeConnection(DatasourceConnectionProviderImpl.java:144)
+ at org.hibernate.tool.hbm2ddl.SuppliedConnectionProviderConnectionHelper.release(SuppliedConnectionProviderConnectionHelper.java:75)
+ at org.hibernate.tool.hbm2ddl.DatabaseExporter.release(DatabaseExporter.java:82)
+ at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:392)
+ at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:305)
+ at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:294)
+ at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:517)
+ at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1859)
+ at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:857)
+ at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:850)
+ at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.withTccl(ClassLoaderServiceImpl.java:425)
+ at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:849)
+ at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:60)
+ at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:343)
+ at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:319)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1637)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
+ at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
+ at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
+ at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
+ at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
+ at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1054)
+ at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:829)
+ at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:538)
+ at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:766)
+ at org.springframework.boot.SpringApplication.createAndRefreshContext(SpringApplication.java:361)
+ at org.springframework.boot.SpringApplication.run(SpringApplication.java:307)
+ at org.springframework.boot.test.SpringApplicationContextLoader.loadContext(SpringApplicationContextLoader.java:98)
+ at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:98)
+ at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:116)
+ at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:83)
+ at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:117)
+ at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:83)
+ at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:228)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:230)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:289)
+ at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:291)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:249)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:89)
+ at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
+ at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
+ at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
+ at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
+ at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
+ at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
+ at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
+ at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:193)
+ at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
+ at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
+ at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
+ at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678)
+ at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
+ at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
+Caused by: org.h2.jdbc.JdbcSQLException: File corrupted while reading record: "index not found 321". Possible solution: use the recovery tool [90030-191]
+ at org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
+ ... 67 more
+2016-10-19 12:42:08 database: close
+org.h2.message.DbException: File corrupted while reading record: "index not found 321". Possible solution: use the recovery tool [90030-191]
+ at org.h2.message.DbException.get(DbException.java:179)
+ at org.h2.message.DbException.get(DbException.java:155)
+ at org.h2.store.PageStore.getPage(PageStore.java:813)
+ at org.h2.store.PageStore.compact(PageStore.java:710)
+ at org.h2.store.PageStore.compact(PageStore.java:538)
+ at org.h2.engine.Database.closeOpenFilesAndUnlock(Database.java:1356)
+ at org.h2.engine.Database.close(Database.java:1286)
+ at org.h2.engine.Database.removeSession(Database.java:1170)
+ at org.h2.engine.Session.close(Session.java:815)
+ at org.h2.jdbc.JdbcConnection.close(JdbcConnection.java:383)
+ at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.closeConnection(DatasourceConnectionProviderImpl.java:144)
+ at org.hibernate.tool.hbm2ddl.SuppliedConnectionProviderConnectionHelper.release(SuppliedConnectionProviderConnectionHelper.java:75)
+ at org.hibernate.tool.hbm2ddl.DatabaseExporter.release(DatabaseExporter.java:82)
+ at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:392)
+ at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:305)
+ at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:294)
+ at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:517)
+ at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1859)
+ at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:857)
+ at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:850)
+ at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.withTccl(ClassLoaderServiceImpl.java:425)
+ at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:849)
+ at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:60)
+ at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:343)
+ at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:319)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1637)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
+ at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
+ at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
+ at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
+ at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
+ at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1054)
+ at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:829)
+ at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:538)
+ at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:766)
+ at org.springframework.boot.SpringApplication.createAndRefreshContext(SpringApplication.java:361)
+ at org.springframework.boot.SpringApplication.run(SpringApplication.java:307)
+ at org.springframework.boot.test.SpringApplicationContextLoader.loadContext(SpringApplicationContextLoader.java:98)
+ at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:98)
+ at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:116)
+ at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:83)
+ at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:117)
+ at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:83)
+ at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:228)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:230)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:289)
+ at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:291)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:249)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:89)
+ at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
+ at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
+ at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
+ at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
+ at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
+ at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
+ at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
+ at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:193)
+ at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
+ at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
+ at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
+ at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678)
+ at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
+ at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
+Caused by: org.h2.jdbc.JdbcSQLException: File corrupted while reading record: "index not found 321". Possible solution: use the recovery tool [90030-191]
+ at org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
+ ... 67 more
+2016-10-19 12:43:19 database: close
+org.h2.message.DbException: File corrupted while reading record: "index not found 321". Possible solution: use the recovery tool [90030-191]
+ at org.h2.message.DbException.get(DbException.java:179)
+ at org.h2.message.DbException.get(DbException.java:155)
+ at org.h2.store.PageStore.getPage(PageStore.java:813)
+ at org.h2.store.PageStore.compact(PageStore.java:710)
+ at org.h2.store.PageStore.compact(PageStore.java:538)
+ at org.h2.engine.Database.closeOpenFilesAndUnlock(Database.java:1356)
+ at org.h2.engine.Database.close(Database.java:1286)
+ at org.h2.engine.Database.removeSession(Database.java:1170)
+ at org.h2.engine.Session.close(Session.java:815)
+ at org.h2.jdbc.JdbcConnection.close(JdbcConnection.java:383)
+ at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.closeConnection(DatasourceConnectionProviderImpl.java:144)
+ at org.hibernate.tool.hbm2ddl.SuppliedConnectionProviderConnectionHelper.release(SuppliedConnectionProviderConnectionHelper.java:75)
+ at org.hibernate.tool.hbm2ddl.DatabaseExporter.release(DatabaseExporter.java:82)
+ at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:392)
+ at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:305)
+ at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:294)
+ at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:517)
+ at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1859)
+ at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:857)
+ at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:850)
+ at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.withTccl(ClassLoaderServiceImpl.java:425)
+ at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:849)
+ at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:60)
+ at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:343)
+ at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:319)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1637)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
+ at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
+ at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
+ at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
+ at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
+ at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1054)
+ at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:829)
+ at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:538)
+ at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:766)
+ at org.springframework.boot.SpringApplication.createAndRefreshContext(SpringApplication.java:361)
+ at org.springframework.boot.SpringApplication.run(SpringApplication.java:307)
+ at org.springframework.boot.test.SpringApplicationContextLoader.loadContext(SpringApplicationContextLoader.java:98)
+ at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:98)
+ at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:116)
+ at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:83)
+ at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:117)
+ at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:83)
+ at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:228)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:230)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:289)
+ at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:291)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:249)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:89)
+ at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
+ at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
+ at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
+ at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
+ at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
+ at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
+ at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
+ at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:193)
+ at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
+ at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
+ at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
+ at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678)
+ at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
+ at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
+Caused by: org.h2.jdbc.JdbcSQLException: File corrupted while reading record: "index not found 321". Possible solution: use the recovery tool [90030-191]
+ at org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
+ ... 67 more
+2016-10-19 12:52:54 database: close
+org.h2.message.DbException: File corrupted while reading record: "index not found 321". Possible solution: use the recovery tool [90030-191]
+ at org.h2.message.DbException.get(DbException.java:179)
+ at org.h2.message.DbException.get(DbException.java:155)
+ at org.h2.store.PageStore.getPage(PageStore.java:813)
+ at org.h2.store.PageStore.compact(PageStore.java:710)
+ at org.h2.store.PageStore.compact(PageStore.java:538)
+ at org.h2.engine.Database.closeOpenFilesAndUnlock(Database.java:1356)
+ at org.h2.engine.Database.close(Database.java:1286)
+ at org.h2.engine.Database.removeSession(Database.java:1170)
+ at org.h2.engine.Session.close(Session.java:815)
+ at org.h2.jdbc.JdbcConnection.close(JdbcConnection.java:383)
+ at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.closeConnection(DatasourceConnectionProviderImpl.java:144)
+ at org.hibernate.engine.jdbc.internal.JdbcServicesImpl$ConnectionProviderJdbcConnectionAccess.releaseConnection(JdbcServicesImpl.java:284)
+ at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:199)
+ at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:111)
+ at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:234)
+ at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:206)
+ at org.hibernate.cfg.Configuration.buildTypeRegistrations(Configuration.java:1887)
+ at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1845)
+ at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:857)
+ at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:850)
+ at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.withTccl(ClassLoaderServiceImpl.java:425)
+ at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:849)
+ at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:60)
+ at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:343)
+ at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:319)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1637)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
+ at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
+ at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
+ at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
+ at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
+ at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1054)
+ at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:829)
+ at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:538)
+ at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:766)
+ at org.springframework.boot.SpringApplication.createAndRefreshContext(SpringApplication.java:361)
+ at org.springframework.boot.SpringApplication.run(SpringApplication.java:307)
+ at org.springframework.boot.test.SpringApplicationContextLoader.loadContext(SpringApplicationContextLoader.java:98)
+ at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:98)
+ at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:116)
+ at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:83)
+ at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:117)
+ at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:83)
+ at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:228)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:230)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:289)
+ at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:291)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:249)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:89)
+ at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
+ at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
+ at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
+ at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
+ at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
+ at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
+ at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
+ at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
+ at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:193)
+ at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
+ at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
+ at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
+ at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678)
+ at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
+ at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
+Caused by: org.h2.jdbc.JdbcSQLException: File corrupted while reading record: "index not found 321". Possible solution: use the recovery tool [90030-191]
+ at org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
+ ... 67 more
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/configuration/CoreApplicationConfiguration.java b/sm-core/src/main/java/com/salesmanager/core/business/configuration/CoreApplicationConfiguration.java
new file mode 100644
index 0000000..c0ac8a0
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/configuration/CoreApplicationConfiguration.java
@@ -0,0 +1,14 @@
+package com.salesmanager.core.business.configuration;
+
+import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
+import org.springframework.boot.orm.jpa.EntityScan;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.ImportResource;
+
+@Configuration
+@EnableAutoConfiguration
+@EntityScan(basePackages = {"com.salesmanager.core.model"})
+@ImportResource("spring/shopizer-context.xml")
+public class CoreApplicationConfiguration {
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/constants/Constants.java b/sm-core/src/main/java/com/salesmanager/core/business/constants/Constants.java
new file mode 100644
index 0000000..97957d2
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/constants/Constants.java
@@ -0,0 +1,37 @@
+package com.salesmanager.core.business.constants;
+
+import java.util.Currency;
+import java.util.Locale;
+
+public class Constants {
+
+ public final static String TEST_ENVIRONMENT= "TEST";
+ public final static String PRODUCTION_ENVIRONMENT= "PROD";
+ public final static String SHOP_URI = "/shop";
+
+ public static final String ALL_REGIONS = "*";
+
+
+ public final static String DEFAULT_DATE_FORMAT = "yyyy-MM-dd";
+ public final static String DEFAULT_DATE_FORMAT_YEAR = "yyyy";
+ public final static String DEFAULT_LANGUAGE = "en";
+
+ public final static String EMAIL_CONFIG = "EMAIL_CONFIG";
+ public final static String MERCHANT_CONFIG = "MERCHANT_CONFIG";
+
+ public final static String UNDERSCORE = "_";
+ public final static String SLASH = "/";
+ public final static String TRUE = "true";
+ public final static String FALSE = "false";
+ public final static String OT_ITEM_PRICE_MODULE_CODE = "itemprice";
+ public final static String OT_SUBTOTAL_MODULE_CODE = "subtotal";
+ public final static String OT_TOTAL_MODULE_CODE = "total";
+ public final static String OT_SHIPPING_MODULE_CODE = "shipping";
+ public final static String OT_HANDLING_MODULE_CODE = "handling";
+ public final static String OT_TAX_MODULE_CODE = "tax";
+ public final static String OT_REFUND_MODULE_CODE = "refund";
+
+ public final static Locale DEFAULT_LOCALE = Locale.US;
+ public final static Currency DEFAULT_CURRENCY = Currency.getInstance(Locale.US);
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/constants/ShippingConstants.java b/sm-core/src/main/java/com/salesmanager/core/business/constants/ShippingConstants.java
new file mode 100644
index 0000000..1e5ee54
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/constants/ShippingConstants.java
@@ -0,0 +1,10 @@
+package com.salesmanager.core.business.constants;
+
+
+public class ShippingConstants {
+
+ public final static String SHIPPING_CONFIGURATION= "SHIPPING_CONFIG";
+ public final static String SHIPPING_NATIONAL = "NATIONAL";
+ public final static String SHIPPING_INTERNATIONAL = "INTERNATIONAL";
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/constants/SystemConstants.java b/sm-core/src/main/java/com/salesmanager/core/business/constants/SystemConstants.java
new file mode 100644
index 0000000..5f45328
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/constants/SystemConstants.java
@@ -0,0 +1,11 @@
+package com.salesmanager.core.business.constants;
+
+public class SystemConstants {
+
+
+
+ public final static String SYSTEM_USER = "SYSTEM";
+ public final static String CONFIG_VALUE_TRUE = "true";
+ public final static String CONFIG_VALUE_FALSE = "false";
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/modules/cms/common/ImageGet.java b/sm-core/src/main/java/com/salesmanager/core/business/modules/cms/common/ImageGet.java
new file mode 100644
index 0000000..f487cc8
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/modules/cms/common/ImageGet.java
@@ -0,0 +1,15 @@
+package com.salesmanager.core.business.modules.cms.common;
+
+import java.util.List;
+
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.model.content.FileContentType;
+import com.salesmanager.core.model.content.OutputContentFile;
+
+public interface ImageGet
+{
+
+ public List<OutputContentFile> getImages( final String merchantStoreCode, FileContentType imageContentType )
+ throws ServiceException;
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/modules/cms/common/ImageRemove.java b/sm-core/src/main/java/com/salesmanager/core/business/modules/cms/common/ImageRemove.java
new file mode 100644
index 0000000..d7d84a2
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/modules/cms/common/ImageRemove.java
@@ -0,0 +1,11 @@
+package com.salesmanager.core.business.modules.cms.common;
+
+import com.salesmanager.core.business.exception.ServiceException;
+
+
+public interface ImageRemove {
+
+
+ public void removeImages(final String merchantStoreCode) throws ServiceException;
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/modules/cms/common/StaticContentData.java b/sm-core/src/main/java/com/salesmanager/core/business/modules/cms/common/StaticContentData.java
new file mode 100644
index 0000000..916d69c
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/modules/cms/common/StaticContentData.java
@@ -0,0 +1,52 @@
+/**
+ *
+ */
+package com.salesmanager.core.business.modules.cms.common;
+
+import java.io.Serializable;
+
+import com.salesmanager.core.model.content.FileContentType;
+
+
+/**
+ * Abstract class for Static content data containing common attributes
+ * for handling static content data.
+ *
+ * @author Umesh Awasthi
+ *@since 1.2
+ */
+public abstract class StaticContentData implements Serializable
+{
+
+
+ private static final long serialVersionUID = 1L;
+ private String fileName;
+ private FileContentType contentType = FileContentType.STATIC_FILE;
+ private String fileContentType;
+
+ public String getFileName()
+ {
+ return fileName;
+ }
+ public void setFileName( String fileName )
+ {
+ this.fileName = fileName;
+ }
+
+ public String getFileContentType()
+ {
+ return fileContentType;
+ }
+ public void setFileContentType( String fileContentType )
+ {
+ this.fileContentType = fileContentType;
+ }
+ public void setContentType(FileContentType contentType) {
+ this.contentType = contentType;
+ }
+ public FileContentType getContentType() {
+ return contentType;
+ }
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/modules/cms/content/ContentImageGet.java b/sm-core/src/main/java/com/salesmanager/core/business/modules/cms/content/ContentImageGet.java
new file mode 100644
index 0000000..3919c51
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/modules/cms/content/ContentImageGet.java
@@ -0,0 +1,15 @@
+package com.salesmanager.core.business.modules.cms.content;
+
+import java.util.List;
+
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.business.modules.cms.common.ImageGet;
+import com.salesmanager.core.model.content.FileContentType;
+import com.salesmanager.core.model.content.OutputContentFile;
+
+public interface ContentImageGet extends ImageGet {
+
+ public OutputContentFile getImage(final String merchantStoreCode, String imageName,FileContentType imageContentType) throws ServiceException;
+ public List<String> getImageNames(final String merchantStoreCode, FileContentType imageContentType) throws ServiceException;
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/modules/cms/content/ContentImageRemove.java b/sm-core/src/main/java/com/salesmanager/core/business/modules/cms/content/ContentImageRemove.java
new file mode 100644
index 0000000..90d105d
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/modules/cms/content/ContentImageRemove.java
@@ -0,0 +1,14 @@
+package com.salesmanager.core.business.modules.cms.content;
+
+
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.business.modules.cms.common.ImageRemove;
+import com.salesmanager.core.model.content.FileContentType;
+
+public interface ContentImageRemove extends ImageRemove {
+
+
+
+ public void removeImage(final String merchantStoreCode,final FileContentType imageContentType, final String imageName) throws ServiceException;
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/modules/cms/content/FileGet.java b/sm-core/src/main/java/com/salesmanager/core/business/modules/cms/content/FileGet.java
new file mode 100644
index 0000000..6b3be9e
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/modules/cms/content/FileGet.java
@@ -0,0 +1,21 @@
+package com.salesmanager.core.business.modules.cms.content;
+
+import java.util.List;
+
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.model.content.FileContentType;
+import com.salesmanager.core.model.content.OutputContentFile;
+
+
+/**
+ * Methods to retrieve the static content from the CMS
+ * @author Carl Samson
+ *
+ */
+public interface FileGet
+{
+
+ public OutputContentFile getFile(final String merchantStoreCode, FileContentType fileContentType, String contentName) throws ServiceException;
+ public List<String> getFileNames(final String merchantStoreCode,FileContentType fileContentType) throws ServiceException;
+ public List<OutputContentFile> getFiles(final String merchantStoreCode, FileContentType fileContentType) throws ServiceException;
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/modules/cms/content/FilePut.java b/sm-core/src/main/java/com/salesmanager/core/business/modules/cms/content/FilePut.java
new file mode 100644
index 0000000..fe01ac0
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/modules/cms/content/FilePut.java
@@ -0,0 +1,20 @@
+/**
+ *
+ */
+package com.salesmanager.core.business.modules.cms.content;
+
+import java.util.List;
+
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.model.content.InputContentFile;
+
+
+/**
+ * @author Umesh Awasthi
+ *
+ */
+public interface FilePut
+{
+ public void addFile(final String merchantStoreCode, InputContentFile inputStaticContentData) throws ServiceException;
+ public void addFiles(final String merchantStoreCode, List<InputContentFile> inputStaticContentDataList) throws ServiceException;
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/modules/cms/content/FileRemove.java b/sm-core/src/main/java/com/salesmanager/core/business/modules/cms/content/FileRemove.java
new file mode 100644
index 0000000..e89ba54
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/modules/cms/content/FileRemove.java
@@ -0,0 +1,19 @@
+/**
+ *
+ */
+package com.salesmanager.core.business.modules.cms.content;
+
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.model.content.FileContentType;
+
+
+/**
+ * @author Umesh Awasthi
+ *
+ */
+public interface FileRemove
+{
+ public void removeFile(String merchantStoreCode, FileContentType staticContentType, String fileName) throws ServiceException;
+ public void removeFiles(String merchantStoreCode) throws ServiceException;
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/modules/cms/content/ImagePut.java b/sm-core/src/main/java/com/salesmanager/core/business/modules/cms/content/ImagePut.java
new file mode 100644
index 0000000..3cdb86b
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/modules/cms/content/ImagePut.java
@@ -0,0 +1,14 @@
+package com.salesmanager.core.business.modules.cms.content;
+
+import java.util.List;
+
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.model.content.InputContentFile;
+
+public interface ImagePut {
+
+
+ public void addImage(final String merchantStoreCode, InputContentFile image) throws ServiceException;
+ public void addImages(final String merchantStoreCode, List<InputContentFile> imagesList) throws ServiceException;
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/modules/cms/content/local/CmsStaticContentFileManagerImpl.java b/sm-core/src/main/java/com/salesmanager/core/business/modules/cms/content/local/CmsStaticContentFileManagerImpl.java
new file mode 100644
index 0000000..cb5a43f
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/modules/cms/content/local/CmsStaticContentFileManagerImpl.java
@@ -0,0 +1,524 @@
+/**
+ *
+ */
+package com.salesmanager.core.business.modules.cms.content.local;
+
+import java.io.IOException;
+import java.net.URLConnection;
+import java.nio.file.DirectoryStream;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.nio.file.StandardCopyOption;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.salesmanager.core.business.constants.Constants;
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.business.modules.cms.content.FileGet;
+import com.salesmanager.core.business.modules.cms.content.FilePut;
+import com.salesmanager.core.business.modules.cms.content.FileRemove;
+import com.salesmanager.core.business.modules.cms.impl.LocalCacheManagerImpl;
+import com.salesmanager.core.model.content.FileContentType;
+import com.salesmanager.core.model.content.InputContentFile;
+import com.salesmanager.core.model.content.OutputContentFile;
+
+
+
+/**
+ * Manages
+ * - Images
+ * - Files (js, pdf, css...) on a local web server
+ * @author Carl Samson
+ * @since 1.0.3
+ *
+ */
+public class CmsStaticContentFileManagerImpl implements FilePut,FileGet,FileRemove
+{
+
+ private static final Logger LOGGER = LoggerFactory.getLogger( CmsStaticContentFileManagerImpl.class );
+ private static CmsStaticContentFileManagerImpl fileManager = null;
+ private static final String ROOT_NAME="static";
+
+ private static final String ROOT_CONTAINER = "files";
+
+ private String rootName = ROOT_NAME;
+
+ private LocalCacheManagerImpl cacheManager;
+
+
+
+ public static CmsStaticContentFileManagerImpl getInstance()
+ {
+
+ if ( fileManager == null )
+ {
+ fileManager = new CmsStaticContentFileManagerImpl();
+ }
+
+ return fileManager;
+
+ }
+
+
+ /**
+ * <p>Method to add static content data for given merchant.Static content data can be of following type
+ * <pre>
+ * 1. CSS and JS files
+ * 2. Digital Data like audio or video
+ * </pre>
+ * </p>
+ * <p>
+ * Merchant store code will be used to create cache node where merchant data will be stored,input data will
+ * contain name, file as well type of data being stored.
+ * @see FileContentType
+ * </p>
+ *
+ * @param merchantStoreCode merchant store for whom data is being stored
+ * @param inputStaticContentData data object being stored
+ * @throws ServiceException
+ *
+ */
+ @Override
+ public void addFile( final String merchantStoreCode, final InputContentFile inputStaticContentData )
+ throws ServiceException
+ {
+/* if ( cacheManager.getTreeCache() == null )
+ {
+ LOGGER.error( "Unable to find cacheManager.getTreeCache() in Infinispan.." );
+ throw new ServiceException( "CmsStaticContentFileManagerInfinispanImpl has a null cacheManager.getTreeCache()" );
+ }*/
+ try
+ {
+
+
+
+ //base path
+ String rootPath = this.buildRootPath();
+ Path confDir = Paths.get(rootPath);
+ this.createDirectoryIfNorExist(confDir);
+
+ //node path
+ StringBuilder nodePath = new StringBuilder();
+ nodePath
+ .append(rootPath)
+ .append(merchantStoreCode);
+ Path merchantPath = Paths.get(nodePath.toString());
+ this.createDirectoryIfNorExist(merchantPath);
+
+ //file path
+ nodePath.append(Constants.SLASH).append( inputStaticContentData.getFileContentType()).append(Constants.SLASH);
+ Path dirPath = Paths.get(nodePath.toString());
+ this.createDirectoryIfNorExist(dirPath);
+
+ //file creation
+ nodePath.append(inputStaticContentData.getFileName());
+
+
+ Path path = Paths.get(nodePath.toString());
+
+
+ //file creation
+ //nodePath.append(Constants.SLASH).append(contentImage.getFileName());
+
+
+ //Path path = Paths.get(nodePath.toString());
+
+
+ Files.copy(inputStaticContentData.getFile(), path, StandardCopyOption.REPLACE_EXISTING);
+
+
+
+
+
+ //String nodePath = this.getNodePath(merchantStoreCode, inputStaticContentData.getFileContentType());
+
+ //final Node<String, Object> merchantNode = this.getNode(nodePath);
+
+ //merchantNode.put(inputStaticContentData.getFileName(), IOUtils.toByteArray( inputStaticContentData.getFile() ));
+
+ LOGGER.info( "Content data added successfully." );
+ }
+ catch ( final Exception e )
+ {
+ LOGGER.error( "Error while saving static content data", e );
+ throw new ServiceException( e );
+
+ }
+
+ }
+
+ /**
+ * <p>
+ * Method to add files for given store.Files will be stored in Infinispan and will be retrieved based on
+ * the storeID. Following steps will be performed to store static content files
+ * </p>
+ * <li>Merchant Node will be retrieved from the cacheTree if it exists else new node will be created.</li> <li>
+ * Files will be stored in StaticContentCacheAttribute , which eventually will be stored in Infinispan</li>
+ *
+ * @param merchantStoreCode Merchant store for which files are getting stored in Infinispan.
+ * @param inputStaticContentDataList input static content file list which will get {@link InputContentImage} stored
+ * @throws ServiceException if content file storing process fail.
+ * @see InputStaticContentData
+ * @see StaticContentCacheAttribute
+ */
+ @Override
+ public void addFiles( final String merchantStoreCode, final List<InputContentFile> inputStaticContentDataList )
+ throws ServiceException
+ {
+/* if ( cacheManager.getTreeCache() == null )
+ {
+ LOGGER.error( "Unable to find cacheManager.getTreeCache() in Infinispan.." );
+ throw new ServiceException( "CmsStaticContentFileManagerInfinispanImpl has a null cacheManager.getTreeCache()" );
+ }*/
+ try
+ {
+
+
+ //base path
+ String rootPath = this.buildRootPath();
+ Path confDir = Paths.get(rootPath);
+ this.createDirectoryIfNorExist(confDir);
+
+ //node path
+ StringBuilder nodePath = new StringBuilder();
+ nodePath
+ .append(rootPath)
+ .append(merchantStoreCode);
+ Path merchantPath = Paths.get(nodePath.toString());
+ this.createDirectoryIfNorExist(merchantPath);
+
+
+
+ for(final InputContentFile inputStaticContentData:inputStaticContentDataList){
+
+
+ //file path
+ nodePath.append(Constants.SLASH).append( inputStaticContentData.getFileContentType()).append(Constants.SLASH);
+ Path dirPath = Paths.get(nodePath.toString());
+ this.createDirectoryIfNorExist(dirPath);
+
+ //file creation
+ nodePath.append(Constants.SLASH).append(inputStaticContentData.getFileName());
+
+
+ Path path = Paths.get(nodePath.toString());
+
+ Files.copy(inputStaticContentData.getFile(), path, StandardCopyOption.REPLACE_EXISTING);
+
+
+ //String nodePath = this.getNodePath(merchantStoreCode, inputStaticContentData.getFileContentType());
+
+ //final Node<String, Object> merchantNode = this.getNode(nodePath);
+ //merchantNode.put(inputStaticContentData.getFileName(), IOUtils.toByteArray( inputStaticContentData.getFile() ));
+
+
+ }
+
+
+
+ LOGGER.info( "Total {} files added successfully.",inputStaticContentDataList.size() );
+
+ }
+ catch ( final Exception e )
+ {
+ LOGGER.error( "Error while saving content image", e );
+ throw new ServiceException( e );
+
+ }
+ }
+
+
+ /**
+ * Method to return static data for given Merchant store based on the file name. Content data will be searched
+ * in underlying Infinispan cache tree and {@link OutputStaticContentData} will be returned on finding an associated
+ * file. In case of no file, null be returned.
+ *
+ * @param store Merchant store
+ * @param contentFileName name of file being requested
+ * @return {@link OutputStaticContentData}
+ * @throws ServiceException
+ */
+ @Override
+ public OutputContentFile getFile( final String merchantStoreCode, final FileContentType fileContentType, final String contentFileName )
+ throws ServiceException
+ {
+
+/* if ( cacheManager.getTreeCache() == null )
+ {
+ throw new ServiceException( "CmsStaticContentFileManagerInfinispan has a null cacheManager.getTreeCache()" );
+ }
+ OutputContentFile outputStaticContentData=null;
+ InputStream input = null;
+ try
+ {
+
+
+ String nodePath = this.getNodePath(merchantStoreCode, fileContentType);
+
+ final Node<String, Object> merchantNode = this.getNode(nodePath);
+
+
+ final byte[] fileBytes= (byte[]) merchantNode.get( contentFileName );
+
+ if ( fileBytes == null )
+ {
+ LOGGER.warn( "file byte is null, no file found" );
+ return null;
+ }
+
+ input=new ByteArrayInputStream( fileBytes );
+
+ final ByteArrayOutputStream output = new ByteArrayOutputStream();
+ IOUtils.copy( input, output );
+
+ outputStaticContentData=new OutputContentFile();
+ outputStaticContentData.setFile( output );
+ outputStaticContentData.setMimeType( URLConnection.getFileNameMap().getContentTypeFor(contentFileName) );
+ outputStaticContentData.setFileName( contentFileName );
+ outputStaticContentData.setFileContentType( fileContentType );
+
+ }
+ catch ( final Exception e )
+ {
+ LOGGER.error( "Error while fetching file for {} merchant ", merchantStoreCode);
+ throw new ServiceException( e );
+ }
+ return outputStaticContentData != null ? outputStaticContentData : null;*/
+
+
+ return null;
+
+ }
+
+
+ @Override
+ public List<OutputContentFile> getFiles(
+ final String merchantStoreCode, final FileContentType staticContentType) throws ServiceException {
+
+
+/*
+ if ( cacheManager.getTreeCache() == null )
+ {
+ throw new ServiceException( "CmsStaticContentFileManagerInfinispan has a null cacheManager.getTreeCache()" );
+ }
+ List<OutputContentFile> images = new ArrayList<OutputContentFile>();
+ try
+ {
+
+ FileNameMap fileNameMap = URLConnection.getFileNameMap();
+ String nodePath = this.getNodePath(merchantStoreCode, staticContentType);
+
+ final Node<String, Object> merchantNode = this.getNode(nodePath);
+
+ for(String key : merchantNode.getKeys()) {
+
+ byte[] imageBytes = (byte[])merchantNode.get( key );
+
+ OutputContentFile contentImage = new OutputContentFile();
+
+ InputStream input = new ByteArrayInputStream( imageBytes );
+ ByteArrayOutputStream output = new ByteArrayOutputStream();
+ IOUtils.copy( input, output );
+
+ String contentType = fileNameMap.getContentTypeFor( key );
+
+ contentImage.setFile( output );
+ contentImage.setMimeType( contentType );
+ contentImage.setFileName( key );
+
+ images.add( contentImage );
+
+
+ }
+
+
+
+ }
+ catch ( final Exception e )
+ {
+ LOGGER.error( "Error while fetching file for {} merchant ", merchantStoreCode);
+ throw new ServiceException( e );
+ }
+
+
+ return images;*/
+
+ return null;
+
+
+ }
+
+
+
+ @Override
+ public void removeFile( final String merchantStoreCode, final FileContentType staticContentType, final String fileName )
+ throws ServiceException
+ {
+
+ try
+ {
+
+
+ StringBuilder merchantPath = new StringBuilder();
+ merchantPath.append(buildRootPath())
+ .append(Constants.SLASH)
+ .append(merchantStoreCode)
+ .append(Constants.SLASH)
+ .append(staticContentType)
+ .append(Constants.SLASH)
+ .append(fileName);
+
+ Path path = Paths.get(merchantPath.toString());
+
+ Files.deleteIfExists(path);
+
+
+
+ }
+ catch ( final Exception e )
+ {
+ LOGGER.error( "Error while deleting files for {} merchant ", merchantStoreCode);
+ throw new ServiceException( e );
+ }
+
+
+ }
+
+ /**
+ * Removes the data in a given merchant node
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void removeFiles( final String merchantStoreCode )
+ throws ServiceException
+ {
+
+ LOGGER.debug( "Removing all images for {} merchant ",merchantStoreCode);
+
+ try
+ {
+
+
+ StringBuilder merchantPath = new StringBuilder();
+ merchantPath.append(buildRootPath())
+ .append(Constants.SLASH)
+ .append(merchantStoreCode);
+
+ Path path = Paths.get(merchantPath.toString());
+
+ Files.deleteIfExists(path);
+
+
+
+
+ }
+ catch ( final Exception e )
+ {
+ LOGGER.error( "Error while deleting content image for {} merchant ", merchantStoreCode);
+ throw new ServiceException( e );
+ }
+
+ }
+
+
+
+ /**
+ * Queries the CMS to retrieve all static content files. Only the name of the file will be returned to the client
+ * @param merchantStoreCode
+ * @return
+ * @throws ServiceException
+ */
+ @Override
+ public List<String> getFileNames(final String merchantStoreCode, final FileContentType staticContentType)
+ throws ServiceException {
+
+
+
+ try
+ {
+
+ StringBuilder merchantPath = new StringBuilder();
+ merchantPath.append(buildRootPath())
+ .append(merchantStoreCode)
+ .append(Constants.SLASH)
+ .append(staticContentType);
+
+ Path path = Paths.get(merchantPath.toString());
+
+ List<String> fileNames = null;
+
+ if(Files.exists(path)) {
+
+ fileNames = new ArrayList<String>();
+ DirectoryStream<Path> directoryStream = Files.newDirectoryStream(path);
+ for (Path dirPath : directoryStream) {
+
+ String fileName = dirPath.getFileName().toString();
+
+ if(staticContentType.name().equals(FileContentType.IMAGE.name())) {
+ //File f = new File(fileName);
+ String mimetype = URLConnection.guessContentTypeFromName(fileName);
+ //String mimetype= new MimetypesFileTypeMap().getContentType(f);
+ if(!StringUtils.isBlank(mimetype)) {
+ String type = mimetype.split("/")[0];
+ if(type.equals("image")) {
+ fileNames.add(fileName);
+ }
+ }
+ //fileNames.add(fileName);
+
+ } else {
+ fileNames.add(fileName);
+ }
+
+ }
+ }
+
+ return fileNames;
+
+ } catch ( final Exception e ) {
+ LOGGER.error( "Error while fetching file for {} merchant ", merchantStoreCode);
+ throw new ServiceException( e );
+ }
+
+ }
+
+ public void setRootName(String rootName) {
+ this.rootName = rootName;
+ }
+
+ public String getRootName() {
+ return rootName;
+ }
+
+ private String buildRootPath() {
+ return new StringBuilder().append(getRootName()).append(Constants.SLASH).append(ROOT_CONTAINER).append(Constants.SLASH).toString();
+
+ }
+
+
+ private void createDirectoryIfNorExist(Path path) throws IOException {
+
+ if (Files.notExists(path)) {
+ Files.createDirectory(path);
+ }
+ }
+
+
+ public LocalCacheManagerImpl getCacheManager() {
+ return cacheManager;
+ }
+
+
+ public void setCacheManager(LocalCacheManagerImpl cacheManager) {
+ this.cacheManager = cacheManager;
+ }
+
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/modules/cms/content/StaticContentFileManager.java b/sm-core/src/main/java/com/salesmanager/core/business/modules/cms/content/StaticContentFileManager.java
new file mode 100644
index 0000000..2f0a6c4
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/modules/cms/content/StaticContentFileManager.java
@@ -0,0 +1,13 @@
+/**
+ *
+ */
+package com.salesmanager.core.business.modules.cms.content;
+
+/**
+ * @author Umesh Awasthi
+ *
+ */
+public abstract class StaticContentFileManager implements FileGet,FilePut,FileRemove
+{
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/modules/cms/content/StaticContentFileManagerImpl.java b/sm-core/src/main/java/com/salesmanager/core/business/modules/cms/content/StaticContentFileManagerImpl.java
new file mode 100644
index 0000000..bd09f4c
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/modules/cms/content/StaticContentFileManagerImpl.java
@@ -0,0 +1,111 @@
+/**
+ *
+ */
+package com.salesmanager.core.business.modules.cms.content;
+
+import java.util.List;
+
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.business.modules.cms.content.infinispan.CmsStaticContentFileManagerImpl;
+import com.salesmanager.core.model.content.FileContentType;
+import com.salesmanager.core.model.content.InputContentFile;
+import com.salesmanager.core.model.content.OutputContentFile;
+
+
+/**
+ * @author Umesh Awasthi
+ *
+ */
+public class StaticContentFileManagerImpl extends StaticContentFileManager
+{
+
+ private FilePut uploadFile;
+ private FileGet getFile;
+ private FileRemove removeFile;
+
+
+
+ @Override
+ public void addFile( final String merchantStoreCode, final InputContentFile inputStaticContentData )
+ throws ServiceException
+ {
+ uploadFile.addFile( merchantStoreCode, inputStaticContentData );
+
+ }
+
+ /**
+ * Implementation for add static data files. This method will called respected add files method of underlying
+ * CMSStaticContentManager. For CMS Content files {@link CmsStaticContentFileManagerImpl} will take care of adding
+ * given content images with Infinispan cache.
+ *
+ * @param merchantStoreCode merchant store.
+ * @param inputStaticContentDataList Input content images
+ * @throws ServiceException
+ */
+ @Override
+ public void addFiles( final String merchantStoreCode, final List<InputContentFile> inputStaticContentDataList )
+ throws ServiceException
+ {
+ uploadFile.addFiles( merchantStoreCode, inputStaticContentDataList );
+ }
+ @Override
+ public void removeFile( final String merchantStoreCode, final FileContentType staticContentType, final String fileName)
+ throws ServiceException
+ {
+ removeFile.removeFile(merchantStoreCode, staticContentType, fileName);
+
+ }
+
+
+ @Override
+ public OutputContentFile getFile(String merchantStoreCode,
+ FileContentType fileContentType, String contentName)
+ throws ServiceException {
+ return getFile.getFile(merchantStoreCode, fileContentType, contentName);
+ }
+
+ @Override
+ public List<String> getFileNames(String merchantStoreCode,
+ FileContentType fileContentType) throws ServiceException {
+ return getFile.getFileNames(merchantStoreCode, fileContentType);
+ }
+
+ @Override
+ public List<OutputContentFile> getFiles(String merchantStoreCode,
+ FileContentType fileContentType) throws ServiceException {
+ return getFile.getFiles(merchantStoreCode, fileContentType);
+ }
+
+ @Override
+ public void removeFiles(String merchantStoreCode) throws ServiceException {
+ removeFile.removeFiles(merchantStoreCode);
+ }
+
+
+
+ public void setRemoveFile(FileRemove removeFile) {
+ this.removeFile = removeFile;
+ }
+
+ public FileRemove getRemoveFile() {
+ return removeFile;
+ }
+
+ public void setGetFile(FileGet getFile) {
+ this.getFile = getFile;
+ }
+
+ public FileGet getGetFile() {
+ return getFile;
+ }
+
+ public void setUploadFile(FilePut uploadFile) {
+ this.uploadFile = uploadFile;
+ }
+
+ public FilePut getUploadFile() {
+ return uploadFile;
+ }
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/modules/cms/impl/CacheManager.java b/sm-core/src/main/java/com/salesmanager/core/business/modules/cms/impl/CacheManager.java
new file mode 100644
index 0000000..67679ed
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/modules/cms/impl/CacheManager.java
@@ -0,0 +1,13 @@
+package com.salesmanager.core.business.modules.cms.impl;
+
+import org.infinispan.manager.EmbeddedCacheManager;
+import org.infinispan.tree.TreeCache;
+
+public interface CacheManager {
+
+ public EmbeddedCacheManager getManager();
+
+ @SuppressWarnings("rawtypes")
+ public TreeCache getTreeCache();
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/modules/cms/impl/CacheManagerImpl.java b/sm-core/src/main/java/com/salesmanager/core/business/modules/cms/impl/CacheManagerImpl.java
new file mode 100644
index 0000000..c617e63
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/modules/cms/impl/CacheManagerImpl.java
@@ -0,0 +1,65 @@
+package com.salesmanager.core.business.modules.cms.impl;
+
+import org.infinispan.Cache;
+import org.infinispan.manager.EmbeddedCacheManager;
+import org.infinispan.tree.TreeCache;
+import org.infinispan.tree.TreeCacheFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public abstract class CacheManagerImpl implements CacheManager {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(CacheManagerImpl.class);
+
+ @SuppressWarnings("rawtypes")
+ private TreeCache treeCache = null;
+
+ @SuppressWarnings("unchecked")
+ protected void init(String namedCache) {
+
+
+ try {
+
+
+ //manager = new DefaultCacheManager(repositoryFileName);
+
+ VendorCacheManager cacheManager = VendorCacheManager.getInstance();
+
+ @SuppressWarnings("rawtypes")
+ Cache cache = cacheManager.getManager().getCache(namedCache);
+ cache.getCacheConfiguration().invocationBatching().enabled();
+
+ TreeCacheFactory f = new TreeCacheFactory();
+
+ treeCache = f.createTreeCache(cache);
+
+ cache.start();
+
+ LOGGER.debug("CMS started");
+
+
+
+ } catch (Exception e) {
+ LOGGER.error("Error while instantiating CmsImageFileManager",e);
+ } finally {
+
+ }
+
+
+
+
+
+ }
+
+ public EmbeddedCacheManager getManager() {
+ return VendorCacheManager.getInstance().getManager();
+ }
+
+ @SuppressWarnings("rawtypes")
+ public TreeCache getTreeCache() {
+ return treeCache;
+ }
+
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/modules/cms/impl/LocalCacheManagerImpl.java b/sm-core/src/main/java/com/salesmanager/core/business/modules/cms/impl/LocalCacheManagerImpl.java
new file mode 100644
index 0000000..37877c4
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/modules/cms/impl/LocalCacheManagerImpl.java
@@ -0,0 +1,19 @@
+package com.salesmanager.core.business.modules.cms.impl;
+
+
+public class LocalCacheManagerImpl {
+
+ private static LocalCacheManagerImpl cacheManager = null;
+ public static LocalCacheManagerImpl getInstance() {
+
+ if(cacheManager==null) {
+ cacheManager = new LocalCacheManagerImpl();
+ }
+
+ return cacheManager;
+
+
+ }
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/modules/cms/impl/StaticContentCacheManagerImpl.java b/sm-core/src/main/java/com/salesmanager/core/business/modules/cms/impl/StaticContentCacheManagerImpl.java
new file mode 100644
index 0000000..db91515
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/modules/cms/impl/StaticContentCacheManagerImpl.java
@@ -0,0 +1,42 @@
+/**
+ *
+ */
+package com.salesmanager.core.business.modules.cms.impl;
+
+/**
+ * Cache manager to handle static content data in Infinispan cache.
+ * static content data can be of following type
+ * <pre>
+ * 1. CSS files.
+ * 2. JS Files.
+ * 3. Digital Data.
+ * </pre>
+ * @author Umesh Awasthi
+ * @version 1.2
+ *
+ *
+ */
+public class StaticContentCacheManagerImpl extends CacheManagerImpl
+{
+ private static StaticContentCacheManagerImpl cacheManager = null;
+ private final static String NAMED_CACHE = "FilesRepository";
+
+
+ private StaticContentCacheManagerImpl() {
+
+ super.init(NAMED_CACHE);
+
+
+ }
+
+ public static StaticContentCacheManagerImpl getInstance() {
+
+ if(cacheManager==null) {
+ cacheManager = new StaticContentCacheManagerImpl();
+ }
+
+ return cacheManager;
+
+
+ }
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/modules/cms/impl/StoreCacheManagerImpl.java b/sm-core/src/main/java/com/salesmanager/core/business/modules/cms/impl/StoreCacheManagerImpl.java
new file mode 100644
index 0000000..d9b730d
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/modules/cms/impl/StoreCacheManagerImpl.java
@@ -0,0 +1,42 @@
+package com.salesmanager.core.business.modules.cms.impl;
+
+
+
+/**
+ * Used for managing images
+ * @author casams1
+ *
+ */
+public class StoreCacheManagerImpl extends CacheManagerImpl {
+
+
+ private static StoreCacheManagerImpl cacheManager = null;
+ private final static String NAMED_CACHE = "StoreRepository";
+
+
+
+
+ private StoreCacheManagerImpl() {
+
+ super.init(NAMED_CACHE);
+
+
+ }
+
+
+ public static StoreCacheManagerImpl getInstance() {
+
+ if(cacheManager==null) {
+ cacheManager = new StoreCacheManagerImpl();
+
+ }
+
+ return cacheManager;
+
+
+ }
+
+
+
+}
+
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/modules/cms/impl/VendorCacheManager.java b/sm-core/src/main/java/com/salesmanager/core/business/modules/cms/impl/VendorCacheManager.java
new file mode 100644
index 0000000..9e28563
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/modules/cms/impl/VendorCacheManager.java
@@ -0,0 +1,41 @@
+package com.salesmanager.core.business.modules.cms.impl;
+
+import org.infinispan.manager.DefaultCacheManager;
+import org.infinispan.manager.EmbeddedCacheManager;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class VendorCacheManager {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(VendorCacheManager.class);
+ private EmbeddedCacheManager manager = null;
+ private static VendorCacheManager vendorCacheManager = null;
+ private String repositoryFileName = "cms/infinispan_configuration.xml";
+
+
+
+ private VendorCacheManager(){
+
+ try {
+ manager = new DefaultCacheManager(repositoryFileName);
+ } catch (Exception e) {
+ LOGGER.error("Cannot start manager " + e.toString());
+ }
+
+ }
+
+
+ public static VendorCacheManager getInstance() {
+ if(vendorCacheManager==null) {
+ vendorCacheManager = new VendorCacheManager();
+
+ }
+ return vendorCacheManager;
+ }
+
+
+ public EmbeddedCacheManager getManager() {
+ return manager;
+ }
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/modules/cms/product/local/CmsImageFileManagerImpl.java b/sm-core/src/main/java/com/salesmanager/core/business/modules/cms/product/local/CmsImageFileManagerImpl.java
new file mode 100644
index 0000000..233dd44
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/modules/cms/product/local/CmsImageFileManagerImpl.java
@@ -0,0 +1,327 @@
+package com.salesmanager.core.business.modules.cms.product.local;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.nio.file.StandardCopyOption;
+import java.util.List;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.salesmanager.core.business.constants.Constants;
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.business.modules.cms.impl.LocalCacheManagerImpl;
+import com.salesmanager.core.business.modules.cms.product.ProductImageGet;
+import com.salesmanager.core.business.modules.cms.product.ProductImagePut;
+import com.salesmanager.core.business.modules.cms.product.ProductImageRemove;
+import com.salesmanager.core.model.catalog.product.Product;
+import com.salesmanager.core.model.catalog.product.file.ProductImageSize;
+import com.salesmanager.core.model.catalog.product.image.ProductImage;
+import com.salesmanager.core.model.content.FileContentType;
+import com.salesmanager.core.model.content.ImageContentFile;
+import com.salesmanager.core.model.content.OutputContentFile;
+import com.salesmanager.core.model.merchant.MerchantStore;
+
+/**
+ * Manager for storing and deleting image files from the CMS which is a web server
+ *
+ * Manages
+ * - Product images
+ * @author Carl Samson
+ */
+public class CmsImageFileManagerImpl
+ implements ProductImagePut, ProductImageGet, ProductImageRemove
+{
+
+ private static final Logger LOGGER = LoggerFactory.getLogger( CmsImageFileManagerImpl.class );
+
+ private static CmsImageFileManagerImpl fileManager = null;
+
+ private final static String ROOT_NAME = "";
+
+ private final static String SMALL = "SMALL";
+ private final static String LARGE = "LARGE";
+
+ private static final String ROOT_CONTAINER = "products";
+
+ private String rootName = ROOT_NAME;
+
+ private LocalCacheManagerImpl cacheManager;
+
+
+ public static CmsImageFileManagerImpl getInstance()
+ {
+
+ if ( fileManager == null )
+ {
+ fileManager = new CmsImageFileManagerImpl();
+ }
+
+ return fileManager;
+
+ }
+
+ private CmsImageFileManagerImpl()
+ {
+
+ }
+
+ /**
+ * root/products/<merchant id>/<product id>/1.jpg
+ */
+
+ @Override
+ public void addProductImage( ProductImage productImage,
+ ImageContentFile contentImage )
+ throws ServiceException
+ {
+
+
+ try
+ {
+
+ //base path
+ String rootPath = this.buildRootPath();
+ Path confDir = Paths.get(rootPath);
+ this.createDirectoryIfNorExist(confDir);
+
+ //node path
+ StringBuilder nodePath = new StringBuilder();
+ nodePath
+ .append(rootPath)
+ .append(productImage.getProduct().getMerchantStore().getCode());
+ Path merchantPath = Paths.get(nodePath.toString());
+ this.createDirectoryIfNorExist(merchantPath);
+
+ //product path
+ nodePath.append(Constants.SLASH).append(productImage.getProduct().getSku()).append(Constants.SLASH);
+ Path dirPath = Paths.get(nodePath.toString());
+ this.createDirectoryIfNorExist(dirPath);
+
+ //small large
+ if(contentImage.getFileContentType().name().equals(FileContentType.PRODUCT.name())) {
+ nodePath.append(SMALL);
+ } else if(contentImage.getFileContentType().name().equals(FileContentType.PRODUCTLG.name())) {
+ nodePath.append(LARGE);
+ }
+ Path sizePath = Paths.get(nodePath.toString());
+ this.createDirectoryIfNorExist(sizePath);
+
+
+ //file creation
+ nodePath.append(Constants.SLASH).append(contentImage.getFileName());
+
+
+ Path path = Paths.get(nodePath.toString());
+ InputStream isFile = contentImage.getFile();
+
+ Files.copy(isFile, path, StandardCopyOption.REPLACE_EXISTING);
+
+
+ }
+ catch ( Exception e )
+ {
+
+ throw new ServiceException( e );
+
+ }
+
+ }
+
+ @Override
+ public OutputContentFile getProductImage( ProductImage productImage )
+ throws ServiceException
+ {
+
+ //the web server takes care of the images
+ return null;
+
+ }
+
+
+ public List<OutputContentFile> getImages( MerchantStore store, FileContentType imageContentType )
+ throws ServiceException
+ {
+
+ //the web server takes care of the images
+
+ return null;
+
+ }
+
+ @Override
+ public List<OutputContentFile> getImages( Product product )
+ throws ServiceException
+ {
+
+ //the web server takes care of the images
+
+ return null;
+ }
+
+
+
+ @Override
+ public void removeImages( final String merchantStoreCode )
+ throws ServiceException
+ {
+
+ try
+ {
+
+
+ StringBuilder merchantPath = new StringBuilder();
+ merchantPath.append(buildRootPath())
+ .append(Constants.SLASH)
+ .append(merchantStoreCode);
+
+ Path path = Paths.get(merchantPath.toString());
+
+ Files.deleteIfExists(path);
+
+
+ }
+ catch ( Exception e )
+ {
+ throw new ServiceException( e );
+ }
+
+
+ }
+
+
+ @Override
+ public void removeProductImage( ProductImage productImage )
+ throws ServiceException
+ {
+
+
+ try
+ {
+
+
+ StringBuilder nodePath = new StringBuilder();
+ nodePath.append(buildRootPath())
+ .append(Constants.SLASH)
+ .append(productImage.getProduct().getMerchantStore().getCode()).append(Constants.SLASH).append(productImage.getProduct().getSku());
+
+ //delete small
+ StringBuilder smallPath = new StringBuilder(nodePath);
+ smallPath.append(Constants.SLASH).append(SMALL).append(Constants.SLASH).append(productImage.getProductImage());
+
+
+ Path path = Paths.get(smallPath.toString());
+
+ Files.deleteIfExists(path);
+
+ //delete large
+ StringBuilder largePath = new StringBuilder(nodePath);
+ largePath.append(Constants.SLASH).append(LARGE).append(Constants.SLASH).append(productImage.getProductImage());
+
+
+ path = Paths.get(largePath.toString());
+
+ Files.deleteIfExists(path);
+
+ }
+ catch ( Exception e )
+ {
+ throw new ServiceException( e );
+ }
+
+
+ }
+
+ @Override
+ public void removeProductImages( Product product )
+ throws ServiceException
+ {
+
+ try
+ {
+
+
+ StringBuilder nodePath = new StringBuilder();
+ nodePath.append(buildRootPath())
+ .append(Constants.SLASH)
+ .append(product.getMerchantStore().getCode()).append(Constants.SLASH).append(product.getSku());
+
+
+ Path path = Paths.get(nodePath.toString());
+
+ Files.deleteIfExists(path);
+
+ }
+ catch ( Exception e )
+ {
+ throw new ServiceException( e );
+ }
+
+ }
+
+
+ @Override
+ public List<OutputContentFile> getImages(final String merchantStoreCode,
+ FileContentType imageContentType) throws ServiceException {
+
+ //the web server taks care of the images
+
+ return null;
+ }
+
+ @Override
+ public OutputContentFile getProductImage(String merchantStoreCode,
+ String productCode, String imageName) throws ServiceException {
+ return getProductImage(merchantStoreCode, productCode, imageName, ProductImageSize.SMALL.name());
+ }
+
+ @Override
+ public OutputContentFile getProductImage(String merchantStoreCode,
+ String productCode, String imageName, ProductImageSize size)
+ throws ServiceException {
+ return getProductImage(merchantStoreCode, productCode, imageName, size.name());
+ }
+
+ private OutputContentFile getProductImage(String merchantStoreCode,
+ String productCode, String imageName, String size) throws ServiceException {
+
+ return null;
+
+ }
+
+
+ private String buildRootPath() {
+ return new StringBuilder().append(getRootName()).append(Constants.SLASH).append(ROOT_CONTAINER).append(Constants.SLASH).toString();
+
+ }
+
+
+ private void createDirectoryIfNorExist(Path path) throws IOException {
+
+ if (Files.notExists(path)) {
+ Files.createDirectory(path);
+ }
+ }
+
+ public void setRootName(String rootName) {
+ this.rootName = rootName;
+ }
+
+ public String getRootName() {
+ return rootName;
+ }
+
+ public LocalCacheManagerImpl getCacheManager() {
+ return cacheManager;
+ }
+
+ public void setCacheManager(LocalCacheManagerImpl cacheManager) {
+ this.cacheManager = cacheManager;
+ }
+
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/modules/cms/product/ProductFileManager.java b/sm-core/src/main/java/com/salesmanager/core/business/modules/cms/product/ProductFileManager.java
new file mode 100644
index 0000000..50f1b6a
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/modules/cms/product/ProductFileManager.java
@@ -0,0 +1,11 @@
+package com.salesmanager.core.business.modules.cms.product;
+
+
+
+
+public abstract class ProductFileManager implements ProductImagePut, ProductImageGet, ProductImageRemove {
+
+
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/modules/cms/product/ProductImageGet.java b/sm-core/src/main/java/com/salesmanager/core/business/modules/cms/product/ProductImageGet.java
new file mode 100644
index 0000000..7c3b874
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/modules/cms/product/ProductImageGet.java
@@ -0,0 +1,28 @@
+package com.salesmanager.core.business.modules.cms.product;
+
+import java.util.List;
+
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.business.modules.cms.common.ImageGet;
+import com.salesmanager.core.model.catalog.product.Product;
+import com.salesmanager.core.model.catalog.product.file.ProductImageSize;
+import com.salesmanager.core.model.catalog.product.image.ProductImage;
+import com.salesmanager.core.model.content.OutputContentFile;
+
+public interface ProductImageGet extends ImageGet{
+
+ /**
+ * Used for accessing the path directly
+ * @param merchantStoreCode
+ * @param product
+ * @param imageName
+ * @return
+ * @throws ServiceException
+ */
+ public OutputContentFile getProductImage(final String merchantStoreCode, final String productCode, final String imageName) throws ServiceException;
+ public OutputContentFile getProductImage(final String merchantStoreCode, final String productCode, final String imageName, final ProductImageSize size) throws ServiceException;
+ public OutputContentFile getProductImage(ProductImage productImage) throws ServiceException;
+ public List<OutputContentFile> getImages(Product product) throws ServiceException;
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/modules/cms/product/ProductImagePut.java b/sm-core/src/main/java/com/salesmanager/core/business/modules/cms/product/ProductImagePut.java
new file mode 100644
index 0000000..60d4837
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/modules/cms/product/ProductImagePut.java
@@ -0,0 +1,14 @@
+package com.salesmanager.core.business.modules.cms.product;
+
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.model.catalog.product.image.ProductImage;
+import com.salesmanager.core.model.content.ImageContentFile;
+
+
+public interface ProductImagePut {
+
+
+ public void addProductImage(ProductImage productImage, ImageContentFile contentImage) throws ServiceException;
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/modules/cms/product/ProductImageRemove.java b/sm-core/src/main/java/com/salesmanager/core/business/modules/cms/product/ProductImageRemove.java
new file mode 100644
index 0000000..a928d0e
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/modules/cms/product/ProductImageRemove.java
@@ -0,0 +1,17 @@
+package com.salesmanager.core.business.modules.cms.product;
+
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.business.modules.cms.common.ImageRemove;
+import com.salesmanager.core.model.catalog.product.Product;
+import com.salesmanager.core.model.catalog.product.image.ProductImage;
+
+
+public interface ProductImageRemove extends ImageRemove {
+
+
+ public void removeProductImage(ProductImage productImage) throws ServiceException;
+ public void removeProductImages(Product product) throws ServiceException;
+
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/modules/email/Email.java b/sm-core/src/main/java/com/salesmanager/core/business/modules/email/Email.java
new file mode 100644
index 0000000..fbd5328
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/modules/email/Email.java
@@ -0,0 +1,70 @@
+package com.salesmanager.core.business.modules.email;
+
+import java.io.Serializable;
+import java.util.HashMap;
+import java.util.Map;
+
+public class Email implements Serializable {
+
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 6481794982612826257L;
+ private String from;
+ private String fromEmail;
+ private String to;
+ private String subject;
+ private String templateName;
+
+ private Map<String,String> templateTokens = new HashMap<String,String>();
+
+ public String getFrom() {
+ return from;
+ }
+
+ public void setFrom(String from) {
+ this.from = from;
+ }
+
+ public String getTo() {
+ return to;
+ }
+
+ public void setTo(String to) {
+ this.to = to;
+ }
+
+ public String getSubject() {
+ return subject;
+ }
+
+ public void setSubject(String subject) {
+ this.subject = subject;
+ }
+
+ public String getTemplateName() {
+ return templateName;
+ }
+
+ public void setTemplateName(String templateName) {
+ this.templateName = templateName;
+ }
+
+ public Map<String, String> getTemplateTokens() {
+ return templateTokens;
+ }
+
+ public void setTemplateTokens(Map<String, String> templateTokens) {
+ this.templateTokens = templateTokens;
+ }
+
+ public void setFromEmail(String fromEmail) {
+ this.fromEmail = fromEmail;
+ }
+
+ public String getFromEmail() {
+ return fromEmail;
+ }
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/modules/email/EmailConfig.java b/sm-core/src/main/java/com/salesmanager/core/business/modules/email/EmailConfig.java
new file mode 100644
index 0000000..ee29976
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/modules/email/EmailConfig.java
@@ -0,0 +1,113 @@
+package com.salesmanager.core.business.modules.email;
+
+import org.json.simple.JSONAware;
+import org.json.simple.JSONObject;
+
+public class EmailConfig implements JSONAware {
+
+ private String host;
+ private String port;
+ private String protocol;
+ private String username;
+ private String password;
+ private boolean smtpAuth = false;
+ private boolean starttls = false;
+
+ private String emailTemplatesPath = null;
+
+ @SuppressWarnings("unchecked")
+ @Override
+ public String toJSONString() {
+ JSONObject data = new JSONObject();
+ data.put("host", this.getHost());
+ data.put("port", this.getPort());
+ data.put("protocol", this.getProtocol());
+ data.put("username", this.getUsername());
+ data.put("smtpAuth", this.isSmtpAuth());
+ data.put("starttls", this.isStarttls());
+ data.put("password", this.getPassword());
+ return data.toJSONString();
+ }
+
+
+
+ public boolean isSmtpAuth() {
+ return smtpAuth;
+ }
+ public void setSmtpAuth(boolean smtpAuth) {
+ this.smtpAuth = smtpAuth;
+ }
+ public boolean isStarttls() {
+ return starttls;
+ }
+ public void setStarttls(boolean starttls) {
+ this.starttls = starttls;
+ }
+ public void setEmailTemplatesPath(String emailTemplatesPath) {
+ this.emailTemplatesPath = emailTemplatesPath;
+ }
+ public String getEmailTemplatesPath() {
+ return emailTemplatesPath;
+ }
+
+
+
+ public String getHost() {
+ return host;
+ }
+
+
+
+ public void setHost(String host) {
+ this.host = host;
+ }
+
+
+
+ public String getPort() {
+ return port;
+ }
+
+
+
+ public void setPort(String port) {
+ this.port = port;
+ }
+
+
+
+ public String getProtocol() {
+ return protocol;
+ }
+
+
+
+ public void setProtocol(String protocol) {
+ this.protocol = protocol;
+ }
+
+
+
+ public String getUsername() {
+ return username;
+ }
+
+
+
+ public void setUsername(String username) {
+ this.username = username;
+ }
+
+
+
+ public String getPassword() {
+ return password;
+ }
+
+
+
+ public void setPassword(String password) {
+ this.password = password;
+ }
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/modules/email/HtmlEmailSender.java b/sm-core/src/main/java/com/salesmanager/core/business/modules/email/HtmlEmailSender.java
new file mode 100644
index 0000000..7f5cfe5
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/modules/email/HtmlEmailSender.java
@@ -0,0 +1,10 @@
+package com.salesmanager.core.business.modules.email;
+
+
+public interface HtmlEmailSender {
+
+ public void send(final Email email) throws Exception;
+
+ public void setEmailConfig(EmailConfig emailConfig);
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/modules/email/HtmlEmailSenderImpl.java b/sm-core/src/main/java/com/salesmanager/core/business/modules/email/HtmlEmailSenderImpl.java
new file mode 100644
index 0000000..deb4317
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/modules/email/HtmlEmailSenderImpl.java
@@ -0,0 +1,195 @@
+package com.salesmanager.core.business.modules.email;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import java.util.Map;
+import java.util.Properties;
+
+import javax.mail.BodyPart;
+import javax.mail.Message;
+import javax.mail.MessagingException;
+import javax.mail.Multipart;
+import javax.mail.internet.InternetAddress;
+import javax.mail.internet.MimeBodyPart;
+import javax.mail.internet.MimeMessage;
+import javax.mail.internet.MimeMultipart;
+
+import org.springframework.mail.MailPreparationException;
+import org.springframework.mail.javamail.JavaMailSender;
+import org.springframework.mail.javamail.JavaMailSenderImpl;
+import org.springframework.mail.javamail.MimeMessagePreparator;
+
+import freemarker.template.Configuration;
+import freemarker.template.Template;
+import freemarker.template.TemplateException;
+
+
+public class HtmlEmailSenderImpl implements HtmlEmailSender {
+
+ private static final String CHARSET = "UTF-8";
+ private Configuration freemarkerMailConfiguration;
+ private JavaMailSender mailSender;
+ private EmailConfig emailConfig;
+
+ private final static String TEMPLATE_PATH = "templates/email";
+
+ @Override
+ public void send(Email email)
+ throws Exception {
+
+ final String eml = email.getFrom();
+ final String from = email.getFromEmail();
+ final String to = email.getTo();
+ final String subject = email.getSubject();
+ final String tmpl = email.getTemplateName();
+ final Map<String,String> templateTokens = email.getTemplateTokens();
+
+ MimeMessagePreparator preparator = new MimeMessagePreparator() {
+ public void prepare(MimeMessage mimeMessage)
+ throws MessagingException, IOException {
+
+ JavaMailSenderImpl impl = (JavaMailSenderImpl)mailSender;
+ // if email configuration is present in Database, use the same
+ if(emailConfig != null) {
+ impl.setProtocol(emailConfig.getProtocol());
+ impl.setHost(emailConfig.getHost());
+ impl.setPort(Integer.parseInt(emailConfig.getPort()));
+ impl.setUsername(emailConfig.getUsername());
+ impl.setPassword(emailConfig.getPassword());
+
+ Properties prop = new Properties();
+ prop.put("mail.smtp.auth", emailConfig.isSmtpAuth());
+ prop.put("mail.smtp.starttls.enable", emailConfig.isStarttls());
+ impl.setJavaMailProperties(prop);
+ }
+
+ mimeMessage.setRecipient(Message.RecipientType.TO, new InternetAddress(to));
+
+ InternetAddress inetAddress = new InternetAddress();
+
+ inetAddress.setPersonal(eml);
+ inetAddress.setAddress(from);
+
+ mimeMessage.setFrom(inetAddress);
+ mimeMessage.setSubject(subject);
+
+ Multipart mp = new MimeMultipart("alternative");
+
+ // Create a "text" Multipart message
+ BodyPart textPart = new MimeBodyPart();
+ freemarkerMailConfiguration.setClassForTemplateLoading(HtmlEmailSenderImpl.class, "/");
+ Template textTemplate = freemarkerMailConfiguration.getTemplate(new StringBuilder(TEMPLATE_PATH).append("").append("/").append(tmpl).toString());
+ final StringWriter textWriter = new StringWriter();
+ try {
+ textTemplate.process(templateTokens, textWriter);
+ } catch (TemplateException e) {
+ throw new MailPreparationException(
+ "Can't generate text mail", e);
+ }
+ textPart.setDataHandler(new javax.activation.DataHandler(
+ new javax.activation.DataSource() {
+ public InputStream getInputStream()
+ throws IOException {
+ //return new StringBufferInputStream(textWriter
+ // .toString());
+ return new ByteArrayInputStream(textWriter
+ .toString().getBytes(CHARSET));
+ }
+
+ public OutputStream getOutputStream()
+ throws IOException {
+ throw new IOException("Read-only data");
+ }
+
+ public String getContentType() {
+ return "text/plain";
+ }
+
+ public String getName() {
+ return "main";
+ }
+ }));
+ mp.addBodyPart(textPart);
+
+ // Create a "HTML" Multipart message
+ Multipart htmlContent = new MimeMultipart("related");
+ BodyPart htmlPage = new MimeBodyPart();
+ freemarkerMailConfiguration.setClassForTemplateLoading(HtmlEmailSenderImpl.class, "/");
+ Template htmlTemplate = freemarkerMailConfiguration.getTemplate(new StringBuilder(TEMPLATE_PATH).append("").append("/").append(tmpl).toString());
+ final StringWriter htmlWriter = new StringWriter();
+ try {
+ htmlTemplate.process(templateTokens, htmlWriter);
+ } catch (TemplateException e) {
+ throw new MailPreparationException(
+ "Can't generate HTML mail", e);
+ }
+ htmlPage.setDataHandler(new javax.activation.DataHandler(
+ new javax.activation.DataSource() {
+ public InputStream getInputStream()
+ throws IOException {
+ //return new StringBufferInputStream(htmlWriter
+ // .toString());
+ return new ByteArrayInputStream(textWriter
+ .toString().getBytes(CHARSET));
+ }
+
+ public OutputStream getOutputStream()
+ throws IOException {
+ throw new IOException("Read-only data");
+ }
+
+ public String getContentType() {
+ return "text/html";
+ }
+
+ public String getName() {
+ return "main";
+ }
+ }));
+ htmlContent.addBodyPart(htmlPage);
+ BodyPart htmlPart = new MimeBodyPart();
+ htmlPart.setContent(htmlContent);
+ mp.addBodyPart(htmlPart);
+
+ mimeMessage.setContent(mp);
+
+ // if(attachment!=null) {
+ // MimeMessageHelper messageHelper = new
+ // MimeMessageHelper(mimeMessage, true);
+ // messageHelper.addAttachment(attachmentFileName, attachment);
+ // }
+
+ }
+ };
+
+ mailSender.send(preparator);
+ }
+
+ public Configuration getFreemarkerMailConfiguration() {
+ return freemarkerMailConfiguration;
+ }
+
+ public void setFreemarkerMailConfiguration(Configuration freemarkerMailConfiguration) {
+ this.freemarkerMailConfiguration = freemarkerMailConfiguration;
+ }
+
+ public JavaMailSender getMailSender() {
+ return mailSender;
+ }
+
+ public void setMailSender(JavaMailSender mailSender) {
+ this.mailSender = mailSender;
+ }
+
+ public EmailConfig getEmailConfig() {
+ return emailConfig;
+ }
+
+ public void setEmailConfig(EmailConfig emailConfig) {
+ this.emailConfig = emailConfig;
+ }
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/modules/integration/IntegrationException.java b/sm-core/src/main/java/com/salesmanager/core/business/modules/integration/IntegrationException.java
new file mode 100644
index 0000000..e1b7ea8
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/modules/integration/IntegrationException.java
@@ -0,0 +1,62 @@
+package com.salesmanager.core.business.modules.integration;
+
+import java.util.List;
+
+import com.salesmanager.core.business.exception.ServiceException;
+
+
+public class IntegrationException extends ServiceException {
+
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+ public static final int ERROR_VALIDATION_SAVE = 100;
+ public static final int TRANSACTION_EXCEPTION = 99;
+
+ private List<String> errorFields;
+
+ private int errorCode = 0;
+
+ public int getErrorCode() {
+ return errorCode;
+ }
+
+ public void setErrorCode(int errorCode) {
+ this.errorCode = errorCode;
+ }
+
+ public IntegrationException(Exception e) {
+ super(e);
+ }
+
+ public IntegrationException(String message, Exception e) {
+ super(message,e);
+ }
+
+ public IntegrationException(int code, String message) {
+
+ super(message);
+ this.errorCode = code;
+ }
+
+ public IntegrationException(int code) {
+
+ this.errorCode = code;
+ }
+
+ public IntegrationException(String message) {
+ super(message);
+ }
+
+ public void setErrorFields(List<String> errorFields) {
+ this.errorFields = errorFields;
+ }
+
+ public List<String> getErrorFields() {
+ return errorFields;
+ }
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/modules/integration/payment/impl/MoneyOrderPayment.java b/sm-core/src/main/java/com/salesmanager/core/business/modules/integration/payment/impl/MoneyOrderPayment.java
new file mode 100644
index 0000000..bccdbd1
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/modules/integration/payment/impl/MoneyOrderPayment.java
@@ -0,0 +1,119 @@
+package com.salesmanager.core.business.modules.integration.payment.impl;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.commons.lang3.StringUtils;
+
+import com.salesmanager.core.model.customer.Customer;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.order.Order;
+import com.salesmanager.core.model.payments.Payment;
+import com.salesmanager.core.model.payments.PaymentType;
+import com.salesmanager.core.model.payments.Transaction;
+import com.salesmanager.core.model.payments.TransactionType;
+import com.salesmanager.core.model.shoppingcart.ShoppingCartItem;
+import com.salesmanager.core.model.system.IntegrationConfiguration;
+import com.salesmanager.core.model.system.IntegrationModule;
+import com.salesmanager.core.modules.integration.IntegrationException;
+import com.salesmanager.core.modules.integration.payment.model.PaymentModule;
+
+public class MoneyOrderPayment implements PaymentModule {
+
+ @Override
+ public void validateModuleConfiguration(
+ IntegrationConfiguration integrationConfiguration,
+ MerchantStore store) throws IntegrationException {
+
+ List<String> errorFields = null;
+
+
+ Map<String,String> keys = integrationConfiguration.getIntegrationKeys();
+
+ //validate integrationKeys['address']
+ if(keys==null || StringUtils.isBlank(keys.get("address"))) {
+ errorFields = new ArrayList<String>();
+ errorFields.add("address");
+ }
+
+ if(errorFields!=null) {
+ IntegrationException ex = new IntegrationException(IntegrationException.ERROR_VALIDATION_SAVE);
+ ex.setErrorFields(errorFields);
+ throw ex;
+
+ }
+
+
+
+ return;
+
+ }
+
+ @Override
+ public Transaction initTransaction(MerchantStore store, Customer customer,
+ BigDecimal amount, Payment payment,
+ IntegrationConfiguration configuration, IntegrationModule module)
+ throws IntegrationException {
+ //NOT REQUIRED
+ return null;
+ }
+
+ @Override
+ public Transaction authorize(MerchantStore store, Customer customer,
+ List<ShoppingCartItem> items, BigDecimal amount, Payment payment,
+ IntegrationConfiguration configuration, IntegrationModule module)
+ throws IntegrationException {
+ //NOT REQUIRED
+ return null;
+ }
+
+/* @Override
+ public Transaction capture(MerchantStore store, Customer customer,
+ List<ShoppingCartItem> items, BigDecimal amount, Payment payment, Transaction transaction,
+ IntegrationConfiguration configuration, IntegrationModule module)
+ throws IntegrationException {
+ //NOT REQUIRED
+ return null;
+ }*/
+
+ @Override
+ public Transaction authorizeAndCapture(MerchantStore store, Customer customer,
+ List<ShoppingCartItem> items, BigDecimal amount, Payment payment,
+ IntegrationConfiguration configuration, IntegrationModule module)
+ throws IntegrationException {
+
+
+ Transaction transaction = new Transaction();
+ transaction.setAmount(amount);
+ transaction.setTransactionDate(new Date());
+ transaction.setTransactionType(TransactionType.AUTHORIZECAPTURE);
+ transaction.setPaymentType(PaymentType.MONEYORDER);
+
+
+ return transaction;
+
+
+
+ }
+
+ @Override
+ public Transaction refund(boolean partial, MerchantStore store, Transaction transaction,
+ Order order, BigDecimal amount,
+ IntegrationConfiguration configuration, IntegrationModule module)
+ throws IntegrationException {
+ throw new IntegrationException("Transaction not supported");
+ }
+
+ @Override
+ public Transaction capture(MerchantStore store, Customer customer,
+ Order order, Transaction capturableTransaction,
+ IntegrationConfiguration configuration, IntegrationModule module)
+ throws IntegrationException {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/modules/integration/payment/impl/PayPalRestPayment.java b/sm-core/src/main/java/com/salesmanager/core/business/modules/integration/payment/impl/PayPalRestPayment.java
new file mode 100644
index 0000000..7df212b
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/modules/integration/payment/impl/PayPalRestPayment.java
@@ -0,0 +1,251 @@
+package com.salesmanager.core.business.modules.integration.payment.impl;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.commons.lang3.StringUtils;
+
+import com.salesmanager.core.model.customer.Customer;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.order.Order;
+import com.salesmanager.core.model.payments.Payment;
+import com.salesmanager.core.model.payments.Transaction;
+import com.salesmanager.core.model.shoppingcart.ShoppingCartItem;
+import com.salesmanager.core.model.system.IntegrationConfiguration;
+import com.salesmanager.core.model.system.IntegrationModule;
+//import com.paypal.core.rest.OAuthTokenCredential;
+//import com.paypal.core.rest.PayPalRESTException;
+import com.salesmanager.core.modules.integration.IntegrationException;
+import com.salesmanager.core.modules.integration.payment.model.PaymentModule;
+
+
+public class PayPalRestPayment implements PaymentModule {
+
+
+ @Override
+ public void validateModuleConfiguration(
+ IntegrationConfiguration integrationConfiguration,
+ MerchantStore store) throws IntegrationException {
+
+
+ List<String> errorFields = null;
+
+ //validate integrationKeys['account']
+ Map<String,String> keys = integrationConfiguration.getIntegrationKeys();
+ if(keys==null || StringUtils.isBlank(keys.get("client"))) {
+ errorFields = new ArrayList<String>();
+ errorFields.add("client");
+ }
+
+ if(keys==null || StringUtils.isBlank(keys.get("secret"))) {
+ if(errorFields==null) {
+ errorFields = new ArrayList<String>();
+ }
+ errorFields.add("secret");
+ }
+
+
+ if(errorFields!=null) {
+ IntegrationException ex = new IntegrationException(IntegrationException.ERROR_VALIDATION_SAVE);
+ ex.setErrorFields(errorFields);
+ throw ex;
+
+ }
+
+ }
+
+ @Override
+ public Transaction initTransaction(MerchantStore store, Customer customer,
+ BigDecimal amount, Payment payment,
+ IntegrationConfiguration configuration, IntegrationModule module)
+ throws IntegrationException {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public Transaction authorize(MerchantStore store, Customer customer,
+ List<ShoppingCartItem> items, BigDecimal amount, Payment payment,
+ IntegrationConfiguration configuration, IntegrationModule module)
+ throws IntegrationException {
+
+ return null;
+
+/*
+ // ###AccessToken
+ // Retrieve the access token from
+ // OAuthTokenCredential by passing in
+ // ClientID and ClientSecret
+ APIContext apiContext = null;
+ String accessToken = null;
+
+ try {
+
+ String clientID = configuration.getIntegrationKeys().get("client");
+ String secret = configuration.getIntegrationKeys().get("secret");
+
+ accessToken = getAccessToken(clientID, secret);
+
+ // ### Api Context
+ // Pass in a `ApiContext` object to authenticate
+ // the call and to send a unique request id
+ // (that ensures idempotency). The SDK generates
+ // a request id if you do not pass one explicitly.
+ apiContext = new APIContext(accessToken);
+ // Use this variant if you want to pass in a request id
+ // that is meaningful in your application, ideally
+ // a order id.
+
+ * String requestId = Long.toString(System.nanoTime(); APIContext
+ * apiContext = new APIContext(accessToken, requestId ));
+
+
+ // ###Authorization
+ // Retrieve an Authorization Id
+ // by making a Payment with intent
+ // as 'authorize' and parsing through
+ // the Payment object
+
+
+ String authorizationID = null;
+
+ // ###Details
+ // Let's you specify details of a payment amount.
+ //Details details = new Details();
+ //details.setShipping("0.03");
+ //details.setSubtotal("107.41");
+ //details.setTax("0.03");
+
+ // ###Amount
+ // Let's you specify a payment amount.
+
+ String sAmount = productPriceUtils.getAdminFormatedAmount(store, amount);
+
+
+ Amount amnt = new Amount();
+ amnt.setCurrency(store.getCurrency().getCode());
+ amnt.setTotal(sAmount);
+ //amnt.setDetails(details);
+
+ // ###Transaction
+ // A transaction defines the contract of a
+ // payment - what is the payment for and who
+ // is fulfilling it. Transaction is created with
+ // a `Payee` and `Amount` types
+ com.paypal.api.payments.Transaction transaction = new com.paypal.api.payments.Transaction();
+ transaction.setAmount(amnt);
+ //TODO change description
+ transaction.setDescription("This is the payment transaction description.");
+
+ // The Payment creation API requires a list of
+ // Transaction; add the created `Transaction`
+ // to a List
+ List<com.paypal.api.payments.Transaction> transactions = new ArrayList<com.paypal.api.payments.Transaction>();
+ transactions.add(transaction);
+
+ // ###Payer
+ // A resource representing a Payer that funds a payment
+ // Payment Method
+ // as 'paypal'
+ Payer payer = new Payer();
+ payer.setPaymentMethod("paypal");
+
+ // ###Payment
+ // A Payment Resource; create one using
+ // the above types and intent as 'sale'
+ com.paypal.api.payments.Payment ppayment = new com.paypal.api.payments.Payment();
+ ppayment.setIntent("sale");
+ ppayment.setPayer(payer);
+ ppayment.setTransactions(transactions);
+
+ // ###Redirect URLs
+ RedirectUrls redirectUrls = new RedirectUrls();
+ String guid = UUID.randomUUID().toString().replaceAll("-", "");
+ redirectUrls.setCancelUrl(req.getScheme() + "://"
+ + req.getServerName() + ":" + req.getServerPort()
+ + req.getContextPath() + "/paymentwithpaypal?guid=" + guid);
+ redirectUrls.setReturnUrl(req.getScheme() + "://"
+ + req.getServerName() + ":" + req.getServerPort()
+ + req.getContextPath() + "/paymentwithpaypal?guid=" + guid);
+ payment.setRedirectUrls(redirectUrls);
+
+ // Create a payment by posting to the APIService
+ // using a valid AccessToken
+ // The return object contains the status;
+ try {
+ Payment createdPayment = payment.create(apiContext);
+ LOGGER.info("Created payment with id = "
+ + createdPayment.getId() + " and status = "
+ + createdPayment.getState());
+ // ###Payment Approval Url
+ Iterator<Links> links = createdPayment.getLinks().iterator();
+ while (links.hasNext()) {
+ Links link = links.next();
+ if (link.getRel().equalsIgnoreCase("approval_url")) {
+ req.setAttribute("redirectURL", link.getHref());
+ }
+ }
+ req.setAttribute("response", Payment.getLastResponse());
+ map.put(guid, createdPayment.getId());
+ } catch (PayPalRESTException e) {
+ req.setAttribute("error", e.getMessage());
+ }
+ } catch (PayPalRESTException e) {
+ throw new IntegrationException(e);
+ }
+*/
+
+
+ }
+
+/* @Override
+ public Transaction capture(MerchantStore store, Customer customer,
+ List<ShoppingCartItem> items, BigDecimal amount, Payment payment, Transaction transaction,
+ IntegrationConfiguration configuration, IntegrationModule module)
+ throws IntegrationException {
+ // TODO Auto-generated method stub
+ return null;
+ }*/
+
+ @Override
+ public Transaction authorizeAndCapture(MerchantStore store,
+ Customer customer, List<ShoppingCartItem> items, BigDecimal amount, Payment payment,
+ IntegrationConfiguration configuration, IntegrationModule module)
+ throws IntegrationException {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public Transaction refund(boolean partial, MerchantStore store,
+ Transaction transaction, Order order, BigDecimal amount,
+ IntegrationConfiguration configuration, IntegrationModule module)
+ throws IntegrationException {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ private String getAccessToken(String clientID, String clientSecret) throws Exception {
+
+ // ###AccessToken
+ // Retrieve the access token from
+ // OAuthTokenCredential by passing in
+ // ClientID and ClientSecret
+
+ return null;
+ //return new OAuthTokenCredential(clientID, clientSecret)
+ // .getAccessToken();
+ }
+
+ @Override
+ public Transaction capture(MerchantStore store, Customer customer,
+ Order order, Transaction capturableTransaction,
+ IntegrationConfiguration configuration, IntegrationModule module)
+ throws IntegrationException {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/modules/integration/payment/impl/StripePayment.java b/sm-core/src/main/java/com/salesmanager/core/business/modules/integration/payment/impl/StripePayment.java
new file mode 100644
index 0000000..adaadfe
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/modules/integration/payment/impl/StripePayment.java
@@ -0,0 +1,552 @@
+package com.salesmanager.core.business.modules.integration.payment.impl;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.inject.Inject;
+
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.salesmanager.core.business.utils.ProductPriceUtils;
+import com.salesmanager.core.model.customer.Customer;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.order.Order;
+import com.salesmanager.core.model.payments.Payment;
+import com.salesmanager.core.model.payments.PaymentType;
+import com.salesmanager.core.model.payments.Transaction;
+import com.salesmanager.core.model.payments.TransactionType;
+import com.salesmanager.core.model.shoppingcart.ShoppingCartItem;
+import com.salesmanager.core.model.system.IntegrationConfiguration;
+import com.salesmanager.core.model.system.IntegrationModule;
+import com.salesmanager.core.modules.integration.IntegrationException;
+import com.salesmanager.core.modules.integration.payment.model.PaymentModule;
+import com.stripe.Stripe;
+import com.stripe.exception.APIConnectionException;
+import com.stripe.exception.AuthenticationException;
+import com.stripe.exception.CardException;
+import com.stripe.exception.InvalidRequestException;
+import com.stripe.exception.StripeException;
+import com.stripe.model.Charge;
+import com.stripe.model.Refund;
+
+public class StripePayment implements PaymentModule {
+
+ @Inject
+ private ProductPriceUtils productPriceUtils;
+
+
+ private final static String AUTHORIZATION = "Authorization";
+ private final static String TRANSACTION = "Transaction";
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(StripePayment.class);
+
+ @Override
+ public void validateModuleConfiguration(
+ IntegrationConfiguration integrationConfiguration,
+ MerchantStore store) throws IntegrationException {
+
+
+ List<String> errorFields = null;
+
+
+ Map<String,String> keys = integrationConfiguration.getIntegrationKeys();
+
+ //validate integrationKeys['secretKey']
+ if(keys==null || StringUtils.isBlank(keys.get("secretKey"))) {
+ errorFields = new ArrayList<String>();
+ errorFields.add("secretKey");
+ }
+
+ //validate integrationKeys['publishableKey']
+ if(keys==null || StringUtils.isBlank(keys.get("publishableKey"))) {
+ if(errorFields==null) {
+ errorFields = new ArrayList<String>();
+ }
+ errorFields.add("publishableKey");
+ }
+
+
+ if(errorFields!=null) {
+ IntegrationException ex = new IntegrationException(IntegrationException.ERROR_VALIDATION_SAVE);
+ ex.setErrorFields(errorFields);
+ throw ex;
+
+ }
+
+
+
+ }
+
+
+ @Override
+ public Transaction initTransaction(MerchantStore store, Customer customer,
+ BigDecimal amount, Payment payment,
+ IntegrationConfiguration configuration, IntegrationModule module)
+ throws IntegrationException {
+ // Not supported
+ return null;
+ }
+
+ @Override
+ public Transaction authorize(MerchantStore store, Customer customer,
+ List<ShoppingCartItem> items, BigDecimal amount, Payment payment,
+ IntegrationConfiguration configuration, IntegrationModule module)
+ throws IntegrationException {
+
+ Transaction transaction = new Transaction();
+ try {
+
+
+ String apiKey = configuration.getIntegrationKeys().get("secretKey");
+
+ if(payment.getPaymentMetaData()==null || StringUtils.isBlank(apiKey)) {
+ IntegrationException te = new IntegrationException(
+ "Can't process Stripe, missing payment.metaData");
+ te.setExceptionType(IntegrationException.TRANSACTION_EXCEPTION);
+ te.setMessageCode("message.payment.error");
+ te.setErrorCode(IntegrationException.TRANSACTION_EXCEPTION);
+ throw te;
+ }
+
+ String token = payment.getPaymentMetaData().get("stripe_token");
+
+ if(StringUtils.isBlank(token)) {
+ IntegrationException te = new IntegrationException(
+ "Can't process Stripe, missing stripe token");
+ te.setExceptionType(IntegrationException.TRANSACTION_EXCEPTION);
+ te.setMessageCode("message.payment.error");
+ te.setErrorCode(IntegrationException.TRANSACTION_EXCEPTION);
+ throw te;
+ }
+
+
+ String amnt = productPriceUtils.getAdminFormatedAmount(store, amount);
+
+ //stripe does not support floating point
+ //so amnt * 100 or remove floating point
+ //553.47 = 55347
+
+ String strAmount = String.valueOf(amnt);
+ strAmount = strAmount.replace(".","");
+
+ Map<String, Object> chargeParams = new HashMap<String, Object>();
+ chargeParams.put("amount", strAmount);
+ chargeParams.put("capture", false);
+ chargeParams.put("currency", store.getCurrency().getCode());
+ chargeParams.put("source", token); // obtained with Stripe.js
+ chargeParams.put("description", new StringBuilder().append(TRANSACTION).append(" - ").append(store.getStorename()).toString());
+
+ Stripe.apiKey = apiKey;
+
+
+ Charge ch = Charge.create(chargeParams);
+
+ //Map<String,String> metadata = ch.getMetadata();
+
+
+ transaction.setAmount(amount);
+ //transaction.setOrder(order);
+ transaction.setTransactionDate(new Date());
+ transaction.setTransactionType(TransactionType.AUTHORIZE);
+ transaction.setPaymentType(PaymentType.CREDITCARD);
+ transaction.getTransactionDetails().put("TRANSACTIONID", token);
+ transaction.getTransactionDetails().put("TRNAPPROVED", ch.getStatus());
+ transaction.getTransactionDetails().put("TRNORDERNUMBER", ch.getId());
+ transaction.getTransactionDetails().put("MESSAGETEXT", null);
+
+ } catch (Exception e) {
+
+ throw buildException(e);
+
+ }
+
+ return transaction;
+
+
+ }
+
+ @Override
+ public Transaction capture(MerchantStore store, Customer customer,
+ Order order, Transaction capturableTransaction,
+ IntegrationConfiguration configuration, IntegrationModule module)
+ throws IntegrationException {
+
+
+ Transaction transaction = new Transaction();
+ try {
+
+
+ String apiKey = configuration.getIntegrationKeys().get("secretKey");
+
+ if(StringUtils.isBlank(apiKey)) {
+ IntegrationException te = new IntegrationException(
+ "Can't process Stripe, missing payment.metaData");
+ te.setExceptionType(IntegrationException.TRANSACTION_EXCEPTION);
+ te.setMessageCode("message.payment.error");
+ te.setErrorCode(IntegrationException.TRANSACTION_EXCEPTION);
+ throw te;
+ }
+
+ String chargeId = capturableTransaction.getTransactionDetails().get("TRNORDERNUMBER");
+
+ if(StringUtils.isBlank(chargeId)) {
+ IntegrationException te = new IntegrationException(
+ "Can't process Stripe capture, missing TRNORDERNUMBER");
+ te.setExceptionType(IntegrationException.TRANSACTION_EXCEPTION);
+ te.setMessageCode("message.payment.error");
+ te.setErrorCode(IntegrationException.TRANSACTION_EXCEPTION);
+ throw te;
+ }
+
+
+ Stripe.apiKey = apiKey;
+
+ Charge ch = Charge.retrieve(chargeId);
+ ch.capture();
+
+
+ transaction.setAmount(order.getTotal());
+ transaction.setOrder(order);
+ transaction.setTransactionDate(new Date());
+ transaction.setTransactionType(TransactionType.CAPTURE);
+ transaction.setPaymentType(PaymentType.CREDITCARD);
+ transaction.getTransactionDetails().put("TRANSACTIONID", capturableTransaction.getTransactionDetails().get("TRANSACTIONID"));
+ transaction.getTransactionDetails().put("TRNAPPROVED", ch.getStatus());
+ transaction.getTransactionDetails().put("TRNORDERNUMBER", ch.getId());
+ transaction.getTransactionDetails().put("MESSAGETEXT", null);
+
+ //authorize a preauth
+
+
+ return transaction;
+
+ } catch (Exception e) {
+
+ throw buildException(e);
+
+ }
+
+ }
+
+ @Override
+ public Transaction authorizeAndCapture(MerchantStore store, Customer customer,
+ List<ShoppingCartItem> items, BigDecimal amount, Payment payment,
+ IntegrationConfiguration configuration, IntegrationModule module)
+ throws IntegrationException {
+
+ String apiKey = configuration.getIntegrationKeys().get("secretKey");
+
+ if(payment.getPaymentMetaData()==null || StringUtils.isBlank(apiKey)) {
+ IntegrationException te = new IntegrationException(
+ "Can't process Stripe, missing payment.metaData");
+ te.setExceptionType(IntegrationException.TRANSACTION_EXCEPTION);
+ te.setMessageCode("message.payment.error");
+ te.setErrorCode(IntegrationException.TRANSACTION_EXCEPTION);
+ throw te;
+ }
+
+ String token = payment.getPaymentMetaData().get("stripe_token");
+
+ if(StringUtils.isBlank(token)) {
+ IntegrationException te = new IntegrationException(
+ "Can't process Stripe, missing stripe token");
+ te.setExceptionType(IntegrationException.TRANSACTION_EXCEPTION);
+ te.setMessageCode("message.payment.error");
+ te.setErrorCode(IntegrationException.TRANSACTION_EXCEPTION);
+ throw te;
+ }
+
+
+
+ Transaction transaction = new Transaction();
+ try {
+
+ String amnt = productPriceUtils.getAdminFormatedAmount(store, amount);
+
+ //stripe does not support floating point
+ //so amnt * 100 or remove floating point
+ //553.47 = 55347
+
+
+ String strAmount = String.valueOf(amnt);
+ strAmount = strAmount.replace(".","");
+
+ Map<String, Object> chargeParams = new HashMap<String, Object>();
+ chargeParams.put("amount", strAmount);
+ chargeParams.put("capture", true);
+ chargeParams.put("currency", store.getCurrency().getCode());
+ chargeParams.put("source", token); // obtained with Stripe.js
+ chargeParams.put("description", new StringBuilder().append(TRANSACTION).append(" - ").append(store.getStorename()).toString());
+
+ Stripe.apiKey = apiKey;
+
+
+ Charge ch = Charge.create(chargeParams);
+
+ //Map<String,String> metadata = ch.getMetadata();
+
+
+ transaction.setAmount(amount);
+ //transaction.setOrder(order);
+ transaction.setTransactionDate(new Date());
+ transaction.setTransactionType(TransactionType.AUTHORIZE);
+ transaction.setPaymentType(PaymentType.CREDITCARD);
+ transaction.getTransactionDetails().put("TRANSACTIONID", token);
+ transaction.getTransactionDetails().put("TRNAPPROVED", ch.getStatus());
+ transaction.getTransactionDetails().put("TRNORDERNUMBER", ch.getId());
+ transaction.getTransactionDetails().put("MESSAGETEXT", null);
+
+ } catch (Exception e) {
+
+ throw buildException(e);
+
+ }
+
+ return transaction;
+
+ }
+
+ @Override
+ public Transaction refund(boolean partial, MerchantStore store, Transaction transaction,
+ Order order, BigDecimal amount,
+ IntegrationConfiguration configuration, IntegrationModule module)
+ throws IntegrationException {
+
+
+
+ String apiKey = configuration.getIntegrationKeys().get("secretKey");
+
+ if(StringUtils.isBlank(apiKey)) {
+ IntegrationException te = new IntegrationException(
+ "Can't process Stripe, missing payment.metaData");
+ te.setExceptionType(IntegrationException.TRANSACTION_EXCEPTION);
+ te.setMessageCode("message.payment.error");
+ te.setErrorCode(IntegrationException.TRANSACTION_EXCEPTION);
+ throw te;
+ }
+
+ try {
+
+
+ String trnID = transaction.getTransactionDetails().get("TRNORDERNUMBER");
+
+ String amnt = productPriceUtils.getAdminFormatedAmount(store, amount);
+
+ Stripe.apiKey = apiKey;
+
+ //stripe does not support floating point
+ //so amnt * 100 or remove floating point
+ //553.47 = 55347
+
+ String strAmount = String.valueOf(amnt);
+ strAmount = strAmount.replace(".","");
+
+ Map params = new HashMap();
+ //TODO amount
+ params.put("amount", strAmount);
+ Charge ch = Charge.retrieve(trnID);
+ Refund re = ch.getRefunds().create(params);
+
+ transaction = new Transaction();
+ transaction.setAmount(order.getTotal());
+ transaction.setOrder(order);
+ transaction.setTransactionDate(new Date());
+ transaction.setTransactionType(TransactionType.CAPTURE);
+ transaction.setPaymentType(PaymentType.CREDITCARD);
+ transaction.getTransactionDetails().put("TRANSACTIONID", transaction.getTransactionDetails().get("TRANSACTIONID"));
+ transaction.getTransactionDetails().put("TRNAPPROVED", re.getReason());
+ transaction.getTransactionDetails().put("TRNORDERNUMBER", re.getId());
+ transaction.getTransactionDetails().put("MESSAGETEXT", null);
+
+ return transaction;
+
+
+ } catch(Exception e) {
+
+ throw buildException(e);
+
+ }
+
+
+
+ }
+
+ private IntegrationException buildException(Exception ex) {
+
+
+ if(ex instanceof CardException) {
+ CardException e = (CardException)ex;
+ // Since it's a decline, CardException will be caught
+ //System.out.println("Status is: " + e.getCode());
+ //System.out.println("Message is: " + e.getMessage());
+
+
+ /**
+ *
+ invalid_number The card number is not a valid credit card number.
+ invalid_expiry_month The card's expiration month is invalid.
+ invalid_expiry_year The card's expiration year is invalid.
+ invalid_cvc The card's security code is invalid.
+ incorrect_number The card number is incorrect.
+ expired_card The card has expired.
+ incorrect_cvc The card's security code is incorrect.
+ incorrect_zip The card's zip code failed validation.
+ card_declined The card was declined.
+ missing There is no card on a customer that is being charged.
+ processing_error An error occurred while processing the card.
+ rate_limit An error occurred due to requests hitting the API too quickly. Please let us know if you're consistently running into this error.
+ */
+
+
+ String declineCode = e.getDeclineCode();
+
+ if("card_declined".equals(declineCode)) {
+ IntegrationException te = new IntegrationException(
+ "Can't process stripe message " + e.getMessage());
+ te.setExceptionType(IntegrationException.EXCEPTION_PAYMENT_DECLINED);
+ te.setMessageCode("message.payment.declined");
+ te.setErrorCode(IntegrationException.TRANSACTION_EXCEPTION);
+ return te;
+ }
+
+ if("invalid_number".equals(declineCode)) {
+ IntegrationException te = new IntegrationException(
+ "Can't process stripe message " + e.getMessage());
+ te.setExceptionType(IntegrationException.EXCEPTION_VALIDATION);
+ te.setMessageCode("messages.error.creditcard.number");
+ te.setErrorCode(IntegrationException.EXCEPTION_VALIDATION);
+ return te;
+ }
+
+ if("invalid_expiry_month".equals(declineCode)) {
+ IntegrationException te = new IntegrationException(
+ "Can't process stripe message " + e.getMessage());
+ te.setExceptionType(IntegrationException.EXCEPTION_VALIDATION);
+ te.setMessageCode("messages.error.creditcard.dateformat");
+ te.setErrorCode(IntegrationException.EXCEPTION_VALIDATION);
+ return te;
+ }
+
+ if("invalid_expiry_year".equals(declineCode)) {
+ IntegrationException te = new IntegrationException(
+ "Can't process stripe message " + e.getMessage());
+ te.setExceptionType(IntegrationException.EXCEPTION_VALIDATION);
+ te.setMessageCode("messages.error.creditcard.dateformat");
+ te.setErrorCode(IntegrationException.EXCEPTION_VALIDATION);
+ return te;
+ }
+
+ if("invalid_cvc".equals(declineCode)) {
+ IntegrationException te = new IntegrationException(
+ "Can't process stripe message " + e.getMessage());
+ te.setExceptionType(IntegrationException.EXCEPTION_VALIDATION);
+ te.setMessageCode("messages.error.creditcard.cvc");
+ te.setErrorCode(IntegrationException.EXCEPTION_VALIDATION);
+ return te;
+ }
+
+ if("incorrect_number".equals(declineCode)) {
+ IntegrationException te = new IntegrationException(
+ "Can't process stripe message " + e.getMessage());
+ te.setExceptionType(IntegrationException.EXCEPTION_VALIDATION);
+ te.setMessageCode("messages.error.creditcard.number");
+ te.setErrorCode(IntegrationException.EXCEPTION_VALIDATION);
+ return te;
+ }
+
+ if("incorrect_cvc".equals(declineCode)) {
+ IntegrationException te = new IntegrationException(
+ "Can't process stripe message " + e.getMessage());
+ te.setExceptionType(IntegrationException.EXCEPTION_VALIDATION);
+ te.setMessageCode("messages.error.creditcard.cvc");
+ te.setErrorCode(IntegrationException.EXCEPTION_VALIDATION);
+ return te;
+ }
+
+
+
+ } else if (ex instanceof InvalidRequestException) {
+ LOGGER.error("InvalidRequest error with stripe", ex.getMessage());
+ InvalidRequestException e =(InvalidRequestException)ex;
+ IntegrationException te = new IntegrationException(
+ "Can't process Stripe, missing invalid payment parameters");
+ te.setExceptionType(IntegrationException.TRANSACTION_EXCEPTION);
+ te.setMessageCode("message.payment.error");
+ te.setErrorCode(IntegrationException.TRANSACTION_EXCEPTION);
+ return te;
+
+ } else if (ex instanceof AuthenticationException) {
+ LOGGER.error("Authentication error with stripe", ex.getMessage());
+ AuthenticationException e = (AuthenticationException)ex;
+ // Authentication with Stripe's API failed
+ // (maybe you changed API keys recently)
+ IntegrationException te = new IntegrationException(
+ "Can't process Stripe, missing invalid payment parameters");
+ te.setExceptionType(IntegrationException.TRANSACTION_EXCEPTION);
+ te.setMessageCode("message.payment.error");
+ te.setErrorCode(IntegrationException.TRANSACTION_EXCEPTION);
+ return te;
+
+ } else if (ex instanceof APIConnectionException) {
+ LOGGER.error("API connection error with stripe", ex.getMessage());
+ APIConnectionException e = (APIConnectionException)ex;
+ // Network communication with Stripe failed
+ IntegrationException te = new IntegrationException(
+ "Can't process Stripe, missing invalid payment parameters");
+ te.setExceptionType(IntegrationException.TRANSACTION_EXCEPTION);
+ te.setMessageCode("message.payment.error");
+ te.setErrorCode(IntegrationException.TRANSACTION_EXCEPTION);
+ return te;
+ } else if (ex instanceof StripeException) {
+ LOGGER.error("Error with stripe", ex.getMessage());
+ StripeException e = (StripeException)ex;
+ // Display a very generic error to the user, and maybe send
+ // yourself an email
+ IntegrationException te = new IntegrationException(
+ "Can't process Stripe authorize, missing invalid payment parameters");
+ te.setExceptionType(IntegrationException.TRANSACTION_EXCEPTION);
+ te.setMessageCode("message.payment.error");
+ te.setErrorCode(IntegrationException.TRANSACTION_EXCEPTION);
+ return te;
+
+
+
+ } else if (ex instanceof Exception) {
+ LOGGER.error("Stripe module error", ex.getMessage());
+ if(ex instanceof IntegrationException) {
+ return (IntegrationException)ex;
+ } else {
+ IntegrationException te = new IntegrationException(
+ "Can't process Stripe authorize, exception", ex);
+ te.setExceptionType(IntegrationException.TRANSACTION_EXCEPTION);
+ te.setMessageCode("message.payment.error");
+ te.setErrorCode(IntegrationException.TRANSACTION_EXCEPTION);
+ return te;
+ }
+
+
+ } else {
+ LOGGER.error("Stripe module error", ex.getMessage());
+ IntegrationException te = new IntegrationException(
+ "Can't process Stripe authorize, exception", ex);
+ te.setExceptionType(IntegrationException.TRANSACTION_EXCEPTION);
+ te.setMessageCode("message.payment.error");
+ te.setErrorCode(IntegrationException.TRANSACTION_EXCEPTION);
+ return te;
+ }
+ return null;
+
+
+ }
+
+
+
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/modules/integration/shipping/impl/CustomShippingQuoteRules.java b/sm-core/src/main/java/com/salesmanager/core/business/modules/integration/shipping/impl/CustomShippingQuoteRules.java
new file mode 100644
index 0000000..cfe4524
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/modules/integration/shipping/impl/CustomShippingQuoteRules.java
@@ -0,0 +1,181 @@
+package com.salesmanager.core.business.modules.integration.shipping.impl;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+import java.util.Locale;
+
+import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.Validate;
+import org.drools.KnowledgeBase;
+import org.drools.runtime.StatelessKnowledgeSession;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.salesmanager.core.model.common.Delivery;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.shipping.PackageDetails;
+import com.salesmanager.core.model.shipping.ShippingConfiguration;
+import com.salesmanager.core.model.shipping.ShippingOption;
+import com.salesmanager.core.model.shipping.ShippingOrigin;
+import com.salesmanager.core.model.shipping.ShippingQuote;
+import com.salesmanager.core.model.system.CustomIntegrationConfiguration;
+import com.salesmanager.core.model.system.IntegrationConfiguration;
+import com.salesmanager.core.model.system.IntegrationModule;
+import com.salesmanager.core.modules.constants.Constants;
+import com.salesmanager.core.modules.integration.IntegrationException;
+import com.salesmanager.core.modules.integration.shipping.model.ShippingQuoteModule;
+
+
+public class CustomShippingQuoteRules implements ShippingQuoteModule {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(CustomShippingQuoteRules.class);
+
+
+ private StatelessKnowledgeSession shippingPriceRule;
+
+ public final static String MODULE_CODE = "customQuotesRules";
+
+ private KnowledgeBase kbase;
+
+ @Override
+ public void validateModuleConfiguration(
+ IntegrationConfiguration integrationConfiguration,
+ MerchantStore store) throws IntegrationException {
+ // Not used
+
+ }
+
+ @Override
+ public CustomIntegrationConfiguration getCustomModuleConfiguration(
+ MerchantStore store) throws IntegrationException {
+ // Not used
+ return null;
+ }
+
+ @Override
+ public List<ShippingOption> getShippingQuotes(ShippingQuote quote,
+ List<PackageDetails> packages, BigDecimal orderTotal,
+ Delivery delivery, ShippingOrigin origin, MerchantStore store,
+ IntegrationConfiguration configuration, IntegrationModule module,
+ ShippingConfiguration shippingConfiguration, Locale locale)
+ throws IntegrationException {
+
+
+
+ Validate.notNull(delivery, "Delivery cannot be null");
+ Validate.notNull(delivery.getCountry(), "Delivery.country cannot be null");
+ Validate.notNull(packages, "packages cannot be null");
+ Validate.notEmpty(packages, "packages cannot be empty");
+
+ //requires the postal code
+ if(StringUtils.isBlank(delivery.getPostalCode())) {
+ return null;
+ }
+
+ Double distance = null;
+
+ if(quote!=null) {
+ //look if distance has been calculated
+ if(quote.getQuoteInformations()!=null) {
+ if(quote.getQuoteInformations().containsKey(Constants.DISTANCE_KEY)) {
+ distance = (Double)quote.getQuoteInformations().get(Constants.DISTANCE_KEY);
+ }
+ }
+ }
+
+ //calculate volume (L x W x H)
+ Double volume = null;
+ Double weight = 0D;
+ Double size = null;
+ //calculate weight
+ for(PackageDetails pack : packages) {
+ weight = weight + pack.getShippingWeight();
+ Double tmpVolume = pack.getShippingHeight() * pack.getShippingLength() * pack.getShippingWidth();
+ if(volume == null || tmpVolume.doubleValue() > volume.doubleValue()) { //take the largest volume
+ volume = tmpVolume;
+ }
+ //largest size
+ List<Double> sizeList = new ArrayList<Double>();
+ sizeList.add(pack.getShippingHeight());
+ sizeList.add(pack.getShippingWeight());
+ sizeList.add(pack.getShippingLength());
+ Double maxSize = (Double)Collections.max(sizeList);
+ if(size==null || maxSize.doubleValue() > size.doubleValue()) {
+ size = maxSize.doubleValue();
+ }
+ }
+
+ //Build a ShippingInputParameters
+ ShippingInputParameters inputParameters = new ShippingInputParameters();
+
+ inputParameters.setWeight((long)weight.doubleValue());
+ inputParameters.setCountry(delivery.getCountry().getIsoCode());
+ inputParameters.setProvince("*");
+ inputParameters.setModuleName(module.getCode());
+
+ if(delivery.getZone().getCode()!=null) {
+ inputParameters.setProvince(delivery.getZone().getCode());
+ }
+
+ if(distance!=null) {
+ double ddistance = distance.doubleValue();
+ long ldistance = (long)ddistance;
+ inputParameters.setDistance(ldistance);
+ }
+
+ if(volume!=null) {
+ inputParameters.setVolume((long)volume.doubleValue());
+ }
+
+ List<ShippingOption> options = quote.getShippingOptions();
+
+ if(options == null) {
+ options = new ArrayList<ShippingOption>();
+ quote.setShippingOptions(options);
+ }
+
+
+
+ LOGGER.debug("Setting input parameters " + inputParameters.toString());
+
+ shippingPriceRule.execute(Arrays.asList(new Object[] { inputParameters }));
+
+ if(inputParameters.getPriceQuote() != null) {
+
+ ShippingOption shippingOption = new ShippingOption();
+
+
+ shippingOption.setOptionPrice(new BigDecimal(inputParameters.getPriceQuote()));
+ shippingOption.setShippingModuleCode(MODULE_CODE);
+ shippingOption.setOptionCode(MODULE_CODE);
+ shippingOption.setOptionId(MODULE_CODE);
+
+ options.add(shippingOption);
+ }
+
+
+ return options;
+
+
+ }
+
+ public StatelessKnowledgeSession getShippingPriceRule() {
+ return shippingPriceRule;
+ }
+
+ public void setShippingPriceRule(StatelessKnowledgeSession shippingPriceRule) {
+ this.shippingPriceRule = shippingPriceRule;
+ }
+
+ public KnowledgeBase getKbase() {
+ return kbase;
+ }
+
+ public void setKbase(KnowledgeBase kbase) {
+ this.kbase = kbase;
+ }
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/modules/integration/shipping/impl/CustomWeightBasedShippingQuote.java b/sm-core/src/main/java/com/salesmanager/core/business/modules/integration/shipping/impl/CustomWeightBasedShippingQuote.java
new file mode 100644
index 0000000..ba418f0
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/modules/integration/shipping/impl/CustomWeightBasedShippingQuote.java
@@ -0,0 +1,161 @@
+package com.salesmanager.core.business.modules.integration.shipping.impl;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Locale;
+
+import javax.inject.Inject;
+
+import org.apache.commons.lang3.StringUtils;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.business.services.system.MerchantConfigurationService;
+import com.salesmanager.core.business.utils.ProductPriceUtils;
+import com.salesmanager.core.model.common.Delivery;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.shipping.PackageDetails;
+import com.salesmanager.core.model.shipping.ShippingBasisType;
+import com.salesmanager.core.model.shipping.ShippingConfiguration;
+import com.salesmanager.core.model.shipping.ShippingOption;
+import com.salesmanager.core.model.shipping.ShippingOrigin;
+import com.salesmanager.core.model.shipping.ShippingQuote;
+import com.salesmanager.core.model.system.CustomIntegrationConfiguration;
+import com.salesmanager.core.model.system.IntegrationConfiguration;
+import com.salesmanager.core.model.system.IntegrationModule;
+import com.salesmanager.core.model.system.MerchantConfiguration;
+import com.salesmanager.core.modules.integration.IntegrationException;
+import com.salesmanager.core.modules.integration.shipping.model.CustomShippingQuoteWeightItem;
+import com.salesmanager.core.modules.integration.shipping.model.CustomShippingQuotesConfiguration;
+import com.salesmanager.core.modules.integration.shipping.model.CustomShippingQuotesRegion;
+import com.salesmanager.core.modules.integration.shipping.model.ShippingQuoteModule;
+
+
+public class CustomWeightBasedShippingQuote implements ShippingQuoteModule {
+
+ public final static String MODULE_CODE = "weightBased";
+ private final static String CUSTOM_WEIGHT = "CUSTOM_WEIGHT";
+
+ @Inject
+ private MerchantConfigurationService merchantConfigurationService;
+
+ @Inject
+ private ProductPriceUtils productPriceUtils;
+
+
+ @Override
+ public void validateModuleConfiguration(
+ IntegrationConfiguration integrationConfiguration,
+ MerchantStore store) throws IntegrationException {
+
+
+ //not used, it has its own controller with complex validators
+
+ }
+
+
+ @Override
+ public CustomIntegrationConfiguration getCustomModuleConfiguration(
+ MerchantStore store) throws IntegrationException {
+
+ try {
+
+ MerchantConfiguration configuration = merchantConfigurationService.getMerchantConfiguration(MODULE_CODE, store);
+
+ if(configuration!=null) {
+ String value = configuration.getValue();
+ ObjectMapper mapper = new ObjectMapper();
+ try {
+ CustomShippingQuotesConfiguration config = mapper.readValue(value, CustomShippingQuotesConfiguration.class);
+ return config;
+ } catch(Exception e) {
+ throw new ServiceException("Cannot parse json string " + value);
+ }
+
+ } else {
+ CustomShippingQuotesConfiguration custom = new CustomShippingQuotesConfiguration();
+ custom.setModuleCode(MODULE_CODE);
+ return custom;
+ }
+
+ } catch (Exception e) {
+ throw new IntegrationException(e);
+ }
+
+
+ }
+
+ @Override
+ public List<ShippingOption> getShippingQuotes(
+ ShippingQuote shippingQuote,
+ List<PackageDetails> packages, BigDecimal orderTotal,
+ Delivery delivery, ShippingOrigin origin, MerchantStore store,
+ IntegrationConfiguration configuration, IntegrationModule module,
+ ShippingConfiguration shippingConfiguration, Locale locale)
+ throws IntegrationException {
+
+ if(StringUtils.isBlank(delivery.getPostalCode())) {
+ return null;
+ }
+
+ //get configuration
+ CustomShippingQuotesConfiguration customConfiguration = (CustomShippingQuotesConfiguration)this.getCustomModuleConfiguration(store);
+
+
+ List<CustomShippingQuotesRegion> regions = customConfiguration.getRegions();
+
+ ShippingBasisType shippingType = shippingConfiguration.getShippingBasisType();
+ ShippingOption shippingOption = null;
+ try {
+
+
+ for(CustomShippingQuotesRegion region : customConfiguration.getRegions()) {
+
+ for(String countryCode : region.getCountries()) {
+ if(countryCode.equals(delivery.getCountry().getIsoCode())) {
+
+
+ //determine shipping weight
+ double weight = 0;
+ for(PackageDetails packageDetail : packages) {
+ weight = weight + packageDetail.getShippingWeight();
+ }
+
+ //see the price associated with the width
+ List<CustomShippingQuoteWeightItem> quoteItems = region.getQuoteItems();
+ for(CustomShippingQuoteWeightItem quoteItem : quoteItems) {
+ if(weight<= quoteItem.getMaximumWeight()) {
+ shippingOption = new ShippingOption();
+ shippingOption.setOptionCode(new StringBuilder().append(CUSTOM_WEIGHT).toString());
+ shippingOption.setOptionId(new StringBuilder().append(CUSTOM_WEIGHT).append("_").append(region.getCustomRegionName()).toString());
+ shippingOption.setOptionPrice(quoteItem.getPrice());
+ shippingOption.setOptionPriceText(productPriceUtils.getStoreFormatedAmountWithCurrency(store, quoteItem.getPrice()));
+ break;
+ }
+ }
+
+ }
+
+
+ }
+
+ }
+
+ if(shippingOption!=null) {
+ List<ShippingOption> options = new ArrayList<ShippingOption>();
+ options.add(shippingOption);
+ return options;
+ }
+
+ return null;
+
+ } catch (Exception e) {
+ throw new IntegrationException(e);
+ }
+
+ }
+
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/modules/integration/shipping/impl/PriceByDistanceShippingQuoteRules.java b/sm-core/src/main/java/com/salesmanager/core/business/modules/integration/shipping/impl/PriceByDistanceShippingQuoteRules.java
new file mode 100644
index 0000000..9bff0db
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/modules/integration/shipping/impl/PriceByDistanceShippingQuoteRules.java
@@ -0,0 +1,124 @@
+package com.salesmanager.core.business.modules.integration.shipping.impl;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Locale;
+
+import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.Validate;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.salesmanager.core.model.common.Delivery;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.shipping.PackageDetails;
+import com.salesmanager.core.model.shipping.ShippingConfiguration;
+import com.salesmanager.core.model.shipping.ShippingOption;
+import com.salesmanager.core.model.shipping.ShippingOrigin;
+import com.salesmanager.core.model.shipping.ShippingQuote;
+import com.salesmanager.core.model.system.CustomIntegrationConfiguration;
+import com.salesmanager.core.model.system.IntegrationConfiguration;
+import com.salesmanager.core.model.system.IntegrationModule;
+import com.salesmanager.core.modules.constants.Constants;
+import com.salesmanager.core.modules.integration.IntegrationException;
+import com.salesmanager.core.modules.integration.shipping.model.ShippingQuoteModule;
+
+
+/**
+ * Requires to set pre-processor distance calculator
+ * pre-processor calculates the distance (in kilometers [can be changed to miles]) based on delivery address
+ * when that module is invoked during process it will calculate the price
+ * DISTANCE * PRICE/KM
+ * @author carlsamson
+ *
+ */
+public class PriceByDistanceShippingQuoteRules implements ShippingQuoteModule {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(PriceByDistanceShippingQuoteRules.class);
+
+ public final static String MODULE_CODE = "priceByDistance";
+
+ @Override
+ public void validateModuleConfiguration(
+ IntegrationConfiguration integrationConfiguration,
+ MerchantStore store) throws IntegrationException {
+ // Not used
+
+ }
+
+ @Override
+ public CustomIntegrationConfiguration getCustomModuleConfiguration(
+ MerchantStore store) throws IntegrationException {
+ // Not used
+ return null;
+ }
+
+ @Override
+ public List<ShippingOption> getShippingQuotes(ShippingQuote quote,
+ List<PackageDetails> packages, BigDecimal orderTotal,
+ Delivery delivery, ShippingOrigin origin, MerchantStore store,
+ IntegrationConfiguration configuration, IntegrationModule module,
+ ShippingConfiguration shippingConfiguration, Locale locale)
+ throws IntegrationException {
+
+
+
+ Validate.notNull(delivery, "Delivery cannot be null");
+ Validate.notNull(delivery.getCountry(), "Delivery.country cannot be null");
+ Validate.notNull(packages, "packages cannot be null");
+ Validate.notEmpty(packages, "packages cannot be empty");
+
+ //requires the postal code
+ if(StringUtils.isBlank(delivery.getPostalCode())) {
+ return null;
+ }
+
+ Double distance = null;
+
+ if(quote!=null) {
+ //look if distance has been calculated
+ if(quote.getQuoteInformations()!=null) {
+ if(quote.getQuoteInformations().containsKey(Constants.DISTANCE_KEY)) {
+ distance = (Double)quote.getQuoteInformations().get(Constants.DISTANCE_KEY);
+ }
+ }
+ }
+
+ if(distance==null) {
+ return null;
+ }
+
+ //maximum distance TODO configure from admin
+ if(distance > 350D) {
+ return null;
+ }
+
+ List<ShippingOption> options = quote.getShippingOptions();
+
+ if(options == null) {
+ options = new ArrayList<ShippingOption>();
+ quote.setShippingOptions(options);
+ }
+
+
+ BigDecimal price = new BigDecimal(1.5);//TODO from the admin
+ BigDecimal total = new BigDecimal(distance).multiply(price);
+
+ ShippingOption shippingOption = new ShippingOption();
+
+
+ shippingOption.setOptionPrice(total);
+ shippingOption.setShippingModuleCode(MODULE_CODE);
+ shippingOption.setOptionCode(MODULE_CODE);
+ shippingOption.setOptionId(MODULE_CODE);
+
+ options.add(shippingOption);
+
+
+ return options;
+
+
+ }
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/modules/integration/shipping/impl/ShippingDecisionPreProcessorImpl.java b/sm-core/src/main/java/com/salesmanager/core/business/modules/integration/shipping/impl/ShippingDecisionPreProcessorImpl.java
new file mode 100644
index 0000000..844325c
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/modules/integration/shipping/impl/ShippingDecisionPreProcessorImpl.java
@@ -0,0 +1,171 @@
+package com.salesmanager.core.business.modules.integration.shipping.impl;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+import java.util.Locale;
+
+import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.Validate;
+import org.drools.KnowledgeBase;
+import org.drools.runtime.StatelessKnowledgeSession;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.salesmanager.core.model.common.Delivery;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.shipping.PackageDetails;
+import com.salesmanager.core.model.shipping.ShippingConfiguration;
+import com.salesmanager.core.model.shipping.ShippingOrigin;
+import com.salesmanager.core.model.shipping.ShippingQuote;
+import com.salesmanager.core.model.system.IntegrationConfiguration;
+import com.salesmanager.core.model.system.IntegrationModule;
+import com.salesmanager.core.modules.constants.Constants;
+import com.salesmanager.core.modules.integration.IntegrationException;
+import com.salesmanager.core.modules.integration.shipping.model.ShippingQuotePrePostProcessModule;
+
+/**
+ * Decides which shipping method is going to be used based on a decision table
+ * @author carlsamson
+ *
+ */
+public class ShippingDecisionPreProcessorImpl implements ShippingQuotePrePostProcessModule {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(ShippingDecisionPreProcessorImpl.class);
+
+ private final static String MODULE_CODE = "shippingDecisionModule";
+
+ private StatelessKnowledgeSession shippingMethodDecision;
+
+ private KnowledgeBase kbase;
+
+ @Override
+ public void prePostProcessShippingQuotes(ShippingQuote quote,
+ List<PackageDetails> packages, BigDecimal orderTotal,
+ Delivery delivery, ShippingOrigin origin, MerchantStore store,
+ IntegrationConfiguration globalShippingConfiguration,
+ IntegrationModule currentModule,
+ ShippingConfiguration shippingConfiguration,
+ List<IntegrationModule> allModules, Locale locale)
+ throws IntegrationException {
+
+
+ Validate.notNull(delivery, "Delivery cannot be null");
+ Validate.notNull(currentModule, "IntegrationModule cannot be null");
+ Validate.notNull(delivery.getCountry(), "Delivery.country cannot be null");
+ Validate.notNull(allModules, "List<IntegrationModule> cannot be null");
+ Validate.notNull(packages, "packages cannot be null");
+ Validate.notEmpty(packages, "packages cannot be empty");
+
+ Double distance = null;
+
+ if(quote!=null) {
+ //look if distance has been calculated
+ if(quote.getQuoteInformations()!=null) {
+ if(quote.getQuoteInformations().containsKey(Constants.DISTANCE_KEY)) {
+ distance = (Double)quote.getQuoteInformations().get(Constants.DISTANCE_KEY);
+ }
+ }
+ }
+
+ //calculate volume (L x W x H)
+ Double volume = null;
+ Double weight = 0D;
+ Double size = null;
+ //calculate weight, volume and largest size
+ for(PackageDetails pack : packages) {
+ weight = weight + pack.getShippingWeight();
+ Double tmpVolume = pack.getShippingHeight() * pack.getShippingLength() * pack.getShippingWidth();
+ if(volume == null || tmpVolume.doubleValue() > volume.doubleValue()) { //take the largest volume
+ volume = tmpVolume;
+ }
+ //largest size
+ List<Double> sizeList = new ArrayList<Double>();
+ sizeList.add(pack.getShippingHeight());
+ sizeList.add(pack.getShippingLength());
+ sizeList.add(pack.getShippingWidth());
+ Double maxSize = (Double)Collections.max(sizeList);
+ if(size==null || maxSize.doubleValue() > size.doubleValue()) {
+ size = maxSize.doubleValue();
+ }
+ }
+
+ //Build a ShippingInputParameters
+ ShippingInputParameters inputParameters = new ShippingInputParameters();
+
+ inputParameters.setWeight((long)weight.doubleValue());
+ inputParameters.setCountry(delivery.getCountry().getIsoCode());
+ if(delivery.getZone()!=null) {
+ inputParameters.setProvince(delivery.getZone().getCode());
+ } else {
+ inputParameters.setProvince(delivery.getState());
+ }
+ //inputParameters.setModuleName(currentModule.getCode());
+
+ if(delivery.getZone().getCode()!=null) {
+ inputParameters.setProvince(delivery.getZone().getCode());
+ }
+
+ if(size!=null) {
+ inputParameters.setSize((long)size.doubleValue());
+ }
+
+ if(distance!=null) {
+ double ddistance = distance.doubleValue();
+ long ldistance = (long)ddistance;
+ inputParameters.setDistance(ldistance);
+ }
+
+ if(volume!=null) {
+ inputParameters.setVolume((long)volume.doubleValue());
+ }
+
+ LOGGER.debug("Setting input parameters " + inputParameters.toString());
+ System.out.println(inputParameters.toString());
+
+ shippingMethodDecision.execute(Arrays.asList(new Object[] { inputParameters }));
+
+ LOGGER.debug("Using shipping nodule " + inputParameters.getModuleName());
+
+ if(!StringUtils.isBlank(inputParameters.getModuleName())) {
+ for(IntegrationModule toBeUsed : allModules) {
+ if(toBeUsed.getCode().equals(inputParameters.getModuleName())) {
+ quote.setCurrentShippingModule(toBeUsed);
+ break;
+ }
+ }
+ }
+
+ }
+
+ public StatelessKnowledgeSession getShippingMethodDecision() {
+ return shippingMethodDecision;
+ }
+
+ public void setShippingMethodDecision(StatelessKnowledgeSession shippingMethodDecision) {
+ this.shippingMethodDecision = shippingMethodDecision;
+ }
+
+ public KnowledgeBase getKbase() {
+ return kbase;
+ }
+
+ public void setKbase(KnowledgeBase kbase) {
+ this.kbase = kbase;
+ }
+
+ @Override
+ public String getModuleCode() {
+ return MODULE_CODE;
+ }
+
+
+
+
+
+
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/modules/integration/shipping/impl/ShippingInputParameters.java b/sm-core/src/main/java/com/salesmanager/core/business/modules/integration/shipping/impl/ShippingInputParameters.java
new file mode 100644
index 0000000..1122fa1
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/modules/integration/shipping/impl/ShippingInputParameters.java
@@ -0,0 +1,76 @@
+package com.salesmanager.core.business.modules.integration.shipping.impl;
+
+public class ShippingInputParameters {
+
+ private String moduleName;
+ private long weight;
+ private long volume;
+ private String country;
+ private String province;
+ private long distance;
+ private long size;
+ private String priceQuote;
+
+ public String getModuleName() {
+ return moduleName;
+ }
+ public void setModuleName(String moduleName) {
+ this.moduleName = moduleName;
+ }
+ public long getWeight() {
+ return weight;
+ }
+ public void setWeight(long weight) {
+ this.weight = weight;
+ }
+ public long getVolume() {
+ return volume;
+ }
+ public void setVolume(long volume) {
+ this.volume = volume;
+ }
+ public String getCountry() {
+ return country;
+ }
+ public void setCountry(String country) {
+ this.country = country;
+ }
+ public String getProvince() {
+ return province;
+ }
+ public void setProvince(String province) {
+ this.province = province;
+ }
+ public long getDistance() {
+ return distance;
+ }
+ public void setDistance(long distance) {
+ this.distance = distance;
+ }
+ public String getPriceQuote() {
+ return priceQuote;
+ }
+ public void setPriceQuote(String priceQuote) {
+ this.priceQuote = priceQuote;
+ }
+
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append(" weight : ").append(this.getWeight());
+ sb.append(" volume : ").append(this.getVolume())
+ .append(" size : ").append(this.getSize())
+ .append(" distance : ").append(this.getDistance())
+ .append(" province : ").append(this.getProvince())
+ .append(" country : ").append(this.getCountry());
+ return sb.toString();
+
+ }
+ public long getSize() {
+ return size;
+ }
+ public void setSize(long size) {
+ this.size = size;
+ }
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/modules/integration/shipping/impl/StorePickupShippingQuote.java b/sm-core/src/main/java/com/salesmanager/core/business/modules/integration/shipping/impl/StorePickupShippingQuote.java
new file mode 100644
index 0000000..88f8b15
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/modules/integration/shipping/impl/StorePickupShippingQuote.java
@@ -0,0 +1,177 @@
+package com.salesmanager.core.business.modules.integration.shipping.impl;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+
+import javax.inject.Inject;
+
+import com.salesmanager.core.business.services.system.MerchantConfigurationService;
+import com.salesmanager.core.business.utils.ProductPriceUtils;
+import com.salesmanager.core.model.common.Delivery;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.shipping.PackageDetails;
+import com.salesmanager.core.model.shipping.ShippingConfiguration;
+import com.salesmanager.core.model.shipping.ShippingOption;
+import com.salesmanager.core.model.shipping.ShippingOrigin;
+import com.salesmanager.core.model.shipping.ShippingQuote;
+import com.salesmanager.core.model.system.CustomIntegrationConfiguration;
+import com.salesmanager.core.model.system.IntegrationConfiguration;
+import com.salesmanager.core.model.system.IntegrationModule;
+import com.salesmanager.core.modules.integration.IntegrationException;
+import com.salesmanager.core.modules.integration.shipping.model.ShippingQuoteModule;
+import com.salesmanager.core.modules.integration.shipping.model.ShippingQuotePrePostProcessModule;
+
+
+/**
+ * Store pick up shipping module
+ *
+ * Requires a configuration of a message note to be printed to the client
+ * and a price for calculation (should be configured to 0)
+ *
+ * Calculates a ShippingQuote with a price set to the price configured
+ * @author carlsamson
+ *
+ */
+public class StorePickupShippingQuote implements ShippingQuoteModule, ShippingQuotePrePostProcessModule {
+
+
+ public final static String MODULE_CODE = "storePickUp";
+
+ @Inject
+ private MerchantConfigurationService merchantConfigurationService;
+
+ @Inject
+ private ProductPriceUtils productPriceUtils;
+
+
+ @Override
+ public void validateModuleConfiguration(
+ IntegrationConfiguration integrationConfiguration,
+ MerchantStore store) throws IntegrationException {
+
+
+
+
+ List<String> errorFields = null;
+
+ //validate integrationKeys['account']
+ Map<String,String> keys = integrationConfiguration.getIntegrationKeys();
+ //if(keys==null || StringUtils.isBlank(keys.get("price"))) {
+ if(keys==null) {
+ errorFields = new ArrayList<String>();
+ errorFields.add("price");
+ } else {
+ //validate it can be parsed to BigDecimal
+ try {
+ BigDecimal price = new BigDecimal(keys.get("price"));
+ } catch(Exception e) {
+ errorFields = new ArrayList<String>();
+ errorFields.add("price");
+ }
+ }
+
+ //if(keys==null || StringUtils.isBlank(keys.get("note"))) {
+ if(keys==null) {
+ errorFields = new ArrayList<String>();
+ errorFields.add("note");
+ }
+
+
+
+ if(errorFields!=null) {
+ IntegrationException ex = new IntegrationException(IntegrationException.ERROR_VALIDATION_SAVE);
+ ex.setErrorFields(errorFields);
+ throw ex;
+
+ }
+
+ }
+
+ @Override
+ public List<ShippingOption> getShippingQuotes(
+ ShippingQuote shippingQuote,
+ List<PackageDetails> packages, BigDecimal orderTotal,
+ Delivery delivery, ShippingOrigin origin, MerchantStore store,
+ IntegrationConfiguration configuration, IntegrationModule module,
+ ShippingConfiguration shippingConfiguration, Locale locale)
+ throws IntegrationException {
+
+ // TODO Auto-generated method stub
+ return null;
+
+ }
+
+ @Override
+ public CustomIntegrationConfiguration getCustomModuleConfiguration(
+ MerchantStore store) throws IntegrationException {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public void prePostProcessShippingQuotes(ShippingQuote quote,
+ List<PackageDetails> packages, BigDecimal orderTotal,
+ Delivery delivery, ShippingOrigin origin, MerchantStore store,
+ IntegrationConfiguration globalShippingConfiguration,
+ IntegrationModule currentModule,
+ ShippingConfiguration shippingConfiguration,
+ List<IntegrationModule> allModules, Locale locale)
+ throws IntegrationException {
+
+
+ try {
+
+ String region = null;
+
+ String price = globalShippingConfiguration.getIntegrationKeys().get("price");
+
+
+ if(delivery.getZone()!=null) {
+ region = delivery.getZone().getCode();
+ } else {
+ region = delivery.getState();
+ }
+
+ ShippingOption shippingOption = new ShippingOption();
+ shippingOption.setShippingModuleCode(MODULE_CODE);
+ shippingOption.setOptionCode(MODULE_CODE);
+ shippingOption.setOptionId(new StringBuilder().append(MODULE_CODE).append("_").append(region).toString());
+
+ shippingOption.setOptionPrice(productPriceUtils.getAmount(price));
+
+ shippingOption.setOptionPriceText(productPriceUtils.getStoreFormatedAmountWithCurrency(store, productPriceUtils.getAmount(price)));
+
+ List<ShippingOption> options = quote.getShippingOptions();
+
+ if(options == null) {
+ options = new ArrayList<ShippingOption>();
+ quote.setShippingOptions(options);
+ }
+
+ options.add(shippingOption);
+
+ if(quote.getSelectedShippingOption()==null) {
+ quote.setSelectedShippingOption(shippingOption);
+ }
+
+
+ } catch (Exception e) {
+ throw new IntegrationException(e);
+ }
+
+
+
+ }
+
+ @Override
+ public String getModuleCode() {
+ // TODO Auto-generated method stub
+ return MODULE_CODE;
+ }
+
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/modules/order/InvoiceModule.java b/sm-core/src/main/java/com/salesmanager/core/business/modules/order/InvoiceModule.java
new file mode 100644
index 0000000..224c2b4
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/modules/order/InvoiceModule.java
@@ -0,0 +1,14 @@
+package com.salesmanager.core.business.modules.order;
+
+import java.io.ByteArrayOutputStream;
+
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.order.Order;
+import com.salesmanager.core.model.reference.language.Language;
+
+
+public interface InvoiceModule {
+
+ public ByteArrayOutputStream createInvoice(MerchantStore store, Order order, Language language) throws Exception;
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/modules/utils/EncryptionImpl.java b/sm-core/src/main/java/com/salesmanager/core/business/modules/utils/EncryptionImpl.java
new file mode 100644
index 0000000..7965216
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/modules/utils/EncryptionImpl.java
@@ -0,0 +1,107 @@
+package com.salesmanager.core.business.modules.utils;
+
+import javax.crypto.Cipher;
+import javax.crypto.spec.IvParameterSpec;
+import javax.crypto.spec.SecretKeySpec;
+
+import org.apache.commons.lang3.StringUtils;
+
+import com.salesmanager.core.modules.utils.Encryption;
+
+public final class EncryptionImpl implements Encryption {
+
+ private final static String IV_P = "fedcba9876543210";
+ private final static String KEY_SPEC = "AES";
+ private final static String CYPHER_SPEC = "AES/CBC/PKCS5Padding";
+
+
+
+ private String secretKey;
+
+
+
+ @Override
+ public String encrypt(String value) throws Exception {
+
+
+ // value = StringUtils.rightPad(value, 16,"*");
+ // Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding");
+ // NEED TO UNDERSTAND WHY PKCS5Padding DOES NOT WORK
+ Cipher cipher = Cipher.getInstance(CYPHER_SPEC);
+ SecretKeySpec keySpec = new SecretKeySpec(secretKey.getBytes(), KEY_SPEC);
+ IvParameterSpec ivSpec = new IvParameterSpec(IV_P
+ .getBytes());
+ cipher.init(Cipher.ENCRYPT_MODE, keySpec, ivSpec);
+ byte[] inpbytes = value.getBytes();
+ byte[] encrypted = cipher.doFinal(inpbytes);
+ return new String(bytesToHex(encrypted));
+
+
+ }
+
+ @Override
+ public String decrypt(String value) throws Exception {
+
+
+ if (StringUtils.isBlank(value))
+ throw new Exception("Nothing to encrypt");
+
+ // NEED TO UNDERSTAND WHY PKCS5Padding DOES NOT WORK
+ // Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding");
+ Cipher cipher = Cipher.getInstance(CYPHER_SPEC);
+ SecretKeySpec keySpec = new SecretKeySpec(secretKey.getBytes(), KEY_SPEC);
+ IvParameterSpec ivSpec = new IvParameterSpec(IV_P
+ .getBytes());
+ cipher.init(Cipher.DECRYPT_MODE, keySpec, ivSpec);
+ byte[] outText;
+ outText = cipher.doFinal(hexToBytes(value));
+ return new String(outText);
+
+
+ }
+
+
+ private String bytesToHex(byte[] data) {
+ if (data == null) {
+ return null;
+ } else {
+ int len = data.length;
+ String str = "";
+ for (int i = 0; i < len; i++) {
+ if ((data[i] & 0xFF) < 16) {
+ str = str + "0"
+ + java.lang.Integer.toHexString(data[i] & 0xFF);
+ } else {
+ str = str + java.lang.Integer.toHexString(data[i] & 0xFF);
+ }
+
+ }
+ return str;
+ }
+ }
+
+ private static byte[] hexToBytes(String str) {
+ if (str == null) {
+ return null;
+ } else if (str.length() < 2) {
+ return null;
+ } else {
+ int len = str.length() / 2;
+ byte[] buffer = new byte[len];
+ for (int i = 0; i < len; i++) {
+ buffer[i] = (byte) Integer.parseInt(str.substring(i * 2,
+ i * 2 + 2), 16);
+ }
+ return buffer;
+ }
+ }
+
+ public String getSecretKey() {
+ return secretKey;
+ }
+
+ public void setSecretKey(String secretKey) {
+ this.secretKey = secretKey;
+ }
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/modules/utils/GeoLocationImpl.java b/sm-core/src/main/java/com/salesmanager/core/business/modules/utils/GeoLocationImpl.java
new file mode 100644
index 0000000..3781625
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/modules/utils/GeoLocationImpl.java
@@ -0,0 +1,50 @@
+package com.salesmanager.core.business.modules.utils;
+
+import java.net.InetAddress;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.maxmind.geoip2.DatabaseReader;
+import com.maxmind.geoip2.model.CityResponse;
+import com.salesmanager.core.model.common.Address;
+import com.salesmanager.core.modules.utils.GeoLocation;
+
+public class GeoLocationImpl implements GeoLocation {
+
+ private DatabaseReader reader = null;
+ private static final Logger LOGGER = LoggerFactory.getLogger( GeoLocationImpl.class );
+
+
+ @Override
+ public Address getAddress(String ipAddress) throws Exception {
+
+ if(reader==null) {
+ try {
+ java.io.InputStream inputFile = GeoLocationImpl.class.getClassLoader().getResourceAsStream("reference/GeoLite2-Country.mmdb");
+ reader = new DatabaseReader.Builder(inputFile).build();
+ } catch(Exception e) {
+ LOGGER.error("Cannot instantiate IP database",e);
+ }
+ }
+
+ Address address = new Address();
+
+
+ CityResponse response = reader.city(InetAddress.getByName(ipAddress));
+
+ address.setCountry(response.getCountry().getIsoCode());
+ address.setPostalCode(response.getPostal().getCode());
+ address.setZone(response.getMostSpecificSubdivision().getIsoCode());
+ address.setCity(response.getCity().getName());
+
+
+
+
+ return address;
+
+
+ }
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/category/CategoryRepository.java b/sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/category/CategoryRepository.java
new file mode 100644
index 0000000..59d3ae0
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/category/CategoryRepository.java
@@ -0,0 +1,70 @@
+package com.salesmanager.core.business.repositories.catalog.category;
+
+import java.util.List;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+
+import com.salesmanager.core.model.catalog.category.Category;
+
+
+public interface CategoryRepository extends JpaRepository<Category, Long>, CategoryRepositoryCustom {
+
+
+ @Query("select c from Category c left join fetch c.descriptions cd join fetch cd.language cdl join fetch c.merchantStore cm where cd.seUrl like ?2 and cm.id = ?1 order by c.sortOrder asc")
+ List<Category> listByFriendlyUrl(Integer storeId, String friendlyUrl);
+
+ @Query("select c from Category c left join fetch c.descriptions cd join fetch cd.language cdl join fetch c.merchantStore cm where cd.seUrl=?2 and cm.id = ?1")
+ Category findByFriendlyUrl(Integer storeId, String friendlyUrl);
+
+ @Query("select c from Category c left join fetch c.descriptions cd join fetch cd.language cdl join fetch c.merchantStore cm where cd.name like %?2% and cdl.id=?3 and cm.id = ?1 order by c.sortOrder asc")
+ List<Category> findByName(Integer storeId, String name, Integer languageId);
+
+ @Query("select c from Category c left join fetch c.descriptions cd join fetch cd.language cdl join fetch c.merchantStore cm where c.code=?2 and cm.id = ?1")
+ Category findByCode(Integer storeId, String code);
+
+ @Query("select c from Category c left join fetch c.descriptions cd join fetch cd.language cdl join fetch c.merchantStore cm where c.code in (?2) and cdl.id=?3 and cm.id = ?1 order by c.sortOrder asc")
+ List<Category> findByCodes(Integer storeId, List<String> codes, Integer languageId);
+
+ @Query("select c from Category c left join fetch c.descriptions cd join fetch cd.language cdl join fetch c.merchantStore cm where c.id in (?2) and cdl.id=?3 and cm.id = ?1 order by c.sortOrder asc")
+ List<Category> findByIds(Integer storeId, List<Long> ids, Integer languageId);
+
+ @Query("select c from Category c left join fetch c.descriptions cd join fetch cd.language cdl join fetch c.merchantStore cm where cdl.id=?2 and c.id = ?1")
+ Category findById(Long categoryId, Integer languageId);
+
+ //@Query("select c from Category c left join fetch c.descriptions cd join fetch c.merchantStore cm where cd.language.id=?2 and c.id = ?1")
+ //List<Category> findById(Long categoryId, Integer languageId);
+
+ @Query("select c from Category c left join fetch c.descriptions cd join fetch cd.language cdl join fetch c.merchantStore cm where cm.code=?1 and c.code=?2")
+ public Category findByCode(String merchantStoreCode, String code);
+
+ @Query("select c from Category c left join fetch c.descriptions cd join fetch cd.language cdl join fetch c.merchantStore cm where c.id=?1")
+ public Category findById(Long categoryId);
+
+ @Query("select distinct c from Category c left join fetch c.descriptions cd join fetch cd.language cdl join fetch c.merchantStore cm where cm.id=?1 and c.lineage like %?2% order by c.lineage, c.sortOrder asc")
+ public List<Category> findByLineage(Integer merchantId, String linenage);
+
+ @Query("select distinct c from Category c left join fetch c.descriptions cd join fetch cd.language cdl join fetch c.merchantStore cm where cm.code= ?1 and c.lineage like %?2% order by c.lineage, c.sortOrder asc")
+ public List<Category> findByLineage(String storeCode, String linenage);
+
+ @Query("select distinct c from Category c left join fetch c.descriptions cd join fetch cd.language cdl join fetch c.merchantStore cm where cm.id=?1 and c.depth >= ?2 order by c.lineage, c.sortOrder asc")
+ public List<Category> findByDepth(Integer merchantId, int depth);
+
+ @Query("select distinct c from Category c left join fetch c.descriptions cd join fetch cd.language cdl join fetch c.merchantStore cm where cm.id=?1 and cdl.id=?3 and c.depth >= ?2 order by c.lineage, c.sortOrder asc")
+ public List<Category> findByDepth(Integer merchantId, int depth, Integer languageId);
+
+ //@Query("select distinct c from Category c left join fetch c.descriptions cd join fetch c.merchantStore cm left join fetch c.parent cp where cm.id=?1 and cp.id=?2 and cd.language.id=?3 order by c.lineage, c.sortOrder asc")
+ //public List<Category> findByParent(Integer merchantId, Long parentId, Integer languageId);
+
+ @Query("select distinct c from Category c left join fetch c.descriptions cd join fetch cd.language cdl join fetch c.merchantStore cm left join fetch c.parent cp where cp.id=?1 and cdl.id=?2 order by c.lineage, c.sortOrder asc")
+ public List<Category> findByParent(Long parentId, Integer languageId);
+
+ @Query("select distinct c from Category c left join fetch c.descriptions cd join fetch cd.language cdl join fetch c.merchantStore cm where cm.id=?1 and cdl.id=?2 order by c.lineage, c.sortOrder asc")
+ public List<Category> findByStore(Integer merchantId, Integer languageId);
+
+ @Query("select distinct c from Category c left join fetch c.descriptions cd join fetch cd.language cdl join fetch c.merchantStore cm where cm.id=?1 order by c.lineage, c.sortOrder asc")
+ public List<Category> findByStore(Integer merchantId);
+
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/category/CategoryRepositoryCustom.java b/sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/category/CategoryRepositoryCustom.java
new file mode 100644
index 0000000..530f66a
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/category/CategoryRepositoryCustom.java
@@ -0,0 +1,15 @@
+package com.salesmanager.core.business.repositories.catalog.category;
+
+import java.util.List;
+
+import com.salesmanager.core.model.catalog.category.Category;
+import com.salesmanager.core.model.merchant.MerchantStore;
+
+public interface CategoryRepositoryCustom {
+
+ List<Object[]> countProductsByCategories(MerchantStore store,
+ List<Long> categoryIds);
+
+ List<Category> listByStoreAndParent(MerchantStore store, Category category);
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/category/CategoryRepositoryImpl.java b/sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/category/CategoryRepositoryImpl.java
new file mode 100644
index 0000000..1052d5b
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/category/CategoryRepositoryImpl.java
@@ -0,0 +1,96 @@
+package com.salesmanager.core.business.repositories.catalog.category;
+
+import java.util.Date;
+import java.util.List;
+
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+import javax.persistence.Query;
+
+import com.salesmanager.core.model.catalog.category.Category;
+import com.salesmanager.core.model.merchant.MerchantStore;
+
+
+public class CategoryRepositoryImpl implements CategoryRepositoryCustom {
+
+ @PersistenceContext
+ private EntityManager em;
+
+ @Override
+ public List<Object[]> countProductsByCategories(MerchantStore store, List<Long> categoryIds) {
+
+
+ StringBuilder qs = new StringBuilder();
+ qs.append("select categories, count(product.id) from Product product ");
+ qs.append("inner join product.categories categories ");
+ qs.append("where categories.id in (:cid) ");
+ qs.append("and product.available=true and product.dateAvailable<=:dt ");
+ qs.append("group by categories.id");
+
+ String hql = qs.toString();
+ Query q = this.em.createQuery(hql);
+
+ q.setParameter("cid", categoryIds);
+ q.setParameter("dt", new Date());
+
+
+
+ @SuppressWarnings("unchecked")
+ List<Object[]> counts = q.getResultList();
+
+
+ return counts;
+
+
+ }
+
+ @SuppressWarnings("unchecked")
+ @Override
+ public List<Category> listByStoreAndParent(MerchantStore store, Category category) {
+
+ StringBuilder queryBuilder = new StringBuilder();
+ queryBuilder.append("select c from Category c join fetch c.merchantStore cm ");
+
+ if (store == null) {
+ if (category == null) {
+ //query.from(qCategory)
+ queryBuilder.append(" where c.parent IsNull ");
+ //.where(qCategory.parent.isNull())
+ //.orderBy(qCategory.sortOrder.asc(),qCategory.id.desc());
+ } else {
+ //query.from(qCategory)
+ queryBuilder.append(" join fetch c.parent cp where cp.id =:cid ");
+ //.where(qCategory.parent.eq(category))
+ //.orderBy(qCategory.sortOrder.asc(),qCategory.id.desc());
+ }
+ } else {
+ if (category == null) {
+ //query.from(qCategory)
+ queryBuilder.append(" where c.parent IsNull and cm.id=:mid ");
+ //.where(qCategory.parent.isNull()
+ // .and(qCategory.merchantStore.eq(store)))
+ //.orderBy(qCategory.sortOrder.asc(),qCategory.id.desc());
+ } else {
+ //query.from(qCategory)
+ queryBuilder.append(" join fetch c.parent cp where cp.id =:cId and cm.id=:mid ");
+ //.where(qCategory.parent.eq(category)
+ // .and(qCategory.merchantStore.eq(store)))
+ //.orderBy(qCategory.sortOrder.asc(),qCategory.id.desc());
+ }
+ }
+
+ queryBuilder.append(" order by c.sortOrder asc");
+
+ String hql = queryBuilder.toString();
+ Query q = this.em.createQuery(hql);
+
+ q.setParameter("cid", category.getId());
+ if (store != null) {
+ q.setParameter("mid", store.getId());
+ }
+
+
+ return q.getResultList();
+ }
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/product/attribute/ProductAttributeRepository.java b/sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/product/attribute/ProductAttributeRepository.java
new file mode 100644
index 0000000..f1420c4
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/product/attribute/ProductAttributeRepository.java
@@ -0,0 +1,26 @@
+package com.salesmanager.core.business.repositories.catalog.product.attribute;
+
+import java.util.List;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+
+import com.salesmanager.core.model.catalog.product.attribute.ProductAttribute;
+
+public interface ProductAttributeRepository extends JpaRepository<ProductAttribute, Long> {
+
+ @Query("select p from ProductAttribute p join fetch p.product pr left join fetch p.productOption po left join fetch p.productOptionValue pov left join fetch po.descriptions pod left join fetch pov.descriptions povd left join fetch po.merchantStore where p.id = ?1")
+ ProductAttribute findById(Long id);
+
+ @Query("select p from ProductAttribute p join fetch p.product pr left join fetch p.productOption po left join fetch p.productOptionValue pov left join fetch po.descriptions pod left join fetch pov.descriptions povd left join fetch po.merchantStore pom where pom.id = ?1 and po.id = ?2")
+ List<ProductAttribute> findByOptionId(Integer storeId, Long id);
+
+ @Query("select p from ProductAttribute p join fetch p.product pr left join fetch p.productOption po left join fetch p.productOptionValue pov left join fetch po.descriptions pod left join fetch pov.descriptions povd left join fetch po.merchantStore pom where pom.id = ?1 and po.id = ?2")
+ List<ProductAttribute> findByOptionValueId(Integer storeId, Long id);
+
+ @Query("select p from ProductAttribute p join fetch p.product pr left join fetch p.productOption po left join fetch p.productOptionValue pov left join fetch po.descriptions pod left join fetch pov.descriptions povd left join fetch pov.merchantStore povm where povm.id = ?1 and pov.id = ?2")
+ List<ProductAttribute> findByAttributeIds(Integer storeId, List<Long> ids);
+
+ @Query("select p from ProductAttribute p join fetch p.product pr left join fetch p.productOption po left join fetch p.productOptionValue pov left join fetch po.descriptions pod left join fetch pov.descriptions povd left join fetch po.merchantStore pom where pom.id = ?1 and pr.id = ?2 and povd.language.id = ?3")
+ List<ProductAttribute> findByProductId(Integer storeId, Long productId, Integer languageId);
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/product/attribute/ProductOptionRepository.java b/sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/product/attribute/ProductOptionRepository.java
new file mode 100644
index 0000000..decae9d
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/product/attribute/ProductOptionRepository.java
@@ -0,0 +1,28 @@
+package com.salesmanager.core.business.repositories.catalog.product.attribute;
+
+import java.util.List;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+
+import com.salesmanager.core.model.catalog.product.attribute.ProductOption;
+
+public interface ProductOptionRepository extends JpaRepository<ProductOption, Long> {
+
+ @Query("select p from ProductOption p join fetch p.merchantStore pm left join fetch p.descriptions pd where p.id = ?1")
+ ProductOption findById(Long id);
+
+ @Query("select distinct p from ProductOption p join fetch p.merchantStore pm left join fetch p.descriptions pd where pm.id = ?1 and pd.language.id = ?2")
+ List<ProductOption> findByStoreId(Integer storeId, Integer languageId);
+
+ @Query("select p from ProductOption p join fetch p.merchantStore pm left join fetch p.descriptions pd where pm.id = ?1 and pd.name like %?2% and pd.language.id = ?3")
+ public List<ProductOption> findByName(Integer storeId, String name, Integer languageId);
+
+ @Query("select p from ProductOption p join fetch p.merchantStore pm left join fetch p.descriptions pd where pm.id = ?1 and p.code = ?2")
+ public ProductOption findByCode(Integer storeId, String optionCode);
+
+ @Query("select distinct p from ProductOption p join fetch p.merchantStore pm left join fetch p.descriptions pd where pm.id = ?1 and p.code = ?2 and p.readOnly = ?3")
+ public List<ProductOption> findByReadOnly(Integer storeId, Integer languageId, boolean readOnly);
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/product/attribute/ProductOptionValueRepository.java b/sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/product/attribute/ProductOptionValueRepository.java
new file mode 100644
index 0000000..aff5402
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/product/attribute/ProductOptionValueRepository.java
@@ -0,0 +1,29 @@
+package com.salesmanager.core.business.repositories.catalog.product.attribute;
+
+import java.util.List;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+
+import com.salesmanager.core.model.catalog.product.attribute.ProductOptionValue;
+
+public interface ProductOptionValueRepository extends JpaRepository<ProductOptionValue, Long> {
+
+ @Query("select p from ProductOptionValue p join fetch p.merchantStore pm left join fetch p.descriptions pd where p.id = ?1")
+ ProductOptionValue getById(Long id);
+
+ @Query("select distinct p from ProductOptionValue p join fetch p.merchantStore pm left join fetch p.descriptions pd where pm.id = ?1 and pd.language.id = ?2")
+ List<ProductOptionValue> findByStoreId(Integer storeId, Integer languageId);
+
+ @Query("select p from ProductOptionValue p join fetch p.merchantStore pm left join fetch p.descriptions pd where pm.id = ?1 and p.code = ?2")
+ public ProductOptionValue findByCode(Integer storeId, String optionValueCode);
+
+ @Query("select p from ProductOptionValue p join fetch p.merchantStore pm left join fetch p.descriptions pd where pm.id = ?1 and pd.name like %?2% and pd.language.id = ?3")
+ public List<ProductOptionValue> findByName(Integer storeId, String name, Integer languageId);
+
+
+ @Query("select distinct p from ProductOptionValue p join fetch p.merchantStore pm left join fetch p.descriptions pd where pm.id = ?1 and p.code = ?2 and p.productOptionDisplayOnly = ?3")
+ public List<ProductOptionValue> findByReadOnly(Integer storeId, Integer languageId, boolean readOnly);
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/product/availability/ProductAvailabilityRepository.java b/sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/product/availability/ProductAvailabilityRepository.java
new file mode 100644
index 0000000..1cb1336
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/product/availability/ProductAvailabilityRepository.java
@@ -0,0 +1,9 @@
+package com.salesmanager.core.business.repositories.catalog.product.availability;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+
+import com.salesmanager.core.model.catalog.product.availability.ProductAvailability;
+
+public interface ProductAvailabilityRepository extends JpaRepository<ProductAvailability, Long> {
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/product/file/DigitalProductRepository.java b/sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/product/file/DigitalProductRepository.java
new file mode 100644
index 0000000..ff9131d
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/product/file/DigitalProductRepository.java
@@ -0,0 +1,17 @@
+package com.salesmanager.core.business.repositories.catalog.product.file;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+
+import com.salesmanager.core.model.catalog.product.file.DigitalProduct;
+
+public interface DigitalProductRepository extends JpaRepository<DigitalProduct, Long> {
+
+ @Query("select p from DigitalProduct p inner join fetch p.product pp inner join fetch pp.merchantStore ppm where ppm.id =?1 and pp.id = ?2")
+ DigitalProduct findByProduct(Integer storeId, Long productId);
+
+ @Query("select p from DigitalProduct p inner join fetch p.product pp inner join fetch pp.merchantStore ppm where p.id = ?1")
+ DigitalProduct findById(Long id);
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/product/image/ProductImageRepository.java b/sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/product/image/ProductImageRepository.java
new file mode 100644
index 0000000..998a4cf
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/product/image/ProductImageRepository.java
@@ -0,0 +1,15 @@
+package com.salesmanager.core.business.repositories.catalog.product.image;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+
+import com.salesmanager.core.model.catalog.product.image.ProductImage;
+
+public interface ProductImageRepository extends JpaRepository<ProductImage, Long> {
+
+
+ @Query("select p from ProductImage p left join fetch p.descriptions pd inner join fetch p.product pp inner join fetch pp.merchantStore ppm where p.id = ?1")
+ ProductImage findById(Long id);
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/product/manufacturer/ManufacturerRepository.java b/sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/product/manufacturer/ManufacturerRepository.java
new file mode 100644
index 0000000..163478e
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/product/manufacturer/ManufacturerRepository.java
@@ -0,0 +1,29 @@
+package com.salesmanager.core.business.repositories.catalog.product.manufacturer;
+
+import java.util.List;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+
+import com.salesmanager.core.model.catalog.product.manufacturer.Manufacturer;
+
+public interface ManufacturerRepository extends JpaRepository<Manufacturer, Long> {
+
+ @Query("select count(distinct p) from Product as p where p.manufacturer.id=?1")
+ Long countByProduct(Long manufacturerId);
+
+ @Query("select m from Manufacturer m left join m.descriptions md join fetch m.merchantStore ms where ms.id=?1 and md.language.id=?2")
+ List<Manufacturer> findByStoreAndLanguage(Integer storeId, Integer languageId);
+
+ @Query("select m from Manufacturer m left join m.descriptions md join fetch m.merchantStore ms where m.id=?1")
+ Manufacturer findOne(Long id);
+
+ @Query("select m from Manufacturer m left join m.descriptions md join fetch m.merchantStore ms where ms.id=?1")
+ List<Manufacturer> findByStore(Integer storeId);
+
+ @Query("select distinct manufacturer from Product as p join p.manufacturer manufacturer join manufacturer.descriptions md join p.categories categs where categs.id in (?1) and md.language.id=?2")
+ List<Manufacturer> findByCategoriesAndLanguage(List<Long> categoryIds, Integer languageId);
+
+ @Query("select m from Manufacturer m left join m.descriptions md join fetch m.merchantStore ms where m.code=?1 and ms.id=?2")
+ Manufacturer findByCodeAndMerchandStore(String code, Integer storeId);
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/product/price/ProductPriceRepository.java b/sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/product/price/ProductPriceRepository.java
new file mode 100644
index 0000000..2416311
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/product/price/ProductPriceRepository.java
@@ -0,0 +1,15 @@
+package com.salesmanager.core.business.repositories.catalog.product.price;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+
+import com.salesmanager.core.model.catalog.product.price.ProductPrice;
+
+public interface ProductPriceRepository extends JpaRepository<ProductPrice, Long> {
+
+
+ @Query("select p from ProductPrice p left join fetch p.descriptions pd inner join fetch p.productAvailability pa inner join fetch pa.product pap inner join fetch pap.merchantStore papm where p.id = ?1")
+ ProductPrice findById(Long id);
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/product/ProductRepository.java b/sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/product/ProductRepository.java
new file mode 100644
index 0000000..395d802
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/product/ProductRepository.java
@@ -0,0 +1,10 @@
+package com.salesmanager.core.business.repositories.catalog.product;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+
+import com.salesmanager.core.model.catalog.product.Product;
+
+
+public interface ProductRepository extends JpaRepository<Product, Long>, ProductRepositoryCustom {
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/product/ProductRepositoryCustom.java b/sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/product/ProductRepositoryCustom.java
new file mode 100644
index 0000000..944c667
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/product/ProductRepositoryCustom.java
@@ -0,0 +1,45 @@
+package com.salesmanager.core.business.repositories.catalog.product;
+
+import java.util.List;
+import java.util.Locale;
+import java.util.Set;
+
+import com.salesmanager.core.model.catalog.product.Product;
+import com.salesmanager.core.model.catalog.product.ProductCriteria;
+import com.salesmanager.core.model.catalog.product.ProductList;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.reference.language.Language;
+import com.salesmanager.core.model.tax.taxclass.TaxClass;
+
+//@NoRepositoryBean
+public interface ProductRepositoryCustom {
+
+
+
+
+
+ ProductList listByStore(MerchantStore store, Language language,
+ ProductCriteria criteria);
+
+ Product getByFriendlyUrl(MerchantStore store,String seUrl, Locale locale);
+
+ List<Product> getProductsListByCategories(@SuppressWarnings("rawtypes") Set categoryIds);
+
+ List<Product> getProductsListByCategories(Set<Long> categoryIds,
+ Language language);
+
+ List<Product> listByTaxClass(TaxClass taxClass);
+
+ List<Product> listByStore(MerchantStore store);
+
+ Product getProductForLocale(long productId, Language language,
+ Locale locale);
+
+ Product getById(Long productId);
+
+ Product getByCode(String productCode, Language language);
+
+ List<Product> getProductsForLocale(MerchantStore store,
+ Set<Long> categoryIds, Language language, Locale locale);
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/product/relationship/ProductRelationshipRepository.java b/sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/product/relationship/ProductRelationshipRepository.java
new file mode 100644
index 0000000..269f8bc
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/product/relationship/ProductRelationshipRepository.java
@@ -0,0 +1,10 @@
+package com.salesmanager.core.business.repositories.catalog.product.relationship;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+
+import com.salesmanager.core.model.catalog.product.relationship.ProductRelationship;
+
+
+public interface ProductRelationshipRepository extends JpaRepository<ProductRelationship, Long>, ProductRelationshipRepositoryCustom {
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/product/relationship/ProductRelationshipRepositoryCustom.java b/sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/product/relationship/ProductRelationshipRepositoryCustom.java
new file mode 100644
index 0000000..2bd6ab5
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/product/relationship/ProductRelationshipRepositoryCustom.java
@@ -0,0 +1,31 @@
+package com.salesmanager.core.business.repositories.catalog.product.relationship;
+
+import java.util.List;
+
+import com.salesmanager.core.model.catalog.product.Product;
+import com.salesmanager.core.model.catalog.product.relationship.ProductRelationship;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.reference.language.Language;
+
+
+public interface ProductRelationshipRepositoryCustom {
+
+ List<ProductRelationship> getByType(MerchantStore store, String type,
+ Language language);
+
+ List<ProductRelationship> getByType(MerchantStore store, String type,
+ Product product, Language language);
+
+ List<ProductRelationship> getByGroup(MerchantStore store, String group);
+
+ List<ProductRelationship> getGroups(MerchantStore store);
+
+ List<ProductRelationship> getByType(MerchantStore store, String type);
+
+ List<ProductRelationship> listByProducts(Product product);
+
+ List<ProductRelationship> getByType(MerchantStore store, String type,
+ Product product);
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/product/review/ProductReviewRepository.java b/sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/product/review/ProductReviewRepository.java
new file mode 100644
index 0000000..8f910ab
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/product/review/ProductReviewRepository.java
@@ -0,0 +1,32 @@
+package com.salesmanager.core.business.repositories.catalog.product.review;
+
+import java.util.List;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+
+import com.salesmanager.core.model.catalog.product.review.ProductReview;
+
+public interface ProductReviewRepository extends JpaRepository<ProductReview, Long> {
+
+
+ @Query("select p from ProductReview p join fetch p.customer pc join fetch p.product pp join fetch pp.merchantStore ppm left join fetch p.descriptions pd where p.id = ?1")
+ List<ProductReview> findById(Long id);
+
+ @Query("select p from ProductReview p join fetch p.customer pc join fetch p.product pp join fetch pp.merchantStore ppm left join fetch p.descriptions pd where pc.id = ?1")
+ List<ProductReview> findByCustomer(Long customerId);
+
+ @Query("select p from ProductReview p left join fetch p.descriptions pd join fetch p.customer pc join fetch pc.merchantStore pcm left join fetch pc.defaultLanguage pcl left join fetch pc.attributes pca left join fetch pca.customerOption pcao left join fetch pca.customerOptionValue pcav left join fetch pcao.descriptions pcaod left join fetch pcav.descriptions pcavd join fetch p.product pp join fetch pp.merchantStore ppm join fetch p.product pp join fetch pp.merchantStore ppm left join fetch p.descriptions pd where pp.id = ?1")
+ List<ProductReview> findByProduct(Long productId);
+
+ @Query("select p from ProductReview p join fetch p.product pp join fetch pp.merchantStore ppm where pp.id = ?1")
+ List<ProductReview> findByProductNoCustomers(Long productId);
+
+ @Query("select p from ProductReview p left join fetch p.descriptions pd join fetch p.customer pc join fetch pc.merchantStore pcm left join fetch pc.defaultLanguage pcl left join fetch pc.attributes pca left join fetch pca.customerOption pcao left join fetch pca.customerOptionValue pcav left join fetch pcao.descriptions pcaod left join fetch pcav.descriptions pcavd join fetch p.product pp join fetch pp.merchantStore ppm join fetch p.product pp join fetch pp.merchantStore ppm left join fetch p.descriptions pd where pp.id = ?1 and pd.language.id =?2")
+ List<ProductReview> findByProduct(Long productId, Integer languageId);
+
+ @Query("select p from ProductReview p left join fetch p.descriptions pd join fetch p.customer pc join fetch pc.merchantStore pcm left join fetch pc.defaultLanguage pcl left join fetch pc.attributes pca left join fetch pca.customerOption pcao left join fetch pca.customerOptionValue pcav left join fetch pcao.descriptions pcaod left join fetch pcav.descriptions pcavd join fetch p.product pp join fetch pp.merchantStore ppm join fetch p.product pp join fetch pp.merchantStore ppm left join fetch p.descriptions pd where pp.id = ?1 and pc.id = ?2")
+ ProductReview findByProductAndCustomer(Long productId, Long customerId);
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/product/type/ProductTypeRepository.java b/sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/product/type/ProductTypeRepository.java
new file mode 100644
index 0000000..238617a
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/repositories/catalog/product/type/ProductTypeRepository.java
@@ -0,0 +1,10 @@
+package com.salesmanager.core.business.repositories.catalog.product.type;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+
+import com.salesmanager.core.model.catalog.product.type.ProductType;
+
+public interface ProductTypeRepository extends JpaRepository<ProductType, Long> {
+
+ ProductType findByCode(String code);
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/repositories/content/ContentRepository.java b/sm-core/src/main/java/com/salesmanager/core/business/repositories/content/ContentRepository.java
new file mode 100644
index 0000000..fd9ab2e
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/repositories/content/ContentRepository.java
@@ -0,0 +1,38 @@
+package com.salesmanager.core.business.repositories.content;
+
+import java.util.List;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+
+import com.salesmanager.core.model.content.Content;
+
+public interface ContentRepository extends JpaRepository<Content, Long>, ContentRepositoryCustom {
+
+
+ @Query("select c from Content c left join fetch c.descriptions cd join fetch c.merchantStore cm where c.contentType = ?1 and cm.id = ?2 and cd.language.id = ?3 order by c.sortOrder asc")
+ List<Content> findByType(String contentType, Integer storeId, Integer languageId);
+
+ @Query("select c from Content c left join fetch c.descriptions cd join fetch c.merchantStore cm where c.contentType = ?1 and cm.id = ?2 order by c.sortOrder asc")
+ List<Content> findByType(String contentType, Integer storeId);
+
+ @Query("select c from Content c left join fetch c.descriptions cd join fetch c.merchantStore cm where c.contentType in (?1) and cm.id = ?2 and cd.language.id = ?3 order by c.sortOrder asc")
+ List<Content> findByTypes(List<String> contentTypes, Integer storeId, Integer languageId);
+
+ @Query("select c from Content c left join fetch c.descriptions cd join fetch c.merchantStore cm where c.contentType in (?1) and cm.id = ?2 order by c.sortOrder asc")
+ List<Content> findByTypes(List<String> contentTypes, Integer storeId);
+
+ @Query("select c from Content c left join fetch c.descriptions cd join fetch c.merchantStore cm where c.code = ?1 and cm.id = ?2")
+ Content findByCode(String code, Integer storeId);
+
+ @Query("select c from Content c left join fetch c.descriptions cd join fetch c.merchantStore cm where c.code = ?1 and cm.id = ?2 and cd.language.id = ?3")
+ Content findByCode(String code, Integer storeId, Integer languageId);
+
+ @Query("select c from Content c left join fetch c.descriptions cd join fetch c.merchantStore cm where c.id = ?1 and cd.language.id = ?2")
+ Content findByIdAndLanguage(Long contentId, Integer languageId);
+
+ @Query("select c from Content c left join fetch c.descriptions cd join fetch c.merchantStore cm where c.id = ?1")
+ Content findById(Long contentId);
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/repositories/content/ContentRepositoryCustom.java b/sm-core/src/main/java/com/salesmanager/core/business/repositories/content/ContentRepositoryCustom.java
new file mode 100644
index 0000000..c04191b
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/repositories/content/ContentRepositoryCustom.java
@@ -0,0 +1,19 @@
+package com.salesmanager.core.business.repositories.content;
+
+import java.util.List;
+
+import com.salesmanager.core.model.content.ContentDescription;
+import com.salesmanager.core.model.content.ContentType;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.reference.language.Language;
+
+
+public interface ContentRepositoryCustom {
+
+ List<ContentDescription> listNameByType(List<ContentType> contentType,
+ MerchantStore store, Language language);
+
+ ContentDescription getBySeUrl(MerchantStore store, String seUrl);
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/repositories/content/ContentRepositoryImpl.java b/sm-core/src/main/java/com/salesmanager/core/business/repositories/content/ContentRepositoryImpl.java
new file mode 100644
index 0000000..163f3f5
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/repositories/content/ContentRepositoryImpl.java
@@ -0,0 +1,108 @@
+package com.salesmanager.core.business.repositories.content;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+import javax.persistence.Query;
+
+import com.salesmanager.core.model.content.Content;
+import com.salesmanager.core.model.content.ContentDescription;
+import com.salesmanager.core.model.content.ContentType;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.reference.language.Language;
+
+
+public class ContentRepositoryImpl implements ContentRepositoryCustom {
+
+
+ @PersistenceContext
+ private EntityManager em;
+
+ @Override
+ public List<ContentDescription> listNameByType(List<ContentType> contentType, MerchantStore store, Language language) {
+
+
+
+ StringBuilder qs = new StringBuilder();
+
+ qs.append("select c from Content c ");
+ qs.append("left join fetch c.descriptions cd join fetch c.merchantStore cm ");
+ qs.append("where c.contentType in (:ct) ");
+ qs.append("and cm.id =:cm ");
+ qs.append("and cd.language.id =:cl ");
+ qs.append("and c.visible=true ");
+ qs.append("order by c.sortOrder");
+
+ String hql = qs.toString();
+ Query q = this.em.createQuery(hql);
+
+ q.setParameter("ct", contentType);
+ q.setParameter("cm", store.getId());
+ q.setParameter("cl", language.getId());
+
+
+ @SuppressWarnings("unchecked")
+ List<Content> contents = q.getResultList();
+
+ List<ContentDescription> descriptions = new ArrayList<ContentDescription>();
+ for(Content c : contents) {
+ String name = c.getDescription().getName();
+ String url = c.getDescription().getSeUrl();
+ ContentDescription contentDescription = new ContentDescription();
+ contentDescription.setName(name);
+ contentDescription.setSeUrl(url);
+ descriptions.add(contentDescription);
+ }
+
+ return descriptions;
+
+ }
+
+ @Override
+ public ContentDescription getBySeUrl(MerchantStore store,String seUrl) {
+
+ StringBuilder qs = new StringBuilder();
+
+ qs.append("select c from Content c ");
+ qs.append("left join fetch c.descriptions cd join fetch c.merchantStore cm ");
+ qs.append("where c.contentType in (:ct) ");
+ qs.append("where cm.id =:cm ");
+ qs.append("and cd.seUrl =:se ");
+ qs.append("and c.visible=true");
+
+
+ String hql = qs.toString();
+ Query q = this.em.createQuery(hql);
+
+ q.setParameter("cm", store.getId());
+ q.setParameter("se", seUrl);
+
+
+ Content content = (Content)q.getSingleResult();
+
+
+ if(content!=null) {
+ return content.getDescription();
+ }
+
+ @SuppressWarnings("unchecked")
+ List<Content> results = q.getResultList();
+ if (results.isEmpty()) {
+ return null;
+ } else if (results.size() >= 1) {
+ content = results.get(0);
+ }
+
+ if(content!=null) {
+ return content.getDescription();
+ }
+
+
+ return null;
+
+ }
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/repositories/customer/attribute/CustomerAttributeRepository.java b/sm-core/src/main/java/com/salesmanager/core/business/repositories/customer/attribute/CustomerAttributeRepository.java
new file mode 100644
index 0000000..d3f3e72
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/repositories/customer/attribute/CustomerAttributeRepository.java
@@ -0,0 +1,27 @@
+package com.salesmanager.core.business.repositories.customer.attribute;
+
+import java.util.List;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+
+import com.salesmanager.core.model.customer.attribute.CustomerAttribute;
+
+public interface CustomerAttributeRepository extends JpaRepository<CustomerAttribute, Long> {
+
+
+ @Query("select a from CustomerAttribute a left join fetch a.customerOption aco left join fetch a.customerOptionValue acov left join fetch aco.descriptions acod left join fetch acov.descriptions acovd where a.id = ?1")
+ CustomerAttribute findById(Long id);
+
+ @Query("select a from CustomerAttribute a join fetch a.customer ac left join fetch a.customerOption aco join fetch aco.merchantStore acom left join fetch a.customerOptionValue acov left join fetch aco.descriptions acod left join fetch acov.descriptions acovd where acom.id = ?1 and ac.id = ?2 and aco.id = ?3")
+ CustomerAttribute findByOptionId(Integer merchantId,Long customerId,Long id);
+
+ @Query("select a from CustomerAttribute a join fetch a.customer ac left join fetch a.customerOption aco join fetch aco.merchantStore acom left join fetch a.customerOptionValue acov left join fetch aco.descriptions acod left join fetch acov.descriptions acovd where acom.id = ?1 and aco.id = ?2")
+ List<CustomerAttribute> findByOptionId(Integer merchantId,Long id);
+
+ @Query("select distinct a from CustomerAttribute a join fetch a.customer ac left join fetch a.customerOption aco join fetch aco.merchantStore acom left join fetch a.customerOptionValue acov left join fetch aco.descriptions acod left join fetch acov.descriptions acovd where acom.id = ?1 and aco.id = ?2")
+ List<CustomerAttribute> findByCustomerId(Integer merchantId,Long customerId);
+
+ @Query("select a from CustomerAttribute a join fetch a.customer ac left join fetch a.customerOption aco join fetch aco.merchantStore acom left join fetch a.customerOptionValue acov left join fetch aco.descriptions acod left join fetch acov.descriptions acovd where acom.id = ?1 and acov.id = ?2")
+ List<CustomerAttribute> findByOptionValueId(Integer merchantId,Long Id);
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/repositories/customer/attribute/CustomerOptionRepository.java b/sm-core/src/main/java/com/salesmanager/core/business/repositories/customer/attribute/CustomerOptionRepository.java
new file mode 100644
index 0000000..85ce303
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/repositories/customer/attribute/CustomerOptionRepository.java
@@ -0,0 +1,22 @@
+package com.salesmanager.core.business.repositories.customer.attribute;
+
+import java.util.List;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+
+import com.salesmanager.core.model.customer.attribute.CustomerOption;
+
+public interface CustomerOptionRepository extends JpaRepository<CustomerOption, Long> {
+
+
+ @Query("select o from CustomerOption o join fetch o.merchantStore om left join fetch o.descriptions od where o.id = ?1")
+ CustomerOption findById(Long id);
+
+ @Query("select o from CustomerOption o join fetch o.merchantStore om left join fetch o.descriptions od where om.id = ?1 and o.code = ?2")
+ CustomerOption findByCode(Integer merchantId, String code);
+
+ @Query("select o from CustomerOption o join fetch o.merchantStore om left join fetch o.descriptions od where om.id = ?1 and od.language.id = ?2")
+ List<CustomerOption> findByStore(Integer merchantId, Integer languageId);
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/repositories/customer/attribute/CustomerOptionSetRepository.java b/sm-core/src/main/java/com/salesmanager/core/business/repositories/customer/attribute/CustomerOptionSetRepository.java
new file mode 100644
index 0000000..07801ab
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/repositories/customer/attribute/CustomerOptionSetRepository.java
@@ -0,0 +1,25 @@
+package com.salesmanager.core.business.repositories.customer.attribute;
+
+import java.util.List;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+
+import com.salesmanager.core.model.customer.attribute.CustomerOptionSet;
+
+public interface CustomerOptionSetRepository extends JpaRepository<CustomerOptionSet, Long> {
+
+
+ @Query("select c from CustomerOptionSet c join fetch c.customerOption co join fetch c.customerOptionValue cov join fetch co.merchantStore com left join fetch co.descriptions cod left join fetch cov.descriptions covd where c.id = ?1")
+ CustomerOptionSet findById(Long id);
+
+ @Query("select c from CustomerOptionSet c join fetch c.customerOption co join fetch c.customerOptionValue cov join fetch co.merchantStore com left join fetch co.descriptions cod left join fetch cov.descriptions covd where com.id = ?1 and co.id = ?2")
+ List<CustomerOptionSet> findByOptionId(Integer merchantStoreId, Long id);
+
+ @Query("select c from CustomerOptionSet c join fetch c.customerOption co join fetch c.customerOptionValue cov join fetch co.merchantStore com left join fetch co.descriptions cod left join fetch cov.descriptions covd where com.id = ?1 and cov.id = ?2")
+ List<CustomerOptionSet> findByOptionValueId(Integer merchantStoreId, Long id);
+
+ @Query("select c from CustomerOptionSet c join fetch c.customerOption co join fetch c.customerOptionValue cov join fetch co.merchantStore com left join fetch co.descriptions cod left join fetch cov.descriptions covd where com.id = ?1 and cod.language.id = ?2 and covd.language.id = ?2 order by c.sortOrder asc")
+ List<CustomerOptionSet> findByStore(Integer merchantStoreId, Integer languageId);
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/repositories/customer/attribute/CustomerOptionValueRepository.java b/sm-core/src/main/java/com/salesmanager/core/business/repositories/customer/attribute/CustomerOptionValueRepository.java
new file mode 100644
index 0000000..f09174b
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/repositories/customer/attribute/CustomerOptionValueRepository.java
@@ -0,0 +1,23 @@
+package com.salesmanager.core.business.repositories.customer.attribute;
+
+import java.util.List;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+
+import com.salesmanager.core.model.customer.attribute.CustomerOption;
+import com.salesmanager.core.model.customer.attribute.CustomerOptionValue;
+
+public interface CustomerOptionValueRepository extends JpaRepository<CustomerOptionValue, Long> {
+
+
+ @Query("select o from CustomerOptionValue o join fetch o.merchantStore om left join fetch o.descriptions od where o.id = ?1")
+ CustomerOptionValue findById(Long id);
+
+ @Query("select o from CustomerOptionValue o join fetch o.merchantStore om left join fetch o.descriptions od where om.id = ?1 and o.code = ?2")
+ CustomerOptionValue findByCode(Integer merchantId, String code);
+
+ @Query("select o from CustomerOptionValue o join fetch o.merchantStore om left join fetch o.descriptions od where om.id = ?1 and od.language.id = ?2")
+ List<CustomerOptionValue> findByStore(Integer merchantId, Integer languageId);
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/repositories/customer/CustomerRepository.java b/sm-core/src/main/java/com/salesmanager/core/business/repositories/customer/CustomerRepository.java
new file mode 100644
index 0000000..3c40ad6
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/repositories/customer/CustomerRepository.java
@@ -0,0 +1,27 @@
+package com.salesmanager.core.business.repositories.customer;
+
+import java.util.List;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+
+import com.salesmanager.core.model.customer.Customer;
+
+public interface CustomerRepository extends JpaRepository<Customer, Long>, CustomerRepositoryCustom {
+
+
+ @Query("select c from Customer c join fetch c.merchantStore cm left join fetch c.defaultLanguage cl left join fetch c.attributes ca left join fetch ca.customerOption cao left join fetch ca.customerOptionValue cav left join fetch cao.descriptions caod left join fetch cav.descriptions where c.id = ?1")
+ Customer findById(Long id);
+
+ @Query("select c from Customer c join fetch c.merchantStore cm left join fetch c.defaultLanguage cl left join fetch c.attributes ca left join fetch ca.customerOption cao left join fetch ca.customerOptionValue cav left join fetch cao.descriptions caod left join fetch cav.descriptions where c.billing.firstName = ?1")
+ List<Customer> findByName(String name);
+
+ @Query("select c from Customer c join fetch c.merchantStore cm left join fetch c.defaultLanguage cl left join fetch c.attributes ca left join fetch ca.customerOption cao left join fetch ca.customerOptionValue cav left join fetch cao.descriptions caod left join fetch cav.descriptions where c.nick = ?1")
+ Customer findByNick(String nick);
+
+ @Query("select c from Customer c join fetch c.merchantStore cm left join fetch c.defaultLanguage cl left join fetch c.attributes ca left join fetch ca.customerOption cao left join fetch ca.customerOptionValue cav left join fetch cao.descriptions caod left join fetch cav.descriptions where c.nick = ?1 and cm.id = ?2")
+ Customer findByNick(String nick, int storeId);
+
+ @Query("select c from Customer c join fetch c.merchantStore cm left join fetch c.defaultLanguage cl left join fetch c.attributes ca left join fetch ca.customerOption cao left join fetch ca.customerOptionValue cav left join fetch cao.descriptions caod left join fetch cav.descriptions where cm.id = ?1")
+ List<Customer> findByStore(int storeId);
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/repositories/customer/CustomerRepositoryCustom.java b/sm-core/src/main/java/com/salesmanager/core/business/repositories/customer/CustomerRepositoryCustom.java
new file mode 100644
index 0000000..2e8fb93
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/repositories/customer/CustomerRepositoryCustom.java
@@ -0,0 +1,14 @@
+package com.salesmanager.core.business.repositories.customer;
+
+import com.salesmanager.core.model.customer.CustomerCriteria;
+import com.salesmanager.core.model.customer.CustomerList;
+import com.salesmanager.core.model.merchant.MerchantStore;
+
+
+
+public interface CustomerRepositoryCustom {
+
+ CustomerList listByStore(MerchantStore store, CustomerCriteria criteria);
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/repositories/customer/CustomerRepositoryImpl.java b/sm-core/src/main/java/com/salesmanager/core/business/repositories/customer/CustomerRepositoryImpl.java
new file mode 100644
index 0000000..a3d5298
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/repositories/customer/CustomerRepositoryImpl.java
@@ -0,0 +1,148 @@
+package com.salesmanager.core.business.repositories.customer;
+
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+import javax.persistence.Query;
+
+import org.apache.commons.lang3.StringUtils;
+
+import com.salesmanager.core.model.customer.CustomerCriteria;
+import com.salesmanager.core.model.customer.CustomerList;
+import com.salesmanager.core.model.merchant.MerchantStore;
+
+
+public class CustomerRepositoryImpl implements CustomerRepositoryCustom {
+
+
+ @PersistenceContext
+ private EntityManager em;
+
+ @SuppressWarnings("unchecked")
+ @Override
+ public CustomerList listByStore(MerchantStore store, CustomerCriteria criteria) {
+
+
+ CustomerList customerList = new CustomerList();
+ StringBuilder countBuilderSelect = new StringBuilder();
+ StringBuilder objectBuilderSelect = new StringBuilder();
+
+ String baseCountQuery = "select count(c) from Customer as c";
+ String baseQuery = "select c from Customer as c";
+ countBuilderSelect.append(baseCountQuery);
+ objectBuilderSelect.append(baseQuery);
+
+ StringBuilder countBuilderWhere = new StringBuilder();
+ StringBuilder objectBuilderWhere = new StringBuilder();
+ String whereQuery = " where c.merchantStore.id=:mId";
+ countBuilderWhere.append(whereQuery);
+ objectBuilderWhere.append(whereQuery);
+
+ if(!StringUtils.isBlank(criteria.getName())) {
+ String nameQuery =" and c.billing.firstName like:nm or c.billing.lastName like:nm";
+ countBuilderWhere.append(nameQuery);
+ objectBuilderWhere.append(nameQuery);
+ }
+
+ if(!StringUtils.isBlank(criteria.getFirstName())) {
+ String nameQuery =" and c..billing.firstName like:fn";
+ countBuilderWhere.append(nameQuery);
+ objectBuilderWhere.append(nameQuery);
+ }
+
+ if(!StringUtils.isBlank(criteria.getLastName())) {
+ String nameQuery =" and c.billing.lastName like:ln";
+ countBuilderWhere.append(nameQuery);
+ objectBuilderWhere.append(nameQuery);
+ }
+
+ if(!StringUtils.isBlank(criteria.getEmail())) {
+ String mailQuery =" and c.emailAddress like:email";
+ countBuilderWhere.append(mailQuery);
+ objectBuilderWhere.append(mailQuery);
+ }
+
+ if(!StringUtils.isBlank(criteria.getCountry())) {
+ String countryQuery =" and c.billing.country.isoCode like:country";
+ countBuilderWhere.append(countryQuery);
+ objectBuilderWhere.append(countryQuery);
+ }
+
+ //count query
+ Query countQ = em.createQuery(
+ countBuilderSelect.toString() + countBuilderWhere.toString());
+
+ //object query
+ Query objectQ = em.createQuery(
+ objectBuilderSelect.toString() + objectBuilderWhere.toString());
+
+ countQ.setParameter("mId", store.getId());
+ objectQ.setParameter("mId", store.getId());
+
+
+ if(!StringUtils.isBlank(criteria.getName())) {
+ String nameParam = new StringBuilder().append("%").append(criteria.getName()).append("%").toString();
+ countQ.setParameter("nm",nameParam);
+ objectQ.setParameter("nm",nameParam);
+ }
+
+ if(!StringUtils.isBlank(criteria.getFirstName())) {
+ String nameParam = new StringBuilder().append("%").append(criteria.getFirstName()).append("%").toString();
+ countQ.setParameter("fn",nameParam);
+ objectQ.setParameter("fn",nameParam);
+ }
+
+ if(!StringUtils.isBlank(criteria.getLastName())) {
+ String nameParam = new StringBuilder().append("%").append(criteria.getLastName()).append("%").toString();
+ countQ.setParameter("ln",nameParam);
+ objectQ.setParameter("ln",nameParam);
+ }
+
+ if(!StringUtils.isBlank(criteria.getEmail())) {
+ String email = new StringBuilder().append("%").append(criteria.getEmail()).append("%").toString();
+ countQ.setParameter("email",email);
+ objectQ.setParameter("email",email);
+ }
+
+ if(!StringUtils.isBlank(criteria.getCountry())) {
+ String country = new StringBuilder().append("%").append(criteria.getCountry()).append("%").toString();
+ countQ.setParameter("country",country);
+ objectQ.setParameter("country",country);
+ }
+
+
+
+ Number count = (Number) countQ.getSingleResult();
+
+ customerList.setTotalCount(count.intValue());
+
+ if(count.intValue()==0)
+ return customerList;
+
+ //TO BE USED
+ int max = criteria.getMaxCount();
+ int first = criteria.getStartIndex();
+
+ objectQ.setFirstResult(first);
+
+
+
+ if(max>0) {
+ int maxCount = first + max;
+
+ if(maxCount < count.intValue()) {
+ objectQ.setMaxResults(maxCount);
+ } else {
+ objectQ.setMaxResults(count.intValue());
+ }
+ }
+
+ customerList.setCustomers(objectQ.getResultList());
+
+ return customerList;
+
+
+ }
+
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/repositories/merchant/MerchantRepository.java b/sm-core/src/main/java/com/salesmanager/core/business/repositories/merchant/MerchantRepository.java
new file mode 100644
index 0000000..bb194c1
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/repositories/merchant/MerchantRepository.java
@@ -0,0 +1,12 @@
+package com.salesmanager.core.business.repositories.merchant;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+
+import com.salesmanager.core.model.merchant.MerchantStore;
+
+public interface MerchantRepository extends JpaRepository<MerchantStore, Integer> {
+
+ @Query("select m from MerchantStore m left join fetch m.country mc left join fetch m.zone mz left join fetch m.defaultLanguage md left join fetch m.languages mls where m.code = ?1")
+ MerchantStore findByCode(String code);
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/repositories/order/orderaccount/OrderAccountRepository.java b/sm-core/src/main/java/com/salesmanager/core/business/repositories/order/orderaccount/OrderAccountRepository.java
new file mode 100644
index 0000000..95c7703
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/repositories/order/orderaccount/OrderAccountRepository.java
@@ -0,0 +1,10 @@
+package com.salesmanager.core.business.repositories.order.orderaccount;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+
+import com.salesmanager.core.model.order.orderaccount.OrderAccount;
+
+public interface OrderAccountRepository extends JpaRepository<OrderAccount, Long> {
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/repositories/order/orderproduct/OrderProductDownloadRepository.java b/sm-core/src/main/java/com/salesmanager/core/business/repositories/order/orderproduct/OrderProductDownloadRepository.java
new file mode 100644
index 0000000..f782b7a
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/repositories/order/orderproduct/OrderProductDownloadRepository.java
@@ -0,0 +1,18 @@
+package com.salesmanager.core.business.repositories.order.orderproduct;
+
+import java.util.List;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+
+import com.salesmanager.core.model.order.orderproduct.OrderProductDownload;
+
+public interface OrderProductDownloadRepository extends JpaRepository<OrderProductDownload, Long> {
+
+ @Query("select o from OrderProductDownload o left join fetch o.orderProduct op join fetch op.order opo join fetch opo.merchant opon where o.id = ?1")
+ OrderProductDownload findById(Long id);
+
+ @Query("select o from OrderProductDownload o left join fetch o.orderProduct op join fetch op.order opo join fetch opo.merchant opon where opo.id = ?1")
+ List<OrderProductDownload> findByOrderId(Long id);
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/repositories/order/orderproduct/OrderProductRepository.java b/sm-core/src/main/java/com/salesmanager/core/business/repositories/order/orderproduct/OrderProductRepository.java
new file mode 100644
index 0000000..9aeb378
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/repositories/order/orderproduct/OrderProductRepository.java
@@ -0,0 +1,10 @@
+package com.salesmanager.core.business.repositories.order.orderproduct;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+
+import com.salesmanager.core.model.order.orderproduct.OrderProduct;
+
+public interface OrderProductRepository extends JpaRepository<OrderProduct, Long> {
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/repositories/order/OrderRepository.java b/sm-core/src/main/java/com/salesmanager/core/business/repositories/order/OrderRepository.java
new file mode 100644
index 0000000..12cf03d
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/repositories/order/OrderRepository.java
@@ -0,0 +1,12 @@
+package com.salesmanager.core.business.repositories.order;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+
+import com.salesmanager.core.model.order.Order;
+
+public interface OrderRepository extends JpaRepository<Order, Long>, OrderRepositoryCustom {
+
+ @Query("select o from Order o join fetch o.orderProducts op join fetch o.orderTotal ot left join fetch o.orderHistory oh left join fetch op.downloads opd left join fetch op.orderAttributes opa left join fetch op.prices opp where o.id = ?1")
+ Order findById(Long id);
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/repositories/order/OrderRepositoryCustom.java b/sm-core/src/main/java/com/salesmanager/core/business/repositories/order/OrderRepositoryCustom.java
new file mode 100644
index 0000000..bbf9306
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/repositories/order/OrderRepositoryCustom.java
@@ -0,0 +1,15 @@
+package com.salesmanager.core.business.repositories.order;
+
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.order.OrderCriteria;
+import com.salesmanager.core.model.order.OrderList;
+
+
+
+
+public interface OrderRepositoryCustom {
+
+ OrderList listByStore(MerchantStore store, OrderCriteria criteria);
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/repositories/order/OrderRepositoryImpl.java b/sm-core/src/main/java/com/salesmanager/core/business/repositories/order/OrderRepositoryImpl.java
new file mode 100644
index 0000000..feb3544
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/repositories/order/OrderRepositoryImpl.java
@@ -0,0 +1,121 @@
+package com.salesmanager.core.business.repositories.order;
+
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+import javax.persistence.Query;
+
+import org.apache.commons.lang3.StringUtils;
+
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.order.OrderCriteria;
+import com.salesmanager.core.model.order.OrderList;
+
+
+public class OrderRepositoryImpl implements OrderRepositoryCustom {
+
+
+ @PersistenceContext
+ private EntityManager em;
+
+ @SuppressWarnings("unchecked")
+ @Override
+ public OrderList listByStore(MerchantStore store, OrderCriteria criteria) {
+
+
+ OrderList orderList = new OrderList();
+ StringBuilder countBuilderSelect = new StringBuilder();
+ StringBuilder objectBuilderSelect = new StringBuilder();
+
+ String baseQuery = "select count(o) from Order as o";
+ countBuilderSelect.append(baseQuery);
+ objectBuilderSelect.append(baseQuery);
+
+ StringBuilder countBuilderWhere = new StringBuilder();
+ StringBuilder objectBuilderWhere = new StringBuilder();
+ String whereQuery = " where o.merchant.id=:mId";
+ countBuilderWhere.append(whereQuery);
+ objectBuilderWhere.append(whereQuery);
+
+ if(!StringUtils.isBlank(criteria.getCustomerName())) {
+ String nameQuery =" and o.billing.firstName like:nm or o.billing.lastName like:nm";
+ countBuilderWhere.append(nameQuery);
+ objectBuilderWhere.append(nameQuery);
+ }
+
+ if(!StringUtils.isBlank(criteria.getPaymentMethod())) {
+ String paymentQuery =" and o.paymentModuleCode like:pm";
+ countBuilderWhere.append(paymentQuery);
+ objectBuilderWhere.append(paymentQuery);
+ }
+
+ if(criteria.getCustomerId()!=null) {
+ String customerQuery =" and o.customerId =:cid";
+ countBuilderWhere.append(customerQuery);
+ objectBuilderWhere.append(customerQuery);
+ }
+
+
+ //count query
+ Query countQ = em.createQuery(
+ countBuilderSelect.toString() + countBuilderWhere.toString());
+
+ //object query
+ Query objectQ = em.createQuery(
+ objectBuilderSelect.toString() + objectBuilderWhere.toString());
+
+ countQ.setParameter("mId", store.getId());
+ objectQ.setParameter("mId", store.getId());
+
+
+ if(!StringUtils.isBlank(criteria.getCustomerName())) {
+ String nameParam = new StringBuilder().append("%").append(criteria.getCustomerName()).append("%").toString();
+ countQ.setParameter("nm",nameParam);
+ objectQ.setParameter("nm",nameParam);
+ }
+
+ if(!StringUtils.isBlank(criteria.getPaymentMethod())) {
+ String payementParam = new StringBuilder().append("%").append(criteria.getPaymentMethod()).append("%").toString();
+ countQ.setParameter("pm",payementParam);
+ objectQ.setParameter("pm",payementParam);
+ }
+
+ if(criteria.getCustomerId()!=null) {
+ countQ.setParameter("cid", criteria.getCustomerId());
+ objectQ.setParameter("cid",criteria.getCustomerId());
+ }
+
+
+ Number count = (Number) countQ.getSingleResult();
+
+ orderList.setTotalCount(count.intValue());
+
+ if(count.intValue()==0)
+ return orderList;
+
+ //TO BE USED
+ int max = criteria.getMaxCount();
+ int first = criteria.getStartIndex();
+
+ objectQ.setFirstResult(first);
+
+
+
+ if(max>0) {
+ int maxCount = first + max;
+
+ if(maxCount < count.intValue()) {
+ objectQ.setMaxResults(maxCount);
+ } else {
+ objectQ.setMaxResults(count.intValue());
+ }
+ }
+
+ orderList.setOrders(objectQ.getResultList());
+
+ return orderList;
+
+
+ }
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/repositories/order/OrderTotalRepository.java b/sm-core/src/main/java/com/salesmanager/core/business/repositories/order/OrderTotalRepository.java
new file mode 100644
index 0000000..dc6f9bd
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/repositories/order/OrderTotalRepository.java
@@ -0,0 +1,10 @@
+package com.salesmanager.core.business.repositories.order;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+
+import com.salesmanager.core.model.order.OrderTotal;
+
+public interface OrderTotalRepository extends JpaRepository<OrderTotal, Long> {
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/repositories/payments/TransactionRepository.java b/sm-core/src/main/java/com/salesmanager/core/business/repositories/payments/TransactionRepository.java
new file mode 100644
index 0000000..07b1c29
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/repositories/payments/TransactionRepository.java
@@ -0,0 +1,14 @@
+package com.salesmanager.core.business.repositories.payments;
+
+import java.util.List;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+
+import com.salesmanager.core.model.payments.Transaction;
+
+public interface TransactionRepository extends JpaRepository<Transaction, Long> {
+
+ @Query("select t from Transaction t join fetch t.order to where to.id = ?1")
+ List<Transaction> findByOrder(Long orderId);
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/repositories/reference/country/CountryRepository.java b/sm-core/src/main/java/com/salesmanager/core/business/repositories/reference/country/CountryRepository.java
new file mode 100644
index 0000000..31e74fe
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/repositories/reference/country/CountryRepository.java
@@ -0,0 +1,20 @@
+package com.salesmanager.core.business.repositories.reference.country;
+
+import java.util.List;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+
+import com.salesmanager.core.model.reference.country.Country;
+
+
+public interface CountryRepository extends JpaRepository <Country, Integer> {
+
+ @Query("select c from Country c left join fetch c.descriptions cd where c.isoCode=?1")
+ Country findByIsoCode(String code);
+
+
+ @Query("select c from Country c left join fetch c.descriptions cd where cd.language.id=?1")
+ List<Country> listByLanguage(Integer id);
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/repositories/reference/currency/CurrencyRepository.java b/sm-core/src/main/java/com/salesmanager/core/business/repositories/reference/currency/CurrencyRepository.java
new file mode 100644
index 0000000..68a952f
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/repositories/reference/currency/CurrencyRepository.java
@@ -0,0 +1,11 @@
+package com.salesmanager.core.business.repositories.reference.currency;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+
+import com.salesmanager.core.model.reference.currency.Currency;
+
+public interface CurrencyRepository extends JpaRepository <Currency, Long> {
+
+
+ Currency getByCode(String code);
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/repositories/reference/language/LanguageRepository.java b/sm-core/src/main/java/com/salesmanager/core/business/repositories/reference/language/LanguageRepository.java
new file mode 100644
index 0000000..ae53875
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/repositories/reference/language/LanguageRepository.java
@@ -0,0 +1,14 @@
+package com.salesmanager.core.business.repositories.reference.language;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.model.reference.language.Language;
+
+public interface LanguageRepository extends JpaRepository <Language, Integer> {
+
+ Language findByCode(String code) throws ServiceException;
+
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/repositories/reference/zone/ZoneRepository.java b/sm-core/src/main/java/com/salesmanager/core/business/repositories/reference/zone/ZoneRepository.java
new file mode 100644
index 0000000..0dd7b03
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/repositories/reference/zone/ZoneRepository.java
@@ -0,0 +1,21 @@
+package com.salesmanager.core.business.repositories.reference.zone;
+
+import java.util.List;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+
+import com.salesmanager.core.model.reference.zone.Zone;
+
+public interface ZoneRepository extends JpaRepository<Zone, Long> {
+
+
+ Zone findByCode(String code);
+
+ @Query("select z from Zone z left join fetch z.descriptions zd where zd.language.id=?1")
+ List<Zone> listByLanguage(Integer id);
+
+ @Query("select z from Zone z left join fetch z.descriptions zd join fetch z.country zc where zc.isoCode=?1 and zd.language.id=?2")
+ List<Zone> listByLanguageAndCountry(String isoCode, Integer languageId);
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/repositories/shipping/ShippingOriginRepository.java b/sm-core/src/main/java/com/salesmanager/core/business/repositories/shipping/ShippingOriginRepository.java
new file mode 100644
index 0000000..0b86e5d
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/repositories/shipping/ShippingOriginRepository.java
@@ -0,0 +1,12 @@
+package com.salesmanager.core.business.repositories.shipping;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+
+import com.salesmanager.core.model.shipping.ShippingOrigin;
+
+public interface ShippingOriginRepository extends JpaRepository<ShippingOrigin, Long> {
+
+ @Query("select s from ShippingOrigin as s join fetch s.merchantStore sm where sm.id = ?1")
+ ShippingOrigin findByStore(Integer storeId);
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/repositories/shoppingcart/ShoppingCartAttributeRepository.java b/sm-core/src/main/java/com/salesmanager/core/business/repositories/shoppingcart/ShoppingCartAttributeRepository.java
new file mode 100644
index 0000000..88b3288
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/repositories/shoppingcart/ShoppingCartAttributeRepository.java
@@ -0,0 +1,9 @@
+package com.salesmanager.core.business.repositories.shoppingcart;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+
+import com.salesmanager.core.model.shoppingcart.ShoppingCartAttributeItem;
+public interface ShoppingCartAttributeRepository extends JpaRepository<ShoppingCartAttributeItem, Long> {
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/repositories/shoppingcart/ShoppingCartItemRepository.java b/sm-core/src/main/java/com/salesmanager/core/business/repositories/shoppingcart/ShoppingCartItemRepository.java
new file mode 100644
index 0000000..0ba984b
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/repositories/shoppingcart/ShoppingCartItemRepository.java
@@ -0,0 +1,9 @@
+package com.salesmanager.core.business.repositories.shoppingcart;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+
+import com.salesmanager.core.model.shoppingcart.ShoppingCartItem;
+public interface ShoppingCartItemRepository extends JpaRepository<ShoppingCartItem, Long> {
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/repositories/shoppingcart/ShoppingCartRepository.java b/sm-core/src/main/java/com/salesmanager/core/business/repositories/shoppingcart/ShoppingCartRepository.java
new file mode 100644
index 0000000..ae5d347
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/repositories/shoppingcart/ShoppingCartRepository.java
@@ -0,0 +1,24 @@
+package com.salesmanager.core.business.repositories.shoppingcart;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+
+import com.salesmanager.core.model.shoppingcart.ShoppingCart;
+public interface ShoppingCartRepository extends JpaRepository<ShoppingCart, Long> {
+
+ @Query("select c from ShoppingCart c left join fetch c.lineItems cl left join fetch cl.attributes cla join fetch c.merchantStore cm where c.id = ?1")
+ ShoppingCart findById(Long id);
+
+ @Query("select c from ShoppingCart c left join fetch c.lineItems cl left join fetch cl.attributes cla join fetch c.merchantStore cm where c.shoppingCartCode = ?1")
+ ShoppingCart findByCode(String code);
+
+ @Query("select c from ShoppingCart c left join fetch c.lineItems cl left join fetch cl.attributes cla join fetch c.merchantStore cm where cm.id = ?1 and c.id = ?2")
+ ShoppingCart findById(Integer merchantId, Long id);
+
+ @Query("select c from ShoppingCart c left join fetch c.lineItems cl left join fetch cl.attributes cla join fetch c.merchantStore cm where cm.id = ?1 and c.shoppingCartCode = ?2")
+ ShoppingCart findByCode(Integer merchantId, String code);
+
+ @Query("select c from ShoppingCart c left join fetch c.lineItems cl left join fetch cl.attributes cla join fetch c.merchantStore cm where c.customerId = ?1")
+ ShoppingCart findByCustomer(Long customerId);
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/repositories/system/CustomerOptinRepository.java b/sm-core/src/main/java/com/salesmanager/core/business/repositories/system/CustomerOptinRepository.java
new file mode 100644
index 0000000..b418d7a
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/repositories/system/CustomerOptinRepository.java
@@ -0,0 +1,14 @@
+package com.salesmanager.core.business.repositories.system;
+
+import java.util.List;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+
+import com.salesmanager.core.model.system.optin.CustomerOptin;
+
+public interface CustomerOptinRepository extends JpaRepository<CustomerOptin, Long> {
+
+ @Query("select distinct c from CustomerOptin as c left join fetch c.optin o join fetch o.merchant om where om.id = ?1 and o.code = ?2")
+ List<CustomerOptin> findByCode(Integer storeId, String code);
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/repositories/system/MerchantConfigurationRepository.java b/sm-core/src/main/java/com/salesmanager/core/business/repositories/system/MerchantConfigurationRepository.java
new file mode 100644
index 0000000..1820536
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/repositories/system/MerchantConfigurationRepository.java
@@ -0,0 +1,24 @@
+package com.salesmanager.core.business.repositories.system;
+
+import java.util.List;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+
+import com.salesmanager.core.model.system.MerchantConfiguration;
+
+public interface MerchantConfigurationRepository extends JpaRepository<MerchantConfiguration, Long> {
+
+ //List<MerchantConfiguration> findByModule(String moduleName);
+
+ //MerchantConfiguration findByCode(String code);
+
+ @Query("select m from MerchantConfiguration m join fetch m.merchantStore ms where ms.id=?1")
+ List<MerchantConfiguration> findByMerchantStore(Integer id);
+
+ @Query("select m from MerchantConfiguration m join fetch m.merchantStore ms where ms.id=?1 and m.key=?2")
+ MerchantConfiguration findByMerchantStoreAndKey(Integer id, String key);
+
+ @Query("select m from MerchantConfiguration m join fetch m.merchantStore ms where ms.id=?1 and m.merchantConfigurationType=?2")
+ List<MerchantConfiguration> findByMerchantStoreAndType(Integer id, String type);
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/repositories/system/MerchantLogRepository.java b/sm-core/src/main/java/com/salesmanager/core/business/repositories/system/MerchantLogRepository.java
new file mode 100644
index 0000000..0b6bd7f
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/repositories/system/MerchantLogRepository.java
@@ -0,0 +1,13 @@
+package com.salesmanager.core.business.repositories.system;
+
+import java.util.List;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.system.MerchantLog;
+
+public interface MerchantLogRepository extends JpaRepository<MerchantLog, Long> {
+
+ public List<MerchantLog> findByStore(MerchantStore store);
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/repositories/system/ModuleConfigurationRepository.java b/sm-core/src/main/java/com/salesmanager/core/business/repositories/system/ModuleConfigurationRepository.java
new file mode 100644
index 0000000..88567fe
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/repositories/system/ModuleConfigurationRepository.java
@@ -0,0 +1,16 @@
+package com.salesmanager.core.business.repositories.system;
+
+import java.util.List;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+
+import com.salesmanager.core.model.system.IntegrationModule;
+
+public interface ModuleConfigurationRepository extends JpaRepository<IntegrationModule, Long> {
+
+ List<IntegrationModule> findByModule(String moduleName);
+
+ IntegrationModule findByCode(String code);
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/repositories/system/OptinRepository.java b/sm-core/src/main/java/com/salesmanager/core/business/repositories/system/OptinRepository.java
new file mode 100644
index 0000000..d693f02
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/repositories/system/OptinRepository.java
@@ -0,0 +1,14 @@
+package com.salesmanager.core.business.repositories.system;
+
+import java.util.List;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+
+import com.salesmanager.core.model.system.optin.Optin;
+
+public interface OptinRepository extends JpaRepository<Optin, Long> {
+
+ @Query("select distinct o from Optin as o left join fetch o.merchant om where om.id = ?1")
+ List<Optin> findByMerchant(Integer storeId);
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/repositories/system/SystemConfigurationRepository.java b/sm-core/src/main/java/com/salesmanager/core/business/repositories/system/SystemConfigurationRepository.java
new file mode 100644
index 0000000..f96fb76
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/repositories/system/SystemConfigurationRepository.java
@@ -0,0 +1,12 @@
+package com.salesmanager.core.business.repositories.system;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+
+import com.salesmanager.core.model.system.SystemConfiguration;
+
+public interface SystemConfigurationRepository extends JpaRepository<SystemConfiguration, Long> {
+
+
+ SystemConfiguration findByKey(String key);
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/repositories/system/SystemNotificationRepository.java b/sm-core/src/main/java/com/salesmanager/core/business/repositories/system/SystemNotificationRepository.java
new file mode 100644
index 0000000..d28a95c
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/repositories/system/SystemNotificationRepository.java
@@ -0,0 +1,10 @@
+package com.salesmanager.core.business.repositories.system;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+
+import com.salesmanager.core.model.system.SystemNotification;
+
+public interface SystemNotificationRepository extends JpaRepository<SystemNotification, Long> {
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/repositories/tax/TaxClassRepository.java b/sm-core/src/main/java/com/salesmanager/core/business/repositories/tax/TaxClassRepository.java
new file mode 100644
index 0000000..ad03a98
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/repositories/tax/TaxClassRepository.java
@@ -0,0 +1,21 @@
+package com.salesmanager.core.business.repositories.tax;
+
+import java.util.List;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+
+import com.salesmanager.core.model.tax.taxclass.TaxClass;
+
+public interface TaxClassRepository extends JpaRepository<TaxClass, Long> {
+
+ @Query("select t from TaxClass t join fetch t.merchantStore tm where tm.id=?1")
+ List<TaxClass> findByStore(Integer id);
+
+ @Query("select t from TaxClass t join fetch t.merchantStore tm where t.code=?1")
+ TaxClass findByCode(String code);
+
+ @Query("select t from TaxClass t join fetch t.merchantStore tm where tm.id=?1 and t.code=?2")
+ TaxClass findByStoreAndCode(Integer id, String code);
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/repositories/tax/TaxRateRepository.java b/sm-core/src/main/java/com/salesmanager/core/business/repositories/tax/TaxRateRepository.java
new file mode 100644
index 0000000..6cf4928
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/repositories/tax/TaxRateRepository.java
@@ -0,0 +1,31 @@
+package com.salesmanager.core.business.repositories.tax;
+
+import java.util.List;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+
+import com.salesmanager.core.model.tax.taxrate.TaxRate;
+
+public interface TaxRateRepository extends JpaRepository<TaxRate, Long> {
+
+ @Query("select t from TaxRate t join fetch t.taxClass join fetch t.merchantStore tm join fetch t.country left join fetch t.zone left join fetch t.descriptions left join t.parent where tm.id=?1 order by t.taxPriority asc")
+ List<TaxRate> findByStore(Integer id);
+
+ @Query("select t from TaxRate t join fetch t.taxClass join fetch t.merchantStore tm join fetch t.country left join fetch t.zone left join fetch t.descriptions td left join t.parent where tm.id=?1 and td.language.id=?2 order by t.taxPriority asc")
+ List<TaxRate> findByStoreAndLanguage(Integer id, Integer languageId);
+
+ @Query("select t from TaxRate t join fetch t.taxClass join fetch t.merchantStore tm join fetch t.country left join fetch t.zone left join fetch t.descriptions td left join t.parent where tm.id=?1 and t.code=?2")
+ TaxRate findByStoreAndCode(Integer id, String code);
+
+ @Query("select t from TaxRate t join fetch t.taxClass join fetch t.merchantStore tm join fetch t.country left join fetch t.zone left join fetch t.descriptions td left join t.parent where t.id=?1")
+ TaxRate findOne(Long id);
+
+ @Query("select t from TaxRate t join fetch t.taxClass join fetch t.merchantStore tm join fetch t.country tc left join fetch t.zone tz left join fetch t.descriptions td left join t.parent where tm.id=?1 AND (tz.id=?2 OR tz IS NULL) and tc.id=?3 and td.language.id=?4 order by t.taxPriority asc")
+ List<TaxRate> findByMerchantAndZoneAndCountryAndLanguage(Integer id, Long zoneId, Integer countryId, Integer languageId);
+
+ @Query("select t from TaxRate t join fetch t.taxClass join fetch t.merchantStore tm join fetch t.country tc left join fetch t.zone tz left join fetch t.descriptions td left join t.parent where tm.id=?1 AND t.stateProvince=?2 and tc.id=?3 and td.language.id=?4 order by t.taxPriority asc")
+ List<TaxRate> findByMerchantAndProvinceAndCountryAndLanguage(Integer id, String province, Integer countryId, Integer languageId);
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/repositories/user/GroupRepository.java b/sm-core/src/main/java/com/salesmanager/core/business/repositories/user/GroupRepository.java
new file mode 100644
index 0000000..be9e68b
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/repositories/user/GroupRepository.java
@@ -0,0 +1,28 @@
+package com.salesmanager.core.business.repositories.user;
+
+import java.util.List;
+import java.util.Set;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+
+import com.salesmanager.core.model.user.Group;
+import com.salesmanager.core.model.user.GroupType;
+
+public interface GroupRepository extends JpaRepository<Group, Integer> {
+
+
+ Group findById(Long id);
+
+ @Query("select g from Group as g join fetch g.permissions perms order by g.id")
+ List<Group> findAll();
+
+ @Query("select g from Group as g join fetch g.permissions perms where perms.id in (?1) ")
+ List<Group> findByPermissions(Set<Integer> permissionIds);
+
+ @Query("select g from Group as g join fetch g.permissions perms where g.id in (?1) ")
+ List<Group> findByIds(Set<Integer> groupIds);
+
+ @Query("select g from Group as g join fetch g.permissions perms where g.groupType = ?1")
+ List<Group> findByType(GroupType type);
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/repositories/user/PermissionRepository.java b/sm-core/src/main/java/com/salesmanager/core/business/repositories/user/PermissionRepository.java
new file mode 100644
index 0000000..c929868
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/repositories/user/PermissionRepository.java
@@ -0,0 +1,22 @@
+package com.salesmanager.core.business.repositories.user;
+
+import java.util.List;
+import java.util.Set;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+
+import com.salesmanager.core.model.user.Permission;
+
+public interface PermissionRepository extends JpaRepository<Permission, Integer>, PermissionRepositoryCustom {
+
+
+ @Query("select p from Permission as p where p.id = ?1")
+ Permission findById(Integer id);
+
+ @Query("select p from Permission as p order by p.id")
+ List<Permission> findAll();
+
+ @Query("select distinct p from Permission as p join fetch p.groups groups where groups.id in (?1)")
+ List<Permission> findByGroups(Set<Integer> groupIds);
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/repositories/user/PermissionRepositoryCustom.java b/sm-core/src/main/java/com/salesmanager/core/business/repositories/user/PermissionRepositoryCustom.java
new file mode 100644
index 0000000..bcce79f
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/repositories/user/PermissionRepositoryCustom.java
@@ -0,0 +1,14 @@
+package com.salesmanager.core.business.repositories.user;
+
+import com.salesmanager.core.model.user.PermissionCriteria;
+import com.salesmanager.core.model.user.PermissionList;
+
+
+
+
+public interface PermissionRepositoryCustom {
+
+ PermissionList listByCriteria(PermissionCriteria criteria);
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/repositories/user/PermissionRepositoryImpl.java b/sm-core/src/main/java/com/salesmanager/core/business/repositories/user/PermissionRepositoryImpl.java
new file mode 100644
index 0000000..a6a5c7c
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/repositories/user/PermissionRepositoryImpl.java
@@ -0,0 +1,94 @@
+package com.salesmanager.core.business.repositories.user;
+
+import java.util.List;
+
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+
+
+import javax.persistence.Query;
+
+import com.salesmanager.core.model.user.Permission;
+import com.salesmanager.core.model.user.PermissionCriteria;
+import com.salesmanager.core.model.user.PermissionList;
+
+
+public class PermissionRepositoryImpl implements PermissionRepositoryCustom {
+
+
+ @PersistenceContext
+ private EntityManager em;
+
+ @Override
+ public PermissionList listByCriteria(PermissionCriteria criteria) {
+ PermissionList permissionList = new PermissionList();
+
+
+ StringBuilder countBuilderSelect = new StringBuilder();
+ countBuilderSelect.append("select count(p) from Permission as p");
+
+ StringBuilder countBuilderWhere = new StringBuilder();
+
+
+ if(criteria.getGroupIds()!=null && criteria.getGroupIds().size()>0) {
+ countBuilderSelect.append(" INNER JOIN p.groups grous");
+ countBuilderWhere.append(" where grous.id in (:cid)");
+ }
+
+
+ Query countQ = em.createQuery(
+ countBuilderSelect.toString() + countBuilderWhere.toString());
+
+ if(criteria.getGroupIds()!=null && criteria.getGroupIds().size()>0) {
+ countQ.setParameter("cid", criteria.getGroupIds());
+ }
+
+
+ Number count = (Number) countQ.getSingleResult ();
+
+ permissionList.setTotalCount(count.intValue());
+
+ if(count.intValue()==0)
+ return permissionList;
+
+
+ StringBuilder qs = new StringBuilder();
+ qs.append("select p from Permission as p ");
+ qs.append("join fetch p.groups grous ");
+
+ if(criteria.getGroupIds()!=null && criteria.getGroupIds().size()>0) {
+ qs.append(" where grous.id in (:cid)");
+ }
+
+ qs.append(" order by p.id asc ");
+
+ String hql = qs.toString();
+ Query q = em.createQuery(hql);
+
+
+ if(criteria.getGroupIds()!=null && criteria.getGroupIds().size()>0) {
+ q.setParameter("cid", criteria.getGroupIds());
+ }
+
+ if(criteria.getMaxCount()>0) {
+
+
+ q.setFirstResult(criteria.getStartIndex());
+ if(criteria.getMaxCount()<count.intValue()) {
+ q.setMaxResults(criteria.getMaxCount());
+ permissionList.setTotalCount(criteria.getMaxCount());
+ }
+ else {
+ q.setMaxResults(count.intValue());
+ permissionList.setTotalCount(count.intValue());
+ }
+ }
+
+ @SuppressWarnings("unchecked")
+ List<Permission> permissions = q.getResultList();
+ permissionList.setPermissions(permissions);
+
+ return permissionList;
+ }
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/repositories/user/UserRepository.java b/sm-core/src/main/java/com/salesmanager/core/business/repositories/user/UserRepository.java
new file mode 100644
index 0000000..a77201b
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/repositories/user/UserRepository.java
@@ -0,0 +1,23 @@
+package com.salesmanager.core.business.repositories.user;
+
+import java.util.List;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+
+import com.salesmanager.core.model.user.User;
+
+public interface UserRepository extends JpaRepository<User, Long> {
+
+ @Query("select u from User as u inner join fetch u.groups ug inner join fetch u.merchantStore um inner join fetch u.defaultLanguage ul where u.adminName = ?1")
+ User findByUserName(String userName);
+
+ @Query("select u from User as u inner join fetch u.groups ug inner join fetch u.merchantStore um inner join fetch u.defaultLanguage ul where u.id = ?1")
+ User findById(Long id);
+
+ @Query("select u from User as u inner join fetch u.groups ug inner join fetch u.merchantStore um inner join fetch u.defaultLanguage ul order by u.id")
+ List<User> findAll();
+
+ @Query("select distinct u from User as u inner join fetch u.groups ug inner join fetch u.merchantStore um inner join fetch u.defaultLanguage ul where um.id = ?1 order by u.id")
+ List<User> findByStore(Integer storeId);
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/catalog/product/availability/ProductAvailabilityService.java b/sm-core/src/main/java/com/salesmanager/core/business/services/catalog/product/availability/ProductAvailabilityService.java
new file mode 100644
index 0000000..8e3b814
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/catalog/product/availability/ProductAvailabilityService.java
@@ -0,0 +1,12 @@
+package com.salesmanager.core.business.services.catalog.product.availability;
+
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.business.services.common.generic.SalesManagerEntityService;
+import com.salesmanager.core.model.catalog.product.availability.ProductAvailability;
+
+public interface ProductAvailabilityService extends
+ SalesManagerEntityService<Long, ProductAvailability> {
+
+ void saveOrUpdate(ProductAvailability availability) throws ServiceException;
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/catalog/product/price/ProductPriceService.java b/sm-core/src/main/java/com/salesmanager/core/business/services/catalog/product/price/ProductPriceService.java
new file mode 100644
index 0000000..248dbe8
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/catalog/product/price/ProductPriceService.java
@@ -0,0 +1,15 @@
+package com.salesmanager.core.business.services.catalog.product.price;
+
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.business.services.common.generic.SalesManagerEntityService;
+import com.salesmanager.core.model.catalog.product.price.ProductPrice;
+import com.salesmanager.core.model.catalog.product.price.ProductPriceDescription;
+
+public interface ProductPriceService extends SalesManagerEntityService<Long, ProductPrice> {
+
+ void addDescription(ProductPrice price, ProductPriceDescription description) throws ServiceException;
+
+ void saveOrUpdate(ProductPrice price) throws ServiceException;
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/catalog/product/review/ProductReviewService.java b/sm-core/src/main/java/com/salesmanager/core/business/services/catalog/product/review/ProductReviewService.java
new file mode 100644
index 0000000..2a6aba5
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/catalog/product/review/ProductReviewService.java
@@ -0,0 +1,27 @@
+package com.salesmanager.core.business.services.catalog.product.review;
+
+import java.util.List;
+
+import com.salesmanager.core.business.services.common.generic.SalesManagerEntityService;
+import com.salesmanager.core.model.catalog.product.Product;
+import com.salesmanager.core.model.catalog.product.review.ProductReview;
+import com.salesmanager.core.model.customer.Customer;
+import com.salesmanager.core.model.reference.language.Language;
+
+public interface ProductReviewService extends
+ SalesManagerEntityService<Long, ProductReview> {
+
+
+ List<ProductReview> getByCustomer(Customer customer);
+ List<ProductReview> getByProduct(Product product);
+ List<ProductReview> getByProduct(Product product, Language language);
+ ProductReview getByProductAndCustomer(Long productId, Long customerId);
+ /**
+ * @param product
+ * @return
+ */
+ List<ProductReview> getByProductNoCustomers(Product product);
+
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/catalog/product/type/ProductTypeService.java b/sm-core/src/main/java/com/salesmanager/core/business/services/catalog/product/type/ProductTypeService.java
new file mode 100644
index 0000000..1b87861
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/catalog/product/type/ProductTypeService.java
@@ -0,0 +1,11 @@
+package com.salesmanager.core.business.services.catalog.product.type;
+
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.business.services.common.generic.SalesManagerEntityService;
+import com.salesmanager.core.model.catalog.product.type.ProductType;
+
+public interface ProductTypeService extends SalesManagerEntityService<Long, ProductType> {
+
+ ProductType getProductType(String productTypeCode) throws ServiceException;
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/catalog/product/type/ProductTypeServiceImpl.java b/sm-core/src/main/java/com/salesmanager/core/business/services/catalog/product/type/ProductTypeServiceImpl.java
new file mode 100644
index 0000000..5a33e1e
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/catalog/product/type/ProductTypeServiceImpl.java
@@ -0,0 +1,34 @@
+package com.salesmanager.core.business.services.catalog.product.type;
+
+import javax.inject.Inject;
+
+import org.springframework.stereotype.Service;
+
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.business.repositories.catalog.product.type.ProductTypeRepository;
+import com.salesmanager.core.business.services.common.generic.SalesManagerEntityServiceImpl;
+import com.salesmanager.core.model.catalog.product.type.ProductType;
+
+@Service("productTypeService")
+public class ProductTypeServiceImpl extends SalesManagerEntityServiceImpl<Long, ProductType>
+ implements ProductTypeService {
+
+ private ProductTypeRepository productTypeRepository;
+
+ @Inject
+ public ProductTypeServiceImpl(
+ ProductTypeRepository productTypeRepository) {
+ super(productTypeRepository);
+ this.productTypeRepository = productTypeRepository;
+ }
+
+ @Override
+ public ProductType getProductType(String productTypeCode) throws ServiceException {
+
+ return productTypeRepository.findByCode(productTypeCode);
+
+ }
+
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/common/generic/SalesManagerEntityService.java b/sm-core/src/main/java/com/salesmanager/core/business/services/common/generic/SalesManagerEntityService.java
new file mode 100644
index 0000000..1255318
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/common/generic/SalesManagerEntityService.java
@@ -0,0 +1,76 @@
+package com.salesmanager.core.business.services.common.generic;
+
+import java.io.Serializable;
+import java.util.List;
+
+import com.salesmanager.core.business.exception.ServiceException;
+
+
+/**
+ * <p>Service racine pour la gestion des entités.</p>
+ *
+ * @param <T> type d'entité
+ */
+public interface SalesManagerEntityService<K extends Serializable & Comparable<K>, E extends com.salesmanager.core.model.generic.SalesManagerEntity<K, ?>> extends TransactionalAspectAwareService{
+
+ /**
+ * Crée l'entité dans la base de données. Mis à part dans les tests pour faire des sauvegardes simples, utiliser
+ * create() car il est possible qu'il y ait des listeners sur la création d'une entité.
+ *
+ * @param entity entité
+ */
+ void save(E entity) throws ServiceException;
+
+ /**
+ * Met à jour l'entité dans la base de données.
+ *
+ * @param entity entité
+ */
+ void update(E entity) throws ServiceException;
+
+ /**
+ * Crée l'entité dans la base de données.
+ *
+ * @param entity entité
+ */
+ void create(E entity) throws ServiceException;
+
+ /**
+ * Supprime l'entité de la base de données
+ *
+ * @param entity entité
+ */
+ void delete(E entity) throws ServiceException;
+
+
+ /**
+ * Retourne une entité à partir de son id.
+ *
+ * @param id identifiant
+ * @return entité
+ */
+ E getById(K id);
+
+ /**
+ * Renvoie la liste de l'ensemble des entités de ce type.
+ *
+ * @return liste d'entités
+ */
+ List<E> list();
+
+
+ /**
+ * Compte le nombre d'entités de ce type présentes dans la base.
+ *
+ * @return nombre d'entités
+ */
+ Long count();
+
+ /**
+ * Flushe la session.
+ */
+ void flush();
+
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/common/generic/SalesManagerEntityServiceImpl.java b/sm-core/src/main/java/com/salesmanager/core/business/services/common/generic/SalesManagerEntityServiceImpl.java
new file mode 100644
index 0000000..9c075ab
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/common/generic/SalesManagerEntityServiceImpl.java
@@ -0,0 +1,79 @@
+package com.salesmanager.core.business.services.common.generic;
+
+import java.io.Serializable;
+import java.lang.reflect.ParameterizedType;
+import java.util.List;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.model.generic.SalesManagerEntity;
+
+/**
+ * @param <T> entity type
+ */
+public abstract class SalesManagerEntityServiceImpl<K extends Serializable & Comparable<K>, E extends SalesManagerEntity<K, ?>>
+ implements SalesManagerEntityService<K, E> {
+
+ /**
+ * Classe de l'entité, déterminé à partir des paramètres generics.
+ */
+ private Class<E> objectClass;
+
+
+ private JpaRepository<E, K> repository;
+
+ @SuppressWarnings("unchecked")
+ public SalesManagerEntityServiceImpl(JpaRepository<E, K> repository) {
+ ParameterizedType genericSuperclass = (ParameterizedType) getClass().getGenericSuperclass();
+ this.objectClass = (Class<E>) genericSuperclass.getActualTypeArguments()[1];
+ this.repository = repository;
+ }
+
+ protected final Class<E> getObjectClass() {
+ return objectClass;
+ }
+
+
+ public E getById(K id) {
+ return repository.findOne(id);
+ }
+
+
+ public void save(E entity) throws ServiceException {
+ repository.saveAndFlush(entity);
+ }
+
+
+ public void create(E entity) throws ServiceException {
+ save(entity);
+ }
+
+
+
+ public final void update(E entity) throws ServiceException {
+ save(entity);
+ }
+
+
+ public void delete(E entity) throws ServiceException {
+ repository.delete(entity);
+ }
+
+
+ public void flush() {
+ repository.flush();
+ }
+
+
+
+ public List<E> list() {
+ return repository.findAll();
+ }
+
+
+ public Long count() {
+ return repository.count();
+ }
+
+}
\ No newline at end of file
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/customer/attribute/CustomerAttributeService.java b/sm-core/src/main/java/com/salesmanager/core/business/services/customer/attribute/CustomerAttributeService.java
new file mode 100644
index 0000000..baa4725
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/customer/attribute/CustomerAttributeService.java
@@ -0,0 +1,31 @@
+package com.salesmanager.core.business.services.customer.attribute;
+
+import java.util.List;
+
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.business.services.common.generic.SalesManagerEntityService;
+import com.salesmanager.core.model.customer.Customer;
+import com.salesmanager.core.model.customer.attribute.CustomerAttribute;
+import com.salesmanager.core.model.merchant.MerchantStore;
+
+
+
+public interface CustomerAttributeService extends
+ SalesManagerEntityService<Long, CustomerAttribute> {
+
+ void saveOrUpdate(CustomerAttribute customerAttribute)
+ throws ServiceException;
+
+ CustomerAttribute getByCustomerOptionId(MerchantStore store,
+ Long customerId, Long id);
+
+ List<CustomerAttribute> getByCustomerOptionValueId(MerchantStore store,
+ Long id);
+
+ List<CustomerAttribute> getByOptionId(MerchantStore store, Long id);
+
+
+ List<CustomerAttribute> getByCustomer(MerchantStore store, Customer customer);
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/customer/attribute/CustomerAttributeServiceImpl.java b/sm-core/src/main/java/com/salesmanager/core/business/services/customer/attribute/CustomerAttributeServiceImpl.java
new file mode 100644
index 0000000..8b8a89b
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/customer/attribute/CustomerAttributeServiceImpl.java
@@ -0,0 +1,79 @@
+package com.salesmanager.core.business.services.customer.attribute;
+
+import java.util.List;
+
+import javax.inject.Inject;
+
+import org.springframework.stereotype.Service;
+
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.business.repositories.customer.attribute.CustomerAttributeRepository;
+import com.salesmanager.core.business.services.common.generic.SalesManagerEntityServiceImpl;
+import com.salesmanager.core.model.customer.Customer;
+import com.salesmanager.core.model.customer.attribute.CustomerAttribute;
+import com.salesmanager.core.model.merchant.MerchantStore;
+
+
+
+@Service("customerAttributeService")
+public class CustomerAttributeServiceImpl extends
+ SalesManagerEntityServiceImpl<Long, CustomerAttribute> implements CustomerAttributeService {
+
+ private CustomerAttributeRepository customerAttributeRepository;
+
+ @Inject
+ public CustomerAttributeServiceImpl(CustomerAttributeRepository customerAttributeRepository) {
+ super(customerAttributeRepository);
+ this.customerAttributeRepository = customerAttributeRepository;
+ }
+
+
+
+
+
+ @Override
+ public void saveOrUpdate(CustomerAttribute customerAttribute)
+ throws ServiceException {
+
+ customerAttributeRepository.save(customerAttribute);
+
+
+ }
+
+ @Override
+ public void delete(CustomerAttribute attribute) throws ServiceException {
+
+ //override method, this allows the error that we try to remove a detached instance
+ attribute = this.getById(attribute.getId());
+ super.delete(attribute);
+
+ }
+
+
+
+ @Override
+ public CustomerAttribute getByCustomerOptionId(MerchantStore store, Long customerId, Long id) {
+ return customerAttributeRepository.findByOptionId(store.getId(), customerId, id);
+ }
+
+
+
+ @Override
+ public List<CustomerAttribute> getByCustomer(MerchantStore store, Customer customer) {
+ return customerAttributeRepository.findByCustomerId(store.getId(), customer.getId());
+ }
+
+
+ @Override
+ public List<CustomerAttribute> getByCustomerOptionValueId(MerchantStore store,
+ Long id) {
+ return customerAttributeRepository.findByOptionValueId(store.getId(), id);
+ }
+
+ @Override
+ public List<CustomerAttribute> getByOptionId(MerchantStore store,
+ Long id) {
+ return customerAttributeRepository.findByOptionId(store.getId(), id);
+ }
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/customer/attribute/CustomerOptionService.java b/sm-core/src/main/java/com/salesmanager/core/business/services/customer/attribute/CustomerOptionService.java
new file mode 100644
index 0000000..aa8969d
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/customer/attribute/CustomerOptionService.java
@@ -0,0 +1,28 @@
+package com.salesmanager.core.business.services.customer.attribute;
+
+import java.util.List;
+
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.business.services.common.generic.SalesManagerEntityService;
+import com.salesmanager.core.model.customer.attribute.CustomerOption;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.reference.language.Language;
+
+
+public interface CustomerOptionService extends SalesManagerEntityService<Long, CustomerOption> {
+
+ List<CustomerOption> listByStore(MerchantStore store, Language language)
+ throws ServiceException;
+
+
+
+ void saveOrUpdate(CustomerOption entity) throws ServiceException;
+
+
+
+ CustomerOption getByCode(MerchantStore store, String optionCode);
+
+
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/customer/attribute/CustomerOptionServiceImpl.java b/sm-core/src/main/java/com/salesmanager/core/business/services/customer/attribute/CustomerOptionServiceImpl.java
new file mode 100644
index 0000000..0205b98
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/customer/attribute/CustomerOptionServiceImpl.java
@@ -0,0 +1,97 @@
+package com.salesmanager.core.business.services.customer.attribute;
+
+import java.util.List;
+
+import javax.inject.Inject;
+
+import org.springframework.stereotype.Service;
+
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.business.repositories.customer.attribute.CustomerOptionRepository;
+import com.salesmanager.core.business.services.common.generic.SalesManagerEntityServiceImpl;
+import com.salesmanager.core.model.customer.attribute.CustomerAttribute;
+import com.salesmanager.core.model.customer.attribute.CustomerOption;
+import com.salesmanager.core.model.customer.attribute.CustomerOptionSet;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.reference.language.Language;
+
+
+
+@Service("customerOptionService")
+public class CustomerOptionServiceImpl extends
+ SalesManagerEntityServiceImpl<Long, CustomerOption> implements CustomerOptionService {
+
+
+ private CustomerOptionRepository customerOptionRepository;
+
+ @Inject
+ private CustomerAttributeService customerAttributeService;
+
+ @Inject
+ private CustomerOptionSetService customerOptionSetService;
+
+
+ @Inject
+ public CustomerOptionServiceImpl(
+ CustomerOptionRepository customerOptionRepository) {
+ super(customerOptionRepository);
+ this.customerOptionRepository = customerOptionRepository;
+ }
+
+ @Override
+ public List<CustomerOption> listByStore(MerchantStore store, Language language) throws ServiceException {
+
+ return customerOptionRepository.findByStore(store.getId(), language.getId());
+
+ }
+
+
+ @Override
+ public void saveOrUpdate(CustomerOption entity) throws ServiceException {
+
+
+ //save or update (persist and attach entities
+ if(entity.getId()!=null && entity.getId()>0) {
+ super.update(entity);
+ } else {
+ super.save(entity);
+ }
+
+ }
+
+
+ @Override
+ public void delete(CustomerOption customerOption) throws ServiceException {
+
+ //remove all attributes having this option
+ List<CustomerAttribute> attributes = customerAttributeService.getByOptionId(customerOption.getMerchantStore(), customerOption.getId());
+
+ for(CustomerAttribute attribute : attributes) {
+ customerAttributeService.delete(attribute);
+ }
+
+ CustomerOption option = this.getById(customerOption.getId());
+
+ List<CustomerOptionSet> optionSets = customerOptionSetService.listByOption(customerOption, customerOption.getMerchantStore());
+
+ for(CustomerOptionSet optionSet : optionSets) {
+ customerOptionSetService.delete(optionSet);
+ }
+
+ //remove option
+ super.delete(option);
+
+ }
+
+ @Override
+ public CustomerOption getByCode(MerchantStore store, String optionCode) {
+ return customerOptionRepository.findByCode(store.getId(), optionCode);
+ }
+
+
+
+
+
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/customer/attribute/CustomerOptionSetService.java b/sm-core/src/main/java/com/salesmanager/core/business/services/customer/attribute/CustomerOptionSetService.java
new file mode 100644
index 0000000..df04cc9
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/customer/attribute/CustomerOptionSetService.java
@@ -0,0 +1,36 @@
+package com.salesmanager.core.business.services.customer.attribute;
+
+import java.util.List;
+
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.business.services.common.generic.SalesManagerEntityService;
+import com.salesmanager.core.model.customer.attribute.CustomerOption;
+import com.salesmanager.core.model.customer.attribute.CustomerOptionSet;
+import com.salesmanager.core.model.customer.attribute.CustomerOptionValue;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.reference.language.Language;
+
+
+public interface CustomerOptionSetService extends SalesManagerEntityService<Long, CustomerOptionSet> {
+
+
+
+ void saveOrUpdate(CustomerOptionSet entity) throws ServiceException;
+
+
+
+
+ List<CustomerOptionSet> listByStore(MerchantStore store,
+ Language language) throws ServiceException;
+
+
+
+
+ List<CustomerOptionSet> listByOption(CustomerOption option,
+ MerchantStore store) throws ServiceException;
+
+
+ List<CustomerOptionSet> listByOptionValue(CustomerOptionValue optionValue,
+ MerchantStore store) throws ServiceException;
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/customer/attribute/CustomerOptionSetServiceImpl.java b/sm-core/src/main/java/com/salesmanager/core/business/services/customer/attribute/CustomerOptionSetServiceImpl.java
new file mode 100644
index 0000000..a7c6522
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/customer/attribute/CustomerOptionSetServiceImpl.java
@@ -0,0 +1,87 @@
+package com.salesmanager.core.business.services.customer.attribute;
+
+import java.util.List;
+
+import javax.inject.Inject;
+
+import org.apache.commons.lang3.Validate;
+import org.springframework.stereotype.Service;
+
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.business.repositories.customer.attribute.CustomerOptionSetRepository;
+import com.salesmanager.core.business.services.common.generic.SalesManagerEntityServiceImpl;
+import com.salesmanager.core.model.customer.attribute.CustomerOption;
+import com.salesmanager.core.model.customer.attribute.CustomerOptionSet;
+import com.salesmanager.core.model.customer.attribute.CustomerOptionValue;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.reference.language.Language;
+
+
+
+@Service("customerOptionSetService")
+public class CustomerOptionSetServiceImpl extends
+ SalesManagerEntityServiceImpl<Long, CustomerOptionSet> implements CustomerOptionSetService {
+
+
+ @Inject
+ private CustomerOptionSetRepository customerOptionSetRepository;
+
+
+ @Inject
+ public CustomerOptionSetServiceImpl(
+ CustomerOptionSetRepository customerOptionSetRepository) {
+ super(customerOptionSetRepository);
+ this.customerOptionSetRepository = customerOptionSetRepository;
+ }
+
+
+ @Override
+ public List<CustomerOptionSet> listByOption(CustomerOption option, MerchantStore store) throws ServiceException {
+ Validate.notNull(store,"merchant store cannot be null");
+ Validate.notNull(option,"option cannot be null");
+
+ return customerOptionSetRepository.findByOptionId(store.getId(), option.getId());
+ }
+
+ @Override
+ public void delete(CustomerOptionSet customerOptionSet) throws ServiceException {
+ customerOptionSet = customerOptionSetRepository.findById(customerOptionSet.getId());
+ super.delete(customerOptionSet);
+ }
+
+ @Override
+ public List<CustomerOptionSet> listByStore(MerchantStore store, Language language) throws ServiceException {
+ Validate.notNull(store,"merchant store cannot be null");
+
+
+ return customerOptionSetRepository.findByStore(store.getId(),language.getId());
+ }
+
+
+ @Override
+ public void saveOrUpdate(CustomerOptionSet entity) throws ServiceException {
+ Validate.notNull(entity,"customer option set cannot be null");
+
+ if(entity.getId()>0) {
+ super.update(entity);
+ } else {
+ super.create(entity);
+ }
+
+ }
+
+
+ @Override
+ public List<CustomerOptionSet> listByOptionValue(
+ CustomerOptionValue optionValue, MerchantStore store)
+ throws ServiceException {
+ return customerOptionSetRepository.findByOptionValueId(store.getId(), optionValue.getId());
+ }
+
+
+
+
+
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/customer/attribute/CustomerOptionValueService.java b/sm-core/src/main/java/com/salesmanager/core/business/services/customer/attribute/CustomerOptionValueService.java
new file mode 100644
index 0000000..12b89b0
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/customer/attribute/CustomerOptionValueService.java
@@ -0,0 +1,25 @@
+package com.salesmanager.core.business.services.customer.attribute;
+
+import java.util.List;
+
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.business.services.common.generic.SalesManagerEntityService;
+import com.salesmanager.core.model.customer.attribute.CustomerOptionValue;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.reference.language.Language;
+
+
+public interface CustomerOptionValueService extends SalesManagerEntityService<Long, CustomerOptionValue> {
+
+
+
+ List<CustomerOptionValue> listByStore(MerchantStore store, Language language)
+ throws ServiceException;
+
+ void saveOrUpdate(CustomerOptionValue entity) throws ServiceException;
+
+ CustomerOptionValue getByCode(MerchantStore store, String optionValueCode);
+
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/customer/attribute/CustomerOptionValueServiceImpl.java b/sm-core/src/main/java/com/salesmanager/core/business/services/customer/attribute/CustomerOptionValueServiceImpl.java
new file mode 100644
index 0000000..14b0baf
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/customer/attribute/CustomerOptionValueServiceImpl.java
@@ -0,0 +1,96 @@
+package com.salesmanager.core.business.services.customer.attribute;
+
+import java.util.List;
+
+import javax.inject.Inject;
+
+import org.springframework.stereotype.Service;
+
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.business.repositories.customer.attribute.CustomerOptionValueRepository;
+import com.salesmanager.core.business.services.common.generic.SalesManagerEntityServiceImpl;
+import com.salesmanager.core.model.customer.attribute.CustomerAttribute;
+import com.salesmanager.core.model.customer.attribute.CustomerOptionSet;
+import com.salesmanager.core.model.customer.attribute.CustomerOptionValue;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.reference.language.Language;
+
+
+@Service("customerOptionValueService")
+public class CustomerOptionValueServiceImpl extends
+ SalesManagerEntityServiceImpl<Long, CustomerOptionValue> implements
+ CustomerOptionValueService {
+
+ @Inject
+ private CustomerAttributeService customerAttributeService;
+
+ private CustomerOptionValueRepository customerOptionValueRepository;
+
+ @Inject
+ private CustomerOptionSetService customerOptionSetService;
+
+ @Inject
+ public CustomerOptionValueServiceImpl(
+ CustomerOptionValueRepository customerOptionValueRepository) {
+ super(customerOptionValueRepository);
+ this.customerOptionValueRepository = customerOptionValueRepository;
+ }
+
+
+ @Override
+ public List<CustomerOptionValue> listByStore(MerchantStore store, Language language) throws ServiceException {
+
+ return customerOptionValueRepository.findByStore(store.getId(), language.getId());
+ }
+
+
+
+
+ @Override
+ public void saveOrUpdate(CustomerOptionValue entity) throws ServiceException {
+
+
+ //save or update (persist and attach entities
+ if(entity.getId()!=null && entity.getId()>0) {
+
+ super.update(entity);
+
+ } else {
+
+ super.save(entity);
+
+ }
+
+ }
+
+
+ public void delete(CustomerOptionValue customerOptionValue) throws ServiceException {
+
+ //remove all attributes having this option
+ List<CustomerAttribute> attributes = customerAttributeService.getByCustomerOptionValueId(customerOptionValue.getMerchantStore(), customerOptionValue.getId());
+
+ for(CustomerAttribute attribute : attributes) {
+ customerAttributeService.delete(attribute);
+ }
+
+ List<CustomerOptionSet> optionSets = customerOptionSetService.listByOptionValue(customerOptionValue, customerOptionValue.getMerchantStore());
+
+ for(CustomerOptionSet optionSet : optionSets) {
+ customerOptionSetService.delete(optionSet);
+ }
+
+ CustomerOptionValue option = super.getById(customerOptionValue.getId());
+
+ //remove option
+ super.delete(option);
+
+ }
+
+ @Override
+ public CustomerOptionValue getByCode(MerchantStore store, String optionValueCode) {
+ return customerOptionValueRepository.findByCode(store.getId(), optionValueCode);
+ }
+
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/customer/CustomerService.java b/sm-core/src/main/java/com/salesmanager/core/business/services/customer/CustomerService.java
new file mode 100644
index 0000000..e1733de
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/customer/CustomerService.java
@@ -0,0 +1,40 @@
+package com.salesmanager.core.business.services.customer;
+
+
+import java.util.List;
+
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.business.services.common.generic.SalesManagerEntityService;
+import com.salesmanager.core.model.common.Address;
+import com.salesmanager.core.model.customer.Customer;
+import com.salesmanager.core.model.customer.CustomerCriteria;
+import com.salesmanager.core.model.customer.CustomerList;
+import com.salesmanager.core.model.merchant.MerchantStore;
+
+
+
+public interface CustomerService extends SalesManagerEntityService<Long, Customer> {
+
+ public List<Customer> getByName(String firstName);
+
+ List<Customer> listByStore(MerchantStore store);
+
+ Customer getByNick(String nick);
+ void saveOrUpdate(Customer customer) throws ServiceException ;
+
+ CustomerList listByStore(MerchantStore store, CustomerCriteria criteria);
+
+ Customer getByNick(String nick, int storeId);
+
+ /**
+ * Return an {@link com.salesmanager.core.business.common.model.Address} object from the client IP address. Uses underlying GeoLocation module
+ * @param store
+ * @param ipAddress
+ * @return
+ * @throws ServiceException
+ */
+ Address getCustomerAddress(MerchantStore store, String ipAddress)
+ throws ServiceException;
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/merchant/MerchantStoreService.java b/sm-core/src/main/java/com/salesmanager/core/business/services/merchant/MerchantStoreService.java
new file mode 100644
index 0000000..e464095
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/merchant/MerchantStoreService.java
@@ -0,0 +1,16 @@
+package com.salesmanager.core.business.services.merchant;
+
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.business.services.common.generic.SalesManagerEntityService;
+import com.salesmanager.core.model.merchant.MerchantStore;
+
+public interface MerchantStoreService extends SalesManagerEntityService<Integer, MerchantStore>{
+
+
+ MerchantStore getMerchantStore(String merchantStoreCode)
+ throws ServiceException;
+
+ MerchantStore getByCode(String code) throws ServiceException ;
+
+ void saveOrUpdate(MerchantStore store) throws ServiceException;
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/merchant/MerchantStoreServiceImpl.java b/sm-core/src/main/java/com/salesmanager/core/business/services/merchant/MerchantStoreServiceImpl.java
new file mode 100644
index 0000000..07af995
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/merchant/MerchantStoreServiceImpl.java
@@ -0,0 +1,141 @@
+package com.salesmanager.core.business.services.merchant;
+
+import java.util.List;
+
+import javax.inject.Inject;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.business.repositories.merchant.MerchantRepository;
+import com.salesmanager.core.business.services.catalog.product.manufacturer.ManufacturerService;
+import com.salesmanager.core.business.services.catalog.product.type.ProductTypeService;
+import com.salesmanager.core.business.services.common.generic.SalesManagerEntityServiceImpl;
+import com.salesmanager.core.business.services.tax.TaxClassService;
+import com.salesmanager.core.model.catalog.category.Category;
+import com.salesmanager.core.model.catalog.product.manufacturer.Manufacturer;
+import com.salesmanager.core.model.customer.Customer;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.order.Order;
+import com.salesmanager.core.model.system.MerchantConfiguration;
+import com.salesmanager.core.model.tax.taxclass.TaxClass;
+import com.salesmanager.core.model.user.User;
+
+@Service("merchantService")
+public class MerchantStoreServiceImpl extends SalesManagerEntityServiceImpl<Integer, MerchantStore>
+ implements MerchantStoreService {
+
+
+
+ @Inject
+ protected ProductTypeService productTypeService;
+
+ @Inject
+ private TaxClassService taxClassService;
+
+/* @Inject
+ private ContentService contentService;
+
+ @Inject
+ private MerchantConfigurationService merchantConfigurationService;
+
+ @Inject
+ private CategoryService categoryService;
+
+ @Inject
+ private UserService userService;
+
+ @Inject
+ private OrderService orderService;
+
+ @Inject
+ private CustomerService customerService;*/
+
+ @Inject
+ private ManufacturerService manufacturerService;
+
+ private MerchantRepository merchantRepository;
+
+ @Inject
+ public MerchantStoreServiceImpl(MerchantRepository merchantRepository) {
+ super(merchantRepository);
+ this.merchantRepository = merchantRepository;
+ }
+
+
+ public MerchantStore getMerchantStore(String merchantStoreCode) throws ServiceException {
+ return merchantRepository.findByCode(merchantStoreCode);
+ }
+
+ @Override
+ public void saveOrUpdate(MerchantStore store) throws ServiceException {
+
+ super.save(store);
+
+ }
+
+
+ @Override
+ public MerchantStore getByCode(String code) throws ServiceException {
+
+ return merchantRepository.findByCode(code);
+ }
+
+/* @Override
+ public void delete(MerchantStore merchant) throws ServiceException {
+
+ merchant = this.getById(merchant.getId());
+
+
+ //reference
+ List<Manufacturer> manufacturers = manufacturerService.listByStore(merchant);
+ for(Manufacturer manufacturer : manufacturers) {
+ manufacturerService.delete(manufacturer);
+ }
+
+ List<MerchantConfiguration> configurations = merchantConfigurationService.listByStore(merchant);
+ for(MerchantConfiguration configuration : configurations) {
+ merchantConfigurationService.delete(configuration);
+ }
+
+
+ //TODO taxService
+ List<TaxClass> taxClasses = taxClassService.listByStore(merchant);
+ for(TaxClass taxClass : taxClasses) {
+ taxClassService.delete(taxClass);
+ }
+
+ //content
+ contentService.removeFiles(merchant.getCode());
+ //TODO staticContentService.removeImages
+
+ //category / product
+ List<Category> categories = categoryService.listByStore(merchant);
+ for(Category category : categories) {
+ categoryService.delete(category);
+ }
+
+ //users
+ List<User> users = userService.listByStore(merchant);
+ for(User user : users) {
+ userService.delete(user);
+ }
+
+ //customers
+ List<Customer> customers = customerService.listByStore(merchant);
+ for(Customer customer : customers) {
+ customerService.delete(customer);
+ }
+
+ //orders
+ List<Order> orders = orderService.listByStore(merchant);
+ for(Order order : orders) {
+ orderService.delete(order);
+ }
+
+ super.delete(merchant);
+
+ }*/
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/order/orderproduct/OrderProductDownloadService.java b/sm-core/src/main/java/com/salesmanager/core/business/services/order/orderproduct/OrderProductDownloadService.java
new file mode 100644
index 0000000..e0c8341
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/order/orderproduct/OrderProductDownloadService.java
@@ -0,0 +1,18 @@
+package com.salesmanager.core.business.services.order.orderproduct;
+
+import java.util.List;
+
+import com.salesmanager.core.business.services.common.generic.SalesManagerEntityService;
+import com.salesmanager.core.model.order.orderproduct.OrderProductDownload;
+
+
+public interface OrderProductDownloadService extends SalesManagerEntityService<Long, OrderProductDownload> {
+
+ /**
+ * List {@link OrderProductDownload} by order id
+ * @param orderId
+ * @return
+ */
+ List<OrderProductDownload> getByOrderId(Long orderId);
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/order/orderproduct/OrderProductDownloadServiceImpl.java b/sm-core/src/main/java/com/salesmanager/core/business/services/order/orderproduct/OrderProductDownloadServiceImpl.java
new file mode 100644
index 0000000..9dae42e
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/order/orderproduct/OrderProductDownloadServiceImpl.java
@@ -0,0 +1,38 @@
+package com.salesmanager.core.business.services.order.orderproduct;
+
+import java.util.List;
+
+import javax.inject.Inject;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Service;
+
+import com.salesmanager.core.business.repositories.order.orderproduct.OrderProductDownloadRepository;
+import com.salesmanager.core.business.services.common.generic.SalesManagerEntityServiceImpl;
+import com.salesmanager.core.model.order.orderproduct.OrderProductDownload;
+
+
+
+
+@Service("orderProductDownloadService")
+public class OrderProductDownloadServiceImpl extends SalesManagerEntityServiceImpl<Long, OrderProductDownload> implements OrderProductDownloadService {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(OrderProductDownloadServiceImpl.class);
+
+
+ private final OrderProductDownloadRepository orderProductDownloadRepository;
+
+ @Inject
+ public OrderProductDownloadServiceImpl(OrderProductDownloadRepository orderProductDownloadRepository) {
+ super(orderProductDownloadRepository);
+ this.orderProductDownloadRepository = orderProductDownloadRepository;
+ }
+
+ @Override
+ public List<OrderProductDownload> getByOrderId(Long orderId) {
+ return orderProductDownloadRepository.findByOrderId(orderId);
+ }
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/order/OrderService.java b/sm-core/src/main/java/com/salesmanager/core/business/services/order/OrderService.java
new file mode 100644
index 0000000..28671b5
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/order/OrderService.java
@@ -0,0 +1,115 @@
+package com.salesmanager.core.business.services.order;
+
+import java.io.ByteArrayOutputStream;
+import java.util.List;
+
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.business.services.common.generic.SalesManagerEntityService;
+import com.salesmanager.core.model.customer.Customer;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.order.Order;
+import com.salesmanager.core.model.order.OrderCriteria;
+import com.salesmanager.core.model.order.OrderList;
+import com.salesmanager.core.model.order.OrderSummary;
+import com.salesmanager.core.model.order.OrderTotalSummary;
+import com.salesmanager.core.model.order.orderstatus.OrderStatusHistory;
+import com.salesmanager.core.model.payments.Payment;
+import com.salesmanager.core.model.payments.Transaction;
+import com.salesmanager.core.model.reference.language.Language;
+import com.salesmanager.core.model.shoppingcart.ShoppingCart;
+import com.salesmanager.core.model.shoppingcart.ShoppingCartItem;
+
+
+
+public interface OrderService extends SalesManagerEntityService<Long, Order> {
+
+ void addOrderStatusHistory(Order order, OrderStatusHistory history)
+ throws ServiceException;
+
+ /**
+ * Can be used to calculates the final prices of all items contained in checkout page
+ * @param orderSummary
+ * @param customer
+ * @param store
+ * @param language
+ * @return
+ * @throws ServiceException
+ */
+ OrderTotalSummary caculateOrderTotal(OrderSummary orderSummary,
+ Customer customer, MerchantStore store, Language language)
+ throws ServiceException;
+
+ /**
+ * Can be used to calculates the final prices of all items contained in a ShoppingCart
+ * @param orderSummary
+ * @param store
+ * @param language
+ * @return
+ * @throws ServiceException
+ */
+ OrderTotalSummary caculateOrderTotal(OrderSummary orderSummary,
+ MerchantStore store, Language language) throws ServiceException;
+
+
+ /**
+ * Can be used to calculates the final prices of all items contained in checkout page
+ * @param shoppingCart
+ * @param customer
+ * @param store
+ * @param language
+ * @return @return {@link OrderTotalSummary}
+ * @throws ServiceException
+ */
+ OrderTotalSummary calculateShoppingCartTotal(final ShoppingCart shoppingCart,final Customer customer, final MerchantStore store, final Language language) throws ServiceException;
+
+ /**
+ * Can be used to calculates the final prices of all items contained in a ShoppingCart
+ * @param shoppingCart
+ * @param store
+ * @param language
+ * @return {@link OrderTotalSummary}
+ * @throws ServiceException
+ */
+ OrderTotalSummary calculateShoppingCartTotal(final ShoppingCart shoppingCart,final MerchantStore store, final Language language) throws ServiceException;
+
+ ByteArrayOutputStream generateInvoice(MerchantStore store, Order order,
+ Language language) throws ServiceException;
+
+ Order getOrder(Long id);
+
+ //List<Order> listByStore(MerchantStore merchantStore);
+
+
+
+
+ /**
+ * For finding orders. Mainly used in the administration tool
+ * @param store
+ * @param criteria
+ * @return
+ */
+ OrderList listByStore(MerchantStore store, OrderCriteria criteria);
+
+ void saveOrUpdate(Order order) throws ServiceException;
+
+ Order processOrder(Order order, Customer customer,
+ List<ShoppingCartItem> items, OrderTotalSummary summary,
+ Payment payment, MerchantStore store) throws ServiceException;
+
+ Order processOrder(Order order, Customer customer,
+ List<ShoppingCartItem> items, OrderTotalSummary summary,
+ Payment payment, Transaction transaction, MerchantStore store)
+ throws ServiceException;
+
+
+
+
+ /**
+ * Determines if an Order has download files
+ * @param order
+ * @return
+ * @throws ServiceException
+ */
+ boolean hasDownloadFiles(Order order) throws ServiceException;
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/payments/PaymentService.java b/sm-core/src/main/java/com/salesmanager/core/business/services/payments/PaymentService.java
new file mode 100644
index 0000000..9df4e21
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/payments/PaymentService.java
@@ -0,0 +1,103 @@
+package com.salesmanager.core.business.services.payments;
+
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Map;
+
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.model.customer.Customer;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.order.Order;
+import com.salesmanager.core.model.payments.CreditCardType;
+import com.salesmanager.core.model.payments.Payment;
+import com.salesmanager.core.model.payments.PaymentMethod;
+import com.salesmanager.core.model.payments.Transaction;
+import com.salesmanager.core.model.shoppingcart.ShoppingCartItem;
+import com.salesmanager.core.model.system.IntegrationConfiguration;
+import com.salesmanager.core.model.system.IntegrationModule;
+import com.salesmanager.core.modules.integration.payment.model.PaymentModule;
+
+public interface PaymentService {
+
+
+
+ public List<IntegrationModule> getPaymentMethods(MerchantStore store)
+ throws ServiceException;
+
+ Map<String, IntegrationConfiguration> getPaymentModulesConfigured(
+ MerchantStore store) throws ServiceException;
+
+ Transaction processPayment(Customer customer, MerchantStore store, Payment payment, List<ShoppingCartItem> items, Order order) throws ServiceException;
+ Transaction processRefund(Order order, Customer customer, MerchantStore store, BigDecimal amount) throws ServiceException;
+
+ /**
+ * Get a specific Payment module by payment type CREDITCART, MONEYORDER ...
+ * @param store
+ * @param type (payment type)
+ * @return IntegrationModule
+ * @throws ServiceException
+ */
+ IntegrationModule getPaymentMethodByType(MerchantStore store, String type)
+ throws ServiceException;
+
+ /**
+ * Get a specific Payment module by payment code (defined in integrationmoduel.json) paypal, authorizenet ..
+ * @param store
+ * @param name
+ * @return IntegrationModule
+ * @throws ServiceException
+ */
+ IntegrationModule getPaymentMethodByCode(MerchantStore store, String name)
+ throws ServiceException;
+
+ /**
+ * Saves a payment module configuration
+ * @param configuration
+ * @param store
+ * @throws ServiceException
+ */
+ void savePaymentModuleConfiguration(IntegrationConfiguration configuration,
+ MerchantStore store) throws ServiceException;
+
+ /**
+ * Validates if the credit card input information are correct
+ * @param number
+ * @param type
+ * @param month
+ * @param date
+ * @throws ServiceException
+ */
+ void validateCreditCard(String number, CreditCardType creditCard, String month, String date)
+ throws ServiceException;
+
+ /**
+ * Get the integration configuration
+ * for a specific payment module
+ * @param moduleCode
+ * @param store
+ * @return IntegrationConfiguration
+ * @throws ServiceException
+ */
+ IntegrationConfiguration getPaymentConfiguration(String moduleCode,
+ MerchantStore store) throws ServiceException;
+
+ void removePaymentModuleConfiguration(String moduleCode, MerchantStore store)
+ throws ServiceException;
+
+ Transaction processCapturePayment(Order order, Customer customer,
+ MerchantStore store)
+ throws ServiceException;
+
+ List<PaymentMethod> getAcceptedPaymentMethods(MerchantStore store)
+ throws ServiceException;
+
+ /**
+ * Returns a PaymentModule based on the payment code
+ * @param paymentModuleCode
+ * @return PaymentModule
+ * @throws ServiceException
+ */
+ PaymentModule getPaymentModule(String paymentModuleCode)
+ throws ServiceException;
+
+}
\ No newline at end of file
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/payments/TransactionService.java b/sm-core/src/main/java/com/salesmanager/core/business/services/payments/TransactionService.java
new file mode 100644
index 0000000..232d748
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/payments/TransactionService.java
@@ -0,0 +1,29 @@
+package com.salesmanager.core.business.services.payments;
+
+import java.util.List;
+
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.business.services.common.generic.SalesManagerEntityService;
+import com.salesmanager.core.model.order.Order;
+import com.salesmanager.core.model.payments.Transaction;
+
+
+
+
+public interface TransactionService extends SalesManagerEntityService<Long, Transaction> {
+
+ /**
+ * Obtain a previous transaction that has type authorize for a give order
+ * @param order
+ * @return
+ * @throws ServiceException
+ */
+ Transaction getCapturableTransaction(Order order) throws ServiceException;
+
+ Transaction getRefundableTransaction(Order order) throws ServiceException;
+
+ List<Transaction> listTransactions(Order order) throws ServiceException;
+
+
+
+}
\ No newline at end of file
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/reference/country/CountryService.java b/sm-core/src/main/java/com/salesmanager/core/business/services/reference/country/CountryService.java
new file mode 100644
index 0000000..0f50de9
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/reference/country/CountryService.java
@@ -0,0 +1,25 @@
+package com.salesmanager.core.business.services.reference.country;
+
+import java.util.List;
+import java.util.Map;
+
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.business.services.common.generic.SalesManagerEntityService;
+import com.salesmanager.core.model.reference.country.Country;
+import com.salesmanager.core.model.reference.country.CountryDescription;
+import com.salesmanager.core.model.reference.language.Language;
+
+public interface CountryService extends SalesManagerEntityService<Integer, Country> {
+
+ public Country getByCode(String code) throws ServiceException;
+
+ public void addCountryDescription(Country country, CountryDescription description) throws ServiceException;
+
+ public List<Country> getCountries(Language language) throws ServiceException;
+
+ Map<String, Country> getCountriesMap(Language language)
+ throws ServiceException;
+
+ List<Country> getCountries(List<String> isoCodes, Language language)
+ throws ServiceException;
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/reference/country/CountryServiceImpl.java b/sm-core/src/main/java/com/salesmanager/core/business/services/reference/country/CountryServiceImpl.java
new file mode 100644
index 0000000..b31af65
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/reference/country/CountryServiceImpl.java
@@ -0,0 +1,123 @@
+package com.salesmanager.core.business.services.reference.country;
+
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.inject.Inject;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.business.repositories.reference.country.CountryRepository;
+import com.salesmanager.core.business.services.common.generic.SalesManagerEntityServiceImpl;
+import com.salesmanager.core.business.utils.CacheUtils;
+import com.salesmanager.core.model.reference.country.Country;
+import com.salesmanager.core.model.reference.country.CountryDescription;
+import com.salesmanager.core.model.reference.language.Language;
+
+@Service("countryService")
+public class CountryServiceImpl extends SalesManagerEntityServiceImpl<Integer, Country>
+ implements CountryService {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(CountryServiceImpl.class);
+
+ private CountryRepository countryRepository;
+
+ @Inject
+ private CacheUtils cache;
+
+
+ @Inject
+ public CountryServiceImpl(CountryRepository countryRepository) {
+ super(countryRepository);
+ this.countryRepository = countryRepository;
+ }
+
+ public Country getByCode(String code) throws ServiceException {
+ return countryRepository.findByIsoCode(code);
+ }
+
+ @Override
+ public void addCountryDescription(Country country, CountryDescription description) throws ServiceException {
+ country.getDescriptions().add(description);
+ description.setCountry(country);
+ update(country);
+ }
+
+ @Override
+ public Map<String,Country> getCountriesMap(Language language) throws ServiceException {
+
+ List<Country> countries = this.getCountries(language);
+
+ Map<String,Country> returnMap = new LinkedHashMap<String,Country>();
+
+ for(Country country : countries) {
+ returnMap.put(country.getIsoCode(), country);
+ }
+
+ return returnMap;
+ }
+
+
+ @Override
+ public List<Country> getCountries(final List<String> isoCodes, final Language language) throws ServiceException {
+ List<Country> countryList = getCountries(language);
+ List<Country> requestedCountryList = new ArrayList<Country>();
+ if(!CollectionUtils.isEmpty(countryList)) {
+ for(Country c : countryList) {
+ if(isoCodes.contains(c.getIsoCode())) {
+ requestedCountryList.add(c);
+ }
+ }
+ }
+ return requestedCountryList;
+ }
+
+
+ @SuppressWarnings("unchecked")
+ @Override
+ public List<Country> getCountries(Language language) throws ServiceException {
+
+ List<Country> countries = null;
+ try {
+
+ countries = (List<Country>) cache.getFromCache("COUNTRIES_" + language.getCode());
+
+
+
+ if(countries==null) {
+
+ countries = countryRepository.listByLanguage(language.getId());
+
+ //set names
+ for(Country country : countries) {
+
+ CountryDescription description = country.getDescriptions().get(0);
+ country.setName(description.getName());
+
+ }
+
+ cache.putInCache(countries, "COUNTRIES_" + language.getCode());
+ }
+
+
+
+
+
+ } catch (Exception e) {
+ LOGGER.error("getCountries()", e);
+ }
+
+ return countries;
+
+
+ }
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/reference/currency/CurrencyServiceImpl.java b/sm-core/src/main/java/com/salesmanager/core/business/services/reference/currency/CurrencyServiceImpl.java
new file mode 100644
index 0000000..76858f7
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/reference/currency/CurrencyServiceImpl.java
@@ -0,0 +1,28 @@
+package com.salesmanager.core.business.services.reference.currency;
+
+import javax.inject.Inject;
+
+import org.springframework.stereotype.Service;
+
+import com.salesmanager.core.business.repositories.reference.currency.CurrencyRepository;
+import com.salesmanager.core.business.services.common.generic.SalesManagerEntityServiceImpl;
+import com.salesmanager.core.model.reference.currency.Currency;
+
+@Service("currencyService")
+public class CurrencyServiceImpl extends SalesManagerEntityServiceImpl<Long, Currency>
+ implements CurrencyService {
+
+ private CurrencyRepository currencyRepository;
+
+ @Inject
+ public CurrencyServiceImpl(CurrencyRepository currencyRepository) {
+ super(currencyRepository);
+ this.currencyRepository = currencyRepository;
+ }
+
+ @Override
+ public Currency getByCode(String code) {
+ return currencyRepository.getByCode(code);
+ }
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/reference/language/LanguageService.java b/sm-core/src/main/java/com/salesmanager/core/business/services/reference/language/LanguageService.java
new file mode 100644
index 0000000..8ec2f68
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/reference/language/LanguageService.java
@@ -0,0 +1,22 @@
+package com.salesmanager.core.business.services.reference.language;
+
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.business.services.common.generic.SalesManagerEntityService;
+import com.salesmanager.core.model.reference.language.Language;
+
+public interface LanguageService extends SalesManagerEntityService<Integer, Language> {
+
+ Language getByCode(String code) throws ServiceException;
+
+ Map<String, Language> getLanguagesMap() throws ServiceException;
+
+ List<Language> getLanguages() throws ServiceException;
+
+ Locale toLocale(Language language);
+
+ Language toLanguage(Locale locale);
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/reference/language/LanguageServiceImpl.java b/sm-core/src/main/java/com/salesmanager/core/business/services/reference/language/LanguageServiceImpl.java
new file mode 100644
index 0000000..017c558
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/reference/language/LanguageServiceImpl.java
@@ -0,0 +1,106 @@
+package com.salesmanager.core.business.services.reference.language;
+
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+
+import javax.inject.Inject;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Service;
+
+import com.salesmanager.core.business.constants.Constants;
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.business.repositories.reference.language.LanguageRepository;
+import com.salesmanager.core.business.services.common.generic.SalesManagerEntityServiceImpl;
+import com.salesmanager.core.business.utils.CacheUtils;
+import com.salesmanager.core.model.reference.language.Language;
+
+/**
+ * https://samerabdelkafi.wordpress.com/2014/05/29/spring-data-jpa/
+ * @author c.samson
+ *
+ */
+
+@Service("languageService")
+public class LanguageServiceImpl extends SalesManagerEntityServiceImpl<Integer, Language>
+ implements LanguageService {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(LanguageServiceImpl.class);
+
+ @Inject
+ private CacheUtils cache;
+
+ private LanguageRepository languageRepository;
+
+ @Inject
+ public LanguageServiceImpl(LanguageRepository languageRepository) {
+ super(languageRepository);
+ this.languageRepository = languageRepository;
+ }
+
+
+ @Override
+ public Language getByCode(String code) throws ServiceException {
+ return languageRepository.findByCode(code);
+ }
+
+ @Override
+ public Locale toLocale(Language language) {
+ return new Locale(language.getCode());
+ }
+
+ @Override
+ public Language toLanguage(Locale locale) {
+
+ try {
+ Language lang = getLanguagesMap().get(locale.getLanguage());
+ return lang;
+ } catch (Exception e) {
+ LOGGER.error("Cannot convert locale " + locale.getLanguage() + " to language");
+ }
+
+ return new Language(Constants.DEFAULT_LANGUAGE);
+
+ }
+
+ @Override
+ public Map<String,Language> getLanguagesMap() throws ServiceException {
+
+ List<Language> langs = this.getLanguages();
+ Map<String,Language> returnMap = new LinkedHashMap<String,Language>();
+
+ for(Language lang : langs) {
+ returnMap.put(lang.getCode(), lang);
+ }
+ return returnMap;
+
+ }
+
+
+ @Override
+ @SuppressWarnings("unchecked")
+ public List<Language> getLanguages() throws ServiceException {
+
+
+ List<Language> langs = null;
+ try {
+
+ langs = (List<Language>) cache.getFromCache("LANGUAGES");
+ if(langs==null) {
+ langs = this.list();
+ cache.putInCache(langs, "LANGUAGES");
+ }
+
+ } catch (Exception e) {
+ LOGGER.error("getCountries()", e);
+ throw new ServiceException(e);
+ }
+
+ return langs;
+
+ }
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/reference/loader/ConfigurationModulesLoader.java b/sm-core/src/main/java/com/salesmanager/core/business/services/reference/loader/ConfigurationModulesLoader.java
new file mode 100644
index 0000000..b0a1798
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/reference/loader/ConfigurationModulesLoader.java
@@ -0,0 +1,107 @@
+package com.salesmanager.core.business.services.reference.loader;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.model.system.IntegrationConfiguration;
+
+/**
+ * Loads all modules in the database
+ * @author c.samson
+ *
+ */
+public class ConfigurationModulesLoader {
+
+ @SuppressWarnings("unused")
+ private static final Logger LOGGER = LoggerFactory.getLogger(ConfigurationModulesLoader.class);
+
+
+
+ public static String toJSONString(Map<String,IntegrationConfiguration> configurations) throws Exception {
+
+ StringBuilder jsonModules = new StringBuilder();
+ jsonModules.append("[");
+ int count = 0;
+ for(Object key : configurations.keySet()) {
+
+ String k = (String)key;
+ IntegrationConfiguration c = (IntegrationConfiguration)configurations.get(k);
+
+ String jsonString = c.toJSONString();
+ jsonModules.append(jsonString);
+
+ count ++;
+ if(count<configurations.size()) {
+ jsonModules.append(",");
+ }
+ }
+ jsonModules.append("]");
+ return jsonModules.toString();
+
+
+ }
+
+ @SuppressWarnings({ "rawtypes", "unchecked" })
+ public static Map<String,IntegrationConfiguration> loadIntegrationConfigurations(String value) throws Exception {
+
+
+ Map<String,IntegrationConfiguration> modules = new HashMap<String,IntegrationConfiguration>();
+
+ ObjectMapper mapper = new ObjectMapper();
+
+ try {
+
+
+ Map[] objects = mapper.readValue(value, Map[].class);
+
+ for(int i = 0; i < objects.length; i++) {
+
+
+ Map object = objects[i];
+
+ IntegrationConfiguration configuration = new IntegrationConfiguration();
+
+ String moduleCode = (String)object.get("moduleCode");
+ if(object.get("active")!=null) {
+ configuration.setActive((Boolean)object.get("active"));
+ }
+ if(object.get("defaultSelected")!=null) {
+ configuration.setDefaultSelected((Boolean)object.get("defaultSelected"));
+ }
+ if(object.get("environment")!=null) {
+ configuration.setEnvironment((String)object.get("environment"));
+ }
+ configuration.setModuleCode(moduleCode);
+
+ modules.put(moduleCode, configuration);
+
+ if(object.get("integrationKeys")!=null) {
+ Map<String,String> confs = (Map<String,String> )object.get("integrationKeys");
+ configuration.setIntegrationKeys(confs);
+ }
+
+ if(object.get("integrationKeys")!=null) {
+ Map<String,List<String>> options = (Map<String,List<String>> )object.get("integrationOptions");
+ configuration.setIntegrationOptions(options);
+ }
+
+
+ }
+
+ return modules;
+
+ } catch (Exception e) {
+ throw new ServiceException(e);
+ }
+
+
+
+ }
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/reference/loader/IntegrationModulesLoader.java b/sm-core/src/main/java/com/salesmanager/core/business/services/reference/loader/IntegrationModulesLoader.java
new file mode 100644
index 0000000..78e1a4e
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/reference/loader/IntegrationModulesLoader.java
@@ -0,0 +1,190 @@
+package com.salesmanager.core.business.services.reference.loader;
+
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Component;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.model.system.IntegrationModule;
+import com.salesmanager.core.model.system.ModuleConfig;
+
+@Component
+public class IntegrationModulesLoader {
+
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(IntegrationModulesLoader.class);
+
+
+ public List<IntegrationModule> loadIntegrationModules(String jsonFilePath) throws Exception {
+
+
+ List<IntegrationModule> modules = new ArrayList<IntegrationModule>();
+
+ ObjectMapper mapper = new ObjectMapper();
+
+ try {
+
+ InputStream in =
+ this.getClass().getClassLoader().getResourceAsStream(jsonFilePath);
+
+
+ @SuppressWarnings("rawtypes")
+ Map[] objects = mapper.readValue(in, Map[].class);
+
+ for(int i = 0; i < objects.length; i++) {
+
+ modules.add(this.loadModule(objects[i]));
+ }
+
+ return modules;
+
+ } catch (Exception e) {
+ throw new ServiceException(e);
+ }
+
+
+
+
+
+
+
+ }
+
+ @SuppressWarnings({ "rawtypes", "unchecked" })
+ public IntegrationModule loadModule(Map object) throws Exception {
+
+ ObjectMapper mapper = new ObjectMapper();
+ IntegrationModule module = new IntegrationModule();
+ module.setModule((String)object.get("module"));
+ module.setCode((String)object.get("code"));
+ module.setImage((String)object.get("image"));
+
+ if(object.get("type")!=null) {
+ module.setType((String)object.get("type"));
+ }
+
+ if(object.get("customModule")!=null) {
+ Object o = object.get("customModule");
+ Boolean b = false;
+ if(o instanceof Boolean) {
+ b = (Boolean)object.get("customModule");
+ } else {
+ try {
+ b = new Boolean((String)object.get("customModule"));
+ } catch(Exception e) {
+ LOGGER.error("Cannot cast " + o.getClass() + " tp a boolean value");
+ }
+ }
+ module.setCustomModule(b);
+ }
+ //module.setRegions(regions)
+ if(object.get("details")!=null) {
+
+ Map<String,String> details = (Map<String,String>)object.get("details");
+ module.setDetails(details);
+
+ //maintain the original json structure
+ StringBuilder detailsStructure = new StringBuilder();
+ int count = 0;
+ detailsStructure.append("{");
+ for(String key : details.keySet()) {
+ String jsonKeyString = mapper.writeValueAsString(key);
+ detailsStructure.append(jsonKeyString);
+ detailsStructure.append(":");
+ String jsonValueString = mapper.writeValueAsString(details.get(key));
+ detailsStructure.append(jsonValueString);
+ if(count<(details.size()-1)) {
+ detailsStructure.append(",");
+ }
+ count++;
+ }
+ detailsStructure.append("}");
+ module.setConfigDetails(detailsStructure.toString());
+
+ }
+
+
+ List confs = (List)object.get("configuration");
+
+ //convert to json
+
+
+
+ if(confs!=null) {
+ StringBuilder configString = new StringBuilder();
+ configString.append("[");
+ Map<String,ModuleConfig> moduleConfigs = new HashMap<String,ModuleConfig>();
+ int count=0;
+ for(Object oo : confs) {
+
+ Map values = (Map)oo;
+
+ String env = (String)values.get("env");
+
+ ModuleConfig config = new ModuleConfig();
+ config.setScheme((String)values.get("scheme"));
+ config.setHost((String)values.get("host"));
+ config.setPort((String)values.get("port"));
+ config.setUri((String)values.get("uri"));
+ config.setEnv((String)values.get("env"));
+ if((String)values.get("config1")!=null) {
+ config.setConfig1((String)values.get("config1"));
+ }
+ if((String)values.get("config2")!=null) {
+ config.setConfig2((String)values.get("config2"));
+ }
+
+ String jsonConfigString = mapper.writeValueAsString(config);
+ configString.append(jsonConfigString);
+
+ moduleConfigs.put(env, config);
+
+ if(count<(confs.size()-1)) {
+ configString.append(",");
+ }
+ count++;
+
+
+ }
+ configString.append("]");
+ module.setConfiguration(configString.toString());
+ module.setModuleConfigs(moduleConfigs);
+ }
+
+ List<String> regions = (List<String>)object.get("regions");
+ if(regions!=null) {
+
+
+ StringBuilder configString = new StringBuilder();
+ configString.append("[");
+ int count=0;
+ for(String region : regions) {
+
+ module.getRegionsSet().add(region);
+ String jsonConfigString = mapper.writeValueAsString(region);
+ configString.append(jsonConfigString);
+
+ if(count<(regions.size()-1)) {
+ configString.append(",");
+ }
+ count++;
+
+ }
+ configString.append("]");
+ module.setRegions(configString.toString());
+
+ }
+
+ return module;
+
+
+ }
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/reference/loader/ZonesLoader.java b/sm-core/src/main/java/com/salesmanager/core/business/services/reference/loader/ZonesLoader.java
new file mode 100644
index 0000000..5bcc455
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/reference/loader/ZonesLoader.java
@@ -0,0 +1,143 @@
+package com.salesmanager.core.business.services.reference.loader;
+
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.inject.Inject;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Component;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.business.services.reference.country.CountryService;
+import com.salesmanager.core.business.services.reference.language.LanguageService;
+import com.salesmanager.core.model.reference.country.Country;
+import com.salesmanager.core.model.reference.language.Language;
+import com.salesmanager.core.model.reference.zone.Zone;
+import com.salesmanager.core.model.reference.zone.ZoneDescription;
+
+@Component
+public class ZonesLoader {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(ZonesLoader.class);
+
+ @Inject
+ private LanguageService languageService;
+
+ @Inject
+ private CountryService countryService;
+
+ public Map<String, Zone> loadZones(String jsonFilePath) throws Exception {
+
+
+
+ List<Language> languages = languageService.list();
+
+ List<Country> countries = countryService.list();
+ Map<String,Country> countriesMap = new HashMap<String,Country>();
+ for(Country country : countries) {
+
+ countriesMap.put(country.getIsoCode(), country);
+
+ }
+
+ ObjectMapper mapper = new ObjectMapper();
+
+ try {
+
+ InputStream in =
+ this.getClass().getClassLoader().getResourceAsStream(jsonFilePath);
+
+ @SuppressWarnings("unchecked")
+ Map<String,Object> data = mapper.readValue(in, Map.class);
+
+ Map<String,Zone> zonesMap = new HashMap<String,Zone>();
+ Map<String,List<ZoneDescription>> zonesDescriptionsMap = new HashMap<String,List<ZoneDescription>>();
+ Map<String,String> zonesMark = new HashMap<String,String>();
+
+ for(Language l : languages) {
+ @SuppressWarnings("rawtypes")
+ List langList = (List)data.get(l.getCode());
+ if(langList!=null) {
+ for(Object z : langList) {
+ @SuppressWarnings("unchecked")
+ Map<String,String> e = (Map<String,String>)z;
+ String zoneCode = e.get("zoneCode");
+ ZoneDescription zoneDescription = new ZoneDescription();
+ zoneDescription.setLanguage(l);
+ zoneDescription.setName(e.get("zoneName"));
+ Zone zone = null;
+ List<ZoneDescription> descriptions = null;
+ if(!zonesMap.containsKey(zoneCode)) {
+ zone = new Zone();
+ Country country = countriesMap.get(e.get("countryCode"));
+ if(country==null) {
+ LOGGER.warn("Country is null for " + zoneCode + " and country code " + e.get("countryCode"));
+ continue;
+ }
+ zone.setCountry(country);
+ zonesMap.put(zoneCode, zone);
+ zone.setCode(zoneCode);
+
+ }
+
+
+ if(zonesMark.containsKey(l.getCode() + "_" + zoneCode)) {
+ LOGGER.warn("This zone seems to be a duplicate ! " + zoneCode + " and language code " + l.getCode());
+ continue;
+ }
+
+ zonesMark.put(l.getCode() + "_" + zoneCode, l.getCode() + "_" + zoneCode);
+
+ if(zonesDescriptionsMap.containsKey(zoneCode)) {
+ descriptions = zonesDescriptionsMap.get(zoneCode);
+ } else {
+ descriptions = new ArrayList<ZoneDescription>();
+ zonesDescriptionsMap.put(zoneCode, descriptions);
+ }
+
+ descriptions.add(zoneDescription);
+
+ }
+ }
+
+ }
+
+
+ for (Map.Entry<String, Zone> entry : zonesMap.entrySet()) {
+ String key = entry.getKey();
+ Zone value = entry.getValue();
+
+ //if(value.getDescriptions()==null) {
+ // LOGGER.warn("This zone " + key + " has no descriptions");
+ // continue;
+ //}
+
+ //get descriptions
+ List<ZoneDescription> descriptions = zonesDescriptionsMap.get(key);
+ if(descriptions!=null) {
+ value.setDescriptons(descriptions);
+ }
+ }
+
+ return zonesMap;
+
+
+ } catch (Exception e) {
+ throw new ServiceException(e);
+ }
+
+
+
+
+
+
+
+ }
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/reference/zone/ZoneService.java b/sm-core/src/main/java/com/salesmanager/core/business/services/reference/zone/ZoneService.java
new file mode 100644
index 0000000..6294cd9
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/reference/zone/ZoneService.java
@@ -0,0 +1,25 @@
+package com.salesmanager.core.business.services.reference.zone;
+
+import java.util.List;
+import java.util.Map;
+
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.business.services.common.generic.SalesManagerEntityService;
+import com.salesmanager.core.model.reference.country.Country;
+import com.salesmanager.core.model.reference.language.Language;
+import com.salesmanager.core.model.reference.zone.Zone;
+import com.salesmanager.core.model.reference.zone.ZoneDescription;
+
+public interface ZoneService extends SalesManagerEntityService<Long, Zone> {
+
+ Zone getByCode(String code);
+
+ void addDescription(Zone zone, ZoneDescription description) throws ServiceException;
+
+ List<Zone> getZones(Country country, Language language)
+ throws ServiceException;
+
+ Map<String, Zone> getZones(Language language) throws ServiceException;
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/reference/zone/ZoneServiceImpl.java b/sm-core/src/main/java/com/salesmanager/core/business/services/reference/zone/ZoneServiceImpl.java
new file mode 100644
index 0000000..1d16dd1
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/reference/zone/ZoneServiceImpl.java
@@ -0,0 +1,132 @@
+package com.salesmanager.core.business.services.reference.zone;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.inject.Inject;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Service;
+
+import com.salesmanager.core.business.constants.Constants;
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.business.repositories.reference.zone.ZoneRepository;
+import com.salesmanager.core.business.services.common.generic.SalesManagerEntityServiceImpl;
+import com.salesmanager.core.business.utils.CacheUtils;
+import com.salesmanager.core.model.reference.country.Country;
+import com.salesmanager.core.model.reference.language.Language;
+import com.salesmanager.core.model.reference.zone.Zone;
+import com.salesmanager.core.model.reference.zone.ZoneDescription;
+
+@Service("zoneService")
+public class ZoneServiceImpl extends SalesManagerEntityServiceImpl<Long, Zone> implements
+ ZoneService {
+
+ private final static String ZONE_CACHE_PREFIX = "ZONES_";
+
+ private ZoneRepository zoneRepository;
+
+ @Inject
+ private CacheUtils cache;
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(ZoneServiceImpl.class);
+
+ @Inject
+ public ZoneServiceImpl(ZoneRepository zoneRepository) {
+ super(zoneRepository);
+ this.zoneRepository = zoneRepository;
+ }
+
+ @Override
+ public Zone getByCode(String code) {
+ return zoneRepository.findByCode(code);
+ }
+
+ @Override
+ public void addDescription(Zone zone, ZoneDescription description) throws ServiceException {
+ if (zone.getDescriptions()!=null) {
+ if(!zone.getDescriptions().contains(description)) {
+ zone.getDescriptions().add(description);
+ update(zone);
+ }
+ } else {
+ List<ZoneDescription> descriptions = new ArrayList<ZoneDescription>();
+ descriptions.add(description);
+ zone.setDescriptons(descriptions);
+ update(zone);
+ }
+ }
+
+ @SuppressWarnings("unchecked")
+ @Override
+ public List<Zone> getZones(Country country, Language language) throws ServiceException {
+
+ List<Zone> zones = null;
+ try {
+
+ String cacheKey = ZONE_CACHE_PREFIX + country.getIsoCode() + Constants.UNDERSCORE + language.getCode();
+
+ zones = (List<Zone>) cache.getFromCache(cacheKey);
+
+
+
+ if(zones==null) {
+
+ zones = zoneRepository.listByLanguageAndCountry(country.getIsoCode(), language.getId());
+
+ //set names
+ for(Zone zone : zones) {
+ ZoneDescription description = zone.getDescriptions().get(0);
+ zone.setName(description.getName());
+
+ }
+ cache.putInCache(zones, cacheKey);
+ }
+
+ } catch (Exception e) {
+ LOGGER.error("getZones()", e);
+ }
+ return zones;
+
+
+ }
+
+ @Override
+ @SuppressWarnings("unchecked")
+ public Map<String, Zone> getZones(Language language) throws ServiceException {
+
+ Map<String, Zone> zones = null;
+ try {
+
+ String cacheKey = ZONE_CACHE_PREFIX + language.getCode();
+
+ zones = (Map<String, Zone>) cache.getFromCache(cacheKey);
+
+
+
+ if(zones==null) {
+ zones = new HashMap<String, Zone>();
+ List<Zone> zns = zoneRepository.listByLanguage(language.getId());
+
+ //set names
+ for(Zone zone : zns) {
+ ZoneDescription description = zone.getDescriptions().get(0);
+ zone.setName(description.getName());
+ zones.put(zone.getCode(), zone);
+
+ }
+ cache.putInCache(zones, cacheKey);
+ }
+
+ } catch (Exception e) {
+ LOGGER.error("getZones()", e);
+ }
+ return zones;
+
+
+ }
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/reference/zone/ZoneTransient.java b/sm-core/src/main/java/com/salesmanager/core/business/services/reference/zone/ZoneTransient.java
new file mode 100644
index 0000000..4b88f0f
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/reference/zone/ZoneTransient.java
@@ -0,0 +1,28 @@
+package com.salesmanager.core.business.services.reference.zone;
+
+public class ZoneTransient {
+
+ private String zoneCode;
+ private String zoneName;
+ private String countryCode;
+
+ public String getZoneCode() {
+ return zoneCode;
+ }
+ public void setZoneCode(String zoneCode) {
+ this.zoneCode = zoneCode;
+ }
+ public String getZoneName() {
+ return zoneName;
+ }
+ public void setZoneName(String zoneName) {
+ this.zoneName = zoneName;
+ }
+ public String getCountryCode() {
+ return countryCode;
+ }
+ public void setCountryCode(String countryCode) {
+ this.countryCode = countryCode;
+ }
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/search/SearchService.java b/sm-core/src/main/java/com/salesmanager/core/business/services/search/SearchService.java
new file mode 100644
index 0000000..2584772
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/search/SearchService.java
@@ -0,0 +1,58 @@
+package com.salesmanager.core.business.services.search;
+
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.model.catalog.product.Product;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.search.SearchKeywords;
+import com.salesmanager.core.model.search.SearchResponse;
+
+public interface SearchService {
+
+ /**
+ * The indexing service for products. The index service must be invoked when a product is
+ * created or updated
+ * @param store
+ * @param product
+ * @throws ServiceException
+ */
+ void index(MerchantStore store, Product product) throws ServiceException;
+
+ /**
+ * Deletes an index in the appropriate language. Must be invoked when a product is deleted
+ * @param store
+ * @param product
+ * @throws ServiceException
+ */
+ void deleteIndex(MerchantStore store, Product product)
+ throws ServiceException;
+
+ /**
+ * Similar keywords based on a a series of characters. Used in the auto-complete
+ * functionality
+ * @param collectionName
+ * @param jsonString
+ * @param entriesCount
+ * @return
+ * @throws ServiceException
+ */
+ SearchKeywords searchForKeywords(String collectionName,
+ String jsonString, int entriesCount) throws ServiceException;
+
+ /**
+ * Search products based on user entry
+ * @param store
+ * @param languageCode
+ * @param jsonString
+ * @param entriesCount
+ * @param startIndex
+ * @throws ServiceException
+ */
+ SearchResponse search(MerchantStore store, String languageCode, String jsonString,
+ int entriesCount, int startIndex) throws ServiceException;
+
+ /**
+ * Initializes search service in order to avoid lazy initialization
+ */
+ void initService();
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/shipping/ShippingOriginService.java b/sm-core/src/main/java/com/salesmanager/core/business/services/shipping/ShippingOriginService.java
new file mode 100644
index 0000000..9e539d9
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/shipping/ShippingOriginService.java
@@ -0,0 +1,19 @@
+package com.salesmanager.core.business.services.shipping;
+
+import com.salesmanager.core.business.services.common.generic.SalesManagerEntityService;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.shipping.ShippingOrigin;
+
+/**
+ * ShippingOrigin object if different from MerchantStore address.
+ * Can be managed through this service.
+ * @author carlsamson
+ *
+ */
+public interface ShippingOriginService extends SalesManagerEntityService<Long, ShippingOrigin> {
+
+ ShippingOrigin getByStore(MerchantStore store);
+
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/shipping/ShippingOriginServiceImpl.java b/sm-core/src/main/java/com/salesmanager/core/business/services/shipping/ShippingOriginServiceImpl.java
new file mode 100644
index 0000000..508d491
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/shipping/ShippingOriginServiceImpl.java
@@ -0,0 +1,40 @@
+package com.salesmanager.core.business.services.shipping;
+
+import javax.inject.Inject;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Service;
+
+import com.salesmanager.core.business.repositories.shipping.ShippingOriginRepository;
+import com.salesmanager.core.business.services.common.generic.SalesManagerEntityServiceImpl;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.shipping.ShippingOrigin;
+
+
+
+@Service("shippingOriginService")
+public class ShippingOriginServiceImpl extends SalesManagerEntityServiceImpl<Long, ShippingOrigin> implements ShippingOriginService {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(ShippingOriginServiceImpl.class);
+
+ private ShippingOriginRepository shippingOriginRepository;
+
+
+
+ @Inject
+ public ShippingOriginServiceImpl(ShippingOriginRepository shippingOriginRepository) {
+ super(shippingOriginRepository);
+ this.shippingOriginRepository = shippingOriginRepository;
+ }
+
+
+ @Override
+ public ShippingOrigin getByStore(MerchantStore store) {
+ // TODO Auto-generated method stub
+ ShippingOrigin origin = shippingOriginRepository.findByStore(store.getId());
+ return origin;
+ }
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/shipping/ShippingService.java b/sm-core/src/main/java/com/salesmanager/core/business/services/shipping/ShippingService.java
new file mode 100644
index 0000000..0aa64ea
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/shipping/ShippingService.java
@@ -0,0 +1,208 @@
+package com.salesmanager.core.business.services.shipping;
+
+import java.util.List;
+import java.util.Map;
+
+
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.model.common.Delivery;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.reference.country.Country;
+import com.salesmanager.core.model.reference.language.Language;
+import com.salesmanager.core.model.shipping.PackageDetails;
+import com.salesmanager.core.model.shipping.ShippingConfiguration;
+import com.salesmanager.core.model.shipping.ShippingMetaData;
+import com.salesmanager.core.model.shipping.ShippingOption;
+import com.salesmanager.core.model.shipping.ShippingProduct;
+import com.salesmanager.core.model.shipping.ShippingQuote;
+import com.salesmanager.core.model.shipping.ShippingSummary;
+import com.salesmanager.core.model.shoppingcart.ShoppingCartItem;
+import com.salesmanager.core.model.system.CustomIntegrationConfiguration;
+import com.salesmanager.core.model.system.IntegrationConfiguration;
+import com.salesmanager.core.model.system.IntegrationModule;
+
+
+
+public interface ShippingService {
+
+ /**
+ * Returns a list of supported countries (ship to country list) configured by merchant
+ * when the merchant configured shipping National and has saved a list of ship to country
+ * from the list
+ * @param store
+ * @return
+ * @throws ServiceException
+ */
+ public List<String> getSupportedCountries(MerchantStore store)
+ throws ServiceException;
+
+ public void setSupportedCountries(MerchantStore store,
+ List<String> countryCodes) throws ServiceException;
+
+ /**
+ * Returns a list of available shipping modules
+ * @param store
+ * @return
+ * @throws ServiceException
+ */
+ public List<IntegrationModule> getShippingMethods(MerchantStore store)
+ throws ServiceException;
+
+
+ /**
+ * Returns a list of configured shipping modules for a given merchant
+ * @param store
+ * @return
+ * @throws ServiceException
+ */
+ Map<String, IntegrationConfiguration> getShippingModulesConfigured(
+ MerchantStore store) throws ServiceException;
+
+ /**
+ * Adds a Shipping configuration
+ * @param configuration
+ * @param store
+ * @throws ServiceException
+ */
+ void saveShippingQuoteModuleConfiguration(IntegrationConfiguration configuration,
+ MerchantStore store) throws ServiceException;
+
+ /**
+ * ShippingType (NATIONAL, INTERNATIONSL)
+ * ShippingBasisType (SHIPPING, BILLING)
+ * ShippingPriceOptionType (ALL, LEAST, HIGHEST)
+ * Packages
+ * Handling
+ * @param store
+ * @return
+ * @throws ServiceException
+ */
+ ShippingConfiguration getShippingConfiguration(MerchantStore store)
+ throws ServiceException;
+
+ /**
+ * Saves ShippingConfiguration for a given MerchantStore
+ * @param shippingConfiguration
+ * @param store
+ * @throws ServiceException
+ */
+ void saveShippingConfiguration(ShippingConfiguration shippingConfiguration,
+ MerchantStore store) throws ServiceException;
+
+ void removeShippingQuoteModuleConfiguration(String moduleCode,
+ MerchantStore store) throws ServiceException;
+
+ /**
+ * Provides detailed information on boxes that will be used
+ * when getting a ShippingQuote
+ * @param products
+ * @param store
+ * @return
+ * @throws ServiceException
+ */
+ List<PackageDetails> getPackagesDetails(List<ShippingProduct> products,
+ MerchantStore store) throws ServiceException;
+
+ /**
+ * Get a list of ShippingQuote from a configured
+ * shipping gateway. The quotes are displayed to the end user so he can pick
+ * the ShippingOption he wants
+ * @param store
+ * @param customer
+ * @param products
+ * @param language
+ * @return
+ * @throws ServiceException
+ */
+ ShippingQuote getShippingQuote(MerchantStore store, Delivery delivery,
+ List<ShippingProduct> products, Language language)
+ throws ServiceException;
+
+
+ /**
+ * Returns a shipping module configuration given a moduleCode
+ * @param moduleCode
+ * @param store
+ * @return
+ * @throws ServiceException
+ */
+ IntegrationConfiguration getShippingConfiguration(String moduleCode,
+ MerchantStore store) throws ServiceException;
+
+ /**
+ * Retrieves the custom configuration for a given module
+ * @param moduleCode
+ * @param store
+ * @return
+ * @throws ServiceException
+ */
+
+
+ CustomIntegrationConfiguration getCustomShippingConfiguration(
+ String moduleCode, MerchantStore store) throws ServiceException;
+
+ /**
+ * Weight based configuration
+ * @param moduleCode
+ * @param shippingConfiguration
+ * @param store
+ * @throws ServiceException
+ */
+ void saveCustomShippingConfiguration(String moduleCode,
+ CustomIntegrationConfiguration shippingConfiguration,
+ MerchantStore store) throws ServiceException;
+
+ /**
+ * Removes a custom shipping quote
+ * module
+ * @param moduleCode
+ * @param store
+ * @throws ServiceException
+ */
+ void removeCustomShippingQuoteModuleConfiguration(String moduleCode,
+ MerchantStore store) throws ServiceException;
+
+ /**
+ * The {@link ShippingSummary} is built from the ShippingOption the user has selected
+ * The ShippingSummary is used for order calculation
+ * @param store
+ * @param shippingQuote
+ * @param selectedShippingOption
+ * @return
+ * @throws ServiceException
+ */
+ ShippingSummary getShippingSummary(MerchantStore store, ShippingQuote shippingQuote,
+ ShippingOption selectedShippingOption) throws ServiceException;
+
+ /**
+ * Returns a list of supported countries (ship to country list) configured by merchant
+ * If the merchant configured shipping National, then only store country will be in the list
+ * If the merchant configured shipping International, then the list of accepted country is returned
+ * from the list
+ * @param store
+ * @param language
+ * @return
+ * @throws ServiceException
+ */
+ List<Country> getShipToCountryList(MerchantStore store, Language language)
+ throws ServiceException;
+
+ /**
+ * Determines if Shipping should be proposed to the customer
+ * @param items
+ * @param store
+ * @return
+ * @throws ServiceException
+ */
+ boolean requiresShipping(List<ShoppingCartItem> items, MerchantStore store) throws ServiceException;
+
+ /**
+ * Returns shipping metadata and how shipping is configured for a given store
+ * @param store
+ * @return
+ * @throws ServiceException
+ */
+ ShippingMetaData getShippingMetaData(MerchantStore store) throws ServiceException;
+
+
+}
\ No newline at end of file
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/shoppingcart/ShoppingCartCalculationService.java b/sm-core/src/main/java/com/salesmanager/core/business/services/shoppingcart/ShoppingCartCalculationService.java
new file mode 100644
index 0000000..a4fcb01
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/shoppingcart/ShoppingCartCalculationService.java
@@ -0,0 +1,48 @@
+/**
+ *
+ */
+package com.salesmanager.core.business.services.shoppingcart;
+
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.model.customer.Customer;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.order.OrderTotalSummary;
+import com.salesmanager.core.model.reference.language.Language;
+import com.salesmanager.core.model.shoppingcart.ShoppingCart;
+
+/**
+ * Interface declaring various methods used to calculate {@link ShoppingCart}
+ * object details.
+ *
+ * @author Umesh Awasthi
+ * @since 1.2
+ *
+ */
+public interface ShoppingCartCalculationService {
+ /**
+ * Method which will be used to calculate price for each line items as well
+ * Total and Sub-total for {@link ShoppingCart}.
+ *
+ * @param cartModel
+ * ShoopingCart mode representing underlying DB object
+ * @param customer
+ * @param store
+ * @param language
+ * @throws ServiceException
+ */
+ public OrderTotalSummary calculate(final ShoppingCart cartModel, final Customer customer, final MerchantStore store,
+ final Language language) throws ServiceException;
+
+ /**
+ * Method which will be used to calculate price for each line items as well
+ * Total and Sub-total for {@link ShoppingCart}.
+ *
+ * @param cartModel
+ * ShoopingCart mode representing underlying DB object
+ * @param store
+ * @param language
+ * @throws ServiceException
+ */
+ public OrderTotalSummary calculate(final ShoppingCart cartModel, final MerchantStore store, final Language language)
+ throws ServiceException;
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/shoppingcart/ShoppingCartCalculationServiceImpl.java b/sm-core/src/main/java/com/salesmanager/core/business/services/shoppingcart/ShoppingCartCalculationServiceImpl.java
new file mode 100644
index 0000000..65ef12f
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/shoppingcart/ShoppingCartCalculationServiceImpl.java
@@ -0,0 +1,121 @@
+/**
+ *
+ */
+package com.salesmanager.core.business.services.shoppingcart;
+
+import javax.inject.Inject;
+
+import org.apache.commons.lang3.Validate;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Service;
+
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.business.services.order.OrderService;
+import com.salesmanager.core.business.services.order.OrderServiceImpl;
+import com.salesmanager.core.model.customer.Customer;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.order.OrderTotalSummary;
+import com.salesmanager.core.model.reference.language.Language;
+import com.salesmanager.core.model.shoppingcart.ShoppingCart;
+import com.salesmanager.core.model.shoppingcart.ShoppingCartItem;
+
+/**
+ * <p>
+ * Implementation class responsible for calculating state of shopping cart. This
+ * class will take care of calculating price of each line items of shopping cart
+ * as well any discount including sub-total and total amount.
+ * </p>
+ *
+ * @author Umesh Awasthi
+ * @version 1.2
+ */
+@Service("shoppingCartCalculationService")
+public class ShoppingCartCalculationServiceImpl implements ShoppingCartCalculationService {
+
+ protected final Logger LOG = LoggerFactory.getLogger(getClass());
+
+ @Inject
+ private ShoppingCartService shoppingCartService;
+
+ @Inject
+ private OrderService orderService;
+
+ /**
+ * <p>
+ * Method used to recalculate state of shopping cart every time any change
+ * has been made to underlying {@link ShoppingCart} object in DB.
+ * </p>
+ * Following operations will be performed by this method.
+ *
+ * <li>Calculate price for each {@link ShoppingCartItem} and update it.</li>
+ * <p>
+ * This method is backbone method for all price calculation related to
+ * shopping cart.
+ * </p>
+ *
+ * @see OrderServiceImpl
+ *
+ * @param cartModel
+ * @param customer
+ * @param store
+ * @param language
+ * @throws ServiceException
+ */
+ @Override
+ public OrderTotalSummary calculate(final ShoppingCart cartModel, final Customer customer, final MerchantStore store,
+ final Language language) throws ServiceException {
+
+ Validate.notNull(cartModel, "cart cannot be null");
+ Validate.notNull(cartModel.getLineItems(), "Cart should have line items.");
+ Validate.notNull(store, "MerchantStore cannot be null");
+ Validate.notNull(customer, "Customer cannot be null");
+ OrderTotalSummary orderTotalSummary = orderService.calculateShoppingCartTotal(cartModel, customer, store,
+ language);
+ updateCartModel(cartModel);
+ return orderTotalSummary;
+
+ }
+
+ /**
+ * <p>
+ * Method used to recalculate state of shopping cart every time any change
+ * has been made to underlying {@link ShoppingCart} object in DB.
+ * </p>
+ * Following operations will be performed by this method.
+ *
+ * <li>Calculate price for each {@link ShoppingCartItem} and update it.</li>
+ * <p>
+ * This method is backbone method for all price calculation related to
+ * shopping cart.
+ * </p>
+ *
+ * @see OrderServiceImpl
+ *
+ * @param cartModel
+ * @param store
+ * @param language
+ * @throws ServiceException
+ */
+ @Override
+ public OrderTotalSummary calculate(final ShoppingCart cartModel, final MerchantStore store, final Language language)
+ throws ServiceException {
+
+ Validate.notNull(cartModel, "cart cannot be null");
+ Validate.notNull(cartModel.getLineItems(), "Cart should have line items.");
+ Validate.notNull(store, "MerchantStore cannot be null");
+ OrderTotalSummary orderTotalSummary = orderService.calculateShoppingCartTotal(cartModel, store, language);
+ updateCartModel(cartModel);
+ return orderTotalSummary;
+
+ }
+
+ public ShoppingCartService getShoppingCartService() {
+ return shoppingCartService;
+ }
+
+ private void updateCartModel(final ShoppingCart cartModel) throws ServiceException {
+ shoppingCartService.saveOrUpdate(cartModel);
+ }
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/shoppingcart/ShoppingCartService.java b/sm-core/src/main/java/com/salesmanager/core/business/services/shoppingcart/ShoppingCartService.java
new file mode 100644
index 0000000..2eb20d3
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/shoppingcart/ShoppingCartService.java
@@ -0,0 +1,80 @@
+package com.salesmanager.core.business.services.shoppingcart;
+
+import java.util.List;
+
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.business.services.common.generic.SalesManagerEntityService;
+import com.salesmanager.core.model.catalog.product.Product;
+import com.salesmanager.core.model.customer.Customer;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.shipping.ShippingProduct;
+import com.salesmanager.core.model.shoppingcart.ShoppingCart;
+import com.salesmanager.core.model.shoppingcart.ShoppingCartItem;
+
+public interface ShoppingCartService extends SalesManagerEntityService<Long, ShoppingCart> {
+
+ ShoppingCart getShoppingCart(Customer customer) throws ServiceException;
+
+ void saveOrUpdate(ShoppingCart shoppingCart) throws ServiceException;
+
+ ShoppingCart getById(Long id, MerchantStore store) throws ServiceException;
+
+ ShoppingCart getByCode(String code, MerchantStore store) throws ServiceException;
+
+ ShoppingCart getByCustomer(Customer customer) throws ServiceException;
+
+ /**
+ * Creates a list of ShippingProduct based on the ShoppingCart if items are
+ * virtual return list will be null
+ *
+ * @param cart
+ * @return
+ * @throws ServiceException
+ */
+ List<ShippingProduct> createShippingProduct(ShoppingCart cart) throws ServiceException;
+
+ /**
+ * Looks if the items in the ShoppingCart are free of charges
+ *
+ * @param cart
+ * @return
+ * @throws ServiceException
+ */
+ boolean isFreeShoppingCart(ShoppingCart cart) throws ServiceException;
+
+ boolean isFreeShoppingCart(List<ShoppingCartItem> items) throws ServiceException;
+
+ /**
+ * Populates a ShoppingCartItem from a Product and attributes if any
+ *
+ * @param product
+ * @return
+ * @throws ServiceException
+ */
+ ShoppingCartItem populateShoppingCartItem(Product product) throws ServiceException;
+
+ void deleteCart(ShoppingCart cart) throws ServiceException;
+
+ void removeShoppingCart(ShoppingCart cart) throws ServiceException;
+
+ /**
+ *
+ * @param userShoppingModel
+ * @param sessionCart
+ * @param store
+ * @return {@link ShoppingCart} merged Shopping Cart
+ * @throws Exception
+ */
+ public ShoppingCart mergeShoppingCarts(final ShoppingCart userShoppingCart, final ShoppingCart sessionCart,
+ final MerchantStore store) throws Exception;
+
+ /**
+ * Determines if the shopping cart requires shipping
+ *
+ * @param cart
+ * @return
+ * @throws ServiceException
+ */
+ boolean requiresShipping(ShoppingCart cart) throws ServiceException;
+
+}
\ No newline at end of file
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/system/EmailService.java b/sm-core/src/main/java/com/salesmanager/core/business/services/system/EmailService.java
new file mode 100644
index 0000000..373bc66
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/system/EmailService.java
@@ -0,0 +1,19 @@
+package com.salesmanager.core.business.services.system;
+
+
+
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.business.modules.email.Email;
+import com.salesmanager.core.business.modules.email.EmailConfig;
+import com.salesmanager.core.model.merchant.MerchantStore;
+
+
+public interface EmailService {
+
+ public void sendHtmlEmail(MerchantStore store, Email email) throws ServiceException, Exception;
+
+ public EmailConfig getEmailConfiguration(MerchantStore store) throws ServiceException;
+
+ public void saveEmailConfiguration(EmailConfig emailConfig, MerchantStore store) throws ServiceException;
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/system/EmailServiceImpl.java b/sm-core/src/main/java/com/salesmanager/core/business/services/system/EmailServiceImpl.java
new file mode 100644
index 0000000..c5eaafe
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/system/EmailServiceImpl.java
@@ -0,0 +1,67 @@
+package com.salesmanager.core.business.services.system;
+
+import javax.inject.Inject;
+
+import org.springframework.stereotype.Service;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.salesmanager.core.business.constants.Constants;
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.business.modules.email.Email;
+import com.salesmanager.core.business.modules.email.EmailConfig;
+import com.salesmanager.core.business.modules.email.HtmlEmailSender;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.system.MerchantConfiguration;
+
+@Service("emailService")
+public class EmailServiceImpl implements EmailService {
+
+ @Inject
+ private MerchantConfigurationService merchantConfigurationService;
+
+ @Inject
+ private HtmlEmailSender sender;
+
+ @Override
+ public void sendHtmlEmail(MerchantStore store, Email email) throws ServiceException, Exception {
+
+ EmailConfig emailConfig = getEmailConfiguration(store);
+
+ sender.setEmailConfig(emailConfig);
+ sender.send(email);
+ }
+
+ @Override
+ public EmailConfig getEmailConfiguration(MerchantStore store) throws ServiceException {
+
+ MerchantConfiguration configuration = merchantConfigurationService.getMerchantConfiguration(Constants.EMAIL_CONFIG, store);
+ EmailConfig emailConfig = null;
+ if(configuration!=null) {
+ String value = configuration.getValue();
+
+ ObjectMapper mapper = new ObjectMapper();
+ try {
+ emailConfig = mapper.readValue(value, EmailConfig.class);
+ } catch(Exception e) {
+ throw new ServiceException("Cannot parse json string " + value);
+ }
+ }
+ return emailConfig;
+ }
+
+
+ @Override
+ public void saveEmailConfiguration(EmailConfig emailConfig, MerchantStore store) throws ServiceException {
+ MerchantConfiguration configuration = merchantConfigurationService.getMerchantConfiguration(Constants.EMAIL_CONFIG, store);
+ if(configuration==null) {
+ configuration = new MerchantConfiguration();
+ configuration.setMerchantStore(store);
+ configuration.setKey(Constants.EMAIL_CONFIG);
+ }
+
+ String value = emailConfig.toJSONString();
+ configuration.setValue(value);
+ merchantConfigurationService.saveOrUpdate(configuration);
+ }
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/system/MerchantConfigurationService.java b/sm-core/src/main/java/com/salesmanager/core/business/services/system/MerchantConfigurationService.java
new file mode 100644
index 0000000..3d8c542
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/system/MerchantConfigurationService.java
@@ -0,0 +1,31 @@
+package com.salesmanager.core.business.services.system;
+
+import java.util.List;
+
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.business.services.common.generic.SalesManagerEntityService;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.system.MerchantConfig;
+import com.salesmanager.core.model.system.MerchantConfiguration;
+import com.salesmanager.core.model.system.MerchantConfigurationType;
+
+public interface MerchantConfigurationService extends
+ SalesManagerEntityService<Long, MerchantConfiguration> {
+
+ MerchantConfiguration getMerchantConfiguration(String key, MerchantStore store) throws ServiceException;
+
+ public void saveOrUpdate(MerchantConfiguration entity) throws ServiceException;
+
+ List<MerchantConfiguration> listByStore(MerchantStore store)
+ throws ServiceException;
+
+ List<MerchantConfiguration> listByType(MerchantConfigurationType type,
+ MerchantStore store) throws ServiceException;
+
+ MerchantConfig getMerchantConfig(MerchantStore store)
+ throws ServiceException;
+
+ void saveMerchantConfig(MerchantConfig config, MerchantStore store)
+ throws ServiceException;
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/system/MerchantConfigurationServiceImpl.java b/sm-core/src/main/java/com/salesmanager/core/business/services/system/MerchantConfigurationServiceImpl.java
new file mode 100644
index 0000000..0fae3e9
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/system/MerchantConfigurationServiceImpl.java
@@ -0,0 +1,115 @@
+package com.salesmanager.core.business.services.system;
+
+import java.util.List;
+
+import javax.inject.Inject;
+
+import org.springframework.stereotype.Service;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.salesmanager.core.business.constants.Constants;
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.business.repositories.system.MerchantConfigurationRepository;
+import com.salesmanager.core.business.services.common.generic.SalesManagerEntityServiceImpl;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.system.MerchantConfig;
+import com.salesmanager.core.model.system.MerchantConfiguration;
+import com.salesmanager.core.model.system.MerchantConfigurationType;
+
+@Service("merchantConfigurationService")
+public class MerchantConfigurationServiceImpl extends
+ SalesManagerEntityServiceImpl<Long, MerchantConfiguration> implements
+ MerchantConfigurationService {
+
+ private MerchantConfigurationRepository merchantConfigurationRepository;
+
+ @Inject
+ public MerchantConfigurationServiceImpl(
+ MerchantConfigurationRepository merchantConfigurationRepository) {
+ super(merchantConfigurationRepository);
+ this.merchantConfigurationRepository = merchantConfigurationRepository;
+ }
+
+
+ @Override
+ public MerchantConfiguration getMerchantConfiguration(String key, MerchantStore store) throws ServiceException {
+ return merchantConfigurationRepository.findByMerchantStoreAndKey(store.getId(), key);
+ }
+
+ @Override
+ public List<MerchantConfiguration> listByStore(MerchantStore store) throws ServiceException {
+ return merchantConfigurationRepository.findByMerchantStore(store.getId());
+ }
+
+ @Override
+ public List<MerchantConfiguration> listByType(MerchantConfigurationType type, MerchantStore store) throws ServiceException {
+ return merchantConfigurationRepository.findByMerchantStoreAndType(store.getId(), type.name());
+ }
+
+ @Override
+ public void saveOrUpdate(MerchantConfiguration entity) throws ServiceException {
+
+
+
+ if(entity.getId()!=null && entity.getId()>0) {
+ super.update(entity);
+ } else {
+ super.create(entity);
+
+ }
+ }
+
+
+ @Override
+ public void delete(MerchantConfiguration merchantConfiguration) throws ServiceException {
+ MerchantConfiguration config = merchantConfigurationRepository.findOne(merchantConfiguration.getId());
+ if(config!=null) {
+ super.delete(config);
+ }
+ }
+
+ @Override
+ public MerchantConfig getMerchantConfig(MerchantStore store) throws ServiceException {
+
+ MerchantConfiguration configuration = merchantConfigurationRepository.findByMerchantStoreAndKey(store.getId(), Constants.MERCHANT_CONFIG);
+
+ MerchantConfig config = null;
+ if(configuration!=null) {
+ String value = configuration.getValue();
+
+ ObjectMapper mapper = new ObjectMapper();
+ try {
+ config = mapper.readValue(value, MerchantConfig.class);
+ } catch(Exception e) {
+ throw new ServiceException("Cannot parse json string " + value);
+ }
+ }
+ return config;
+
+ }
+
+ @Override
+ public void saveMerchantConfig(MerchantConfig config, MerchantStore store) throws ServiceException {
+
+ MerchantConfiguration configuration = merchantConfigurationRepository.findByMerchantStoreAndKey(store.getId(), Constants.MERCHANT_CONFIG);
+
+ if(configuration==null) {
+ configuration = new MerchantConfiguration();
+ configuration.setMerchantStore(store);
+ configuration.setKey(Constants.MERCHANT_CONFIG);
+ }
+
+ String value = config.toJSONString();
+ configuration.setValue(value);
+ if(configuration.getId()!=null && configuration.getId()>0) {
+ super.update(configuration);
+ } else {
+ super.create(configuration);
+
+ }
+
+ }
+
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/system/MerchantLogService.java b/sm-core/src/main/java/com/salesmanager/core/business/services/system/MerchantLogService.java
new file mode 100644
index 0000000..8fb67e0
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/system/MerchantLogService.java
@@ -0,0 +1,9 @@
+package com.salesmanager.core.business.services.system;
+
+import com.salesmanager.core.business.services.common.generic.SalesManagerEntityService;
+import com.salesmanager.core.model.system.MerchantLog;
+
+public interface MerchantLogService extends
+ SalesManagerEntityService<Long, MerchantLog> {
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/system/MerchantLogServiceImpl.java b/sm-core/src/main/java/com/salesmanager/core/business/services/system/MerchantLogServiceImpl.java
new file mode 100644
index 0000000..e4c6f5d
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/system/MerchantLogServiceImpl.java
@@ -0,0 +1,38 @@
+package com.salesmanager.core.business.services.system;
+
+import javax.inject.Inject;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Service;
+
+import com.salesmanager.core.business.repositories.system.MerchantLogRepository;
+import com.salesmanager.core.business.services.common.generic.SalesManagerEntityServiceImpl;
+import com.salesmanager.core.model.system.MerchantLog;
+
+@Service("merchantLogService")
+public class MerchantLogServiceImpl extends
+ SalesManagerEntityServiceImpl<Long, MerchantLog> implements
+ MerchantLogService {
+
+ @SuppressWarnings("unused")
+ private static final Logger LOGGER = LoggerFactory.getLogger(MerchantLogServiceImpl.class);
+
+
+
+ private MerchantLogRepository merchantLogRepository;
+
+ @Inject
+ public MerchantLogServiceImpl(
+ MerchantLogRepository merchantLogRepository) {
+ super(merchantLogRepository);
+ this.merchantLogRepository = merchantLogRepository;
+ }
+
+
+
+
+
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/system/ModuleConfigurationService.java b/sm-core/src/main/java/com/salesmanager/core/business/services/system/ModuleConfigurationService.java
new file mode 100644
index 0000000..3bf2417
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/system/ModuleConfigurationService.java
@@ -0,0 +1,20 @@
+package com.salesmanager.core.business.services.system;
+
+import java.util.List;
+
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.business.services.common.generic.SalesManagerEntityService;
+import com.salesmanager.core.model.system.IntegrationModule;
+
+public interface ModuleConfigurationService extends
+ SalesManagerEntityService<Long, IntegrationModule> {
+
+ List<IntegrationModule> getIntegrationModules(String module);
+
+ IntegrationModule getByCode(String moduleCode);
+
+ void createOrUpdateModule(String json) throws ServiceException;
+
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/system/ModuleConfigurationServiceImpl.java b/sm-core/src/main/java/com/salesmanager/core/business/services/system/ModuleConfigurationServiceImpl.java
new file mode 100644
index 0000000..2334f34
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/system/ModuleConfigurationServiceImpl.java
@@ -0,0 +1,183 @@
+package com.salesmanager.core.business.services.system;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import javax.inject.Inject;
+
+import org.json.simple.JSONArray;
+import org.json.simple.JSONValue;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Service;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.business.repositories.system.ModuleConfigurationRepository;
+import com.salesmanager.core.business.services.common.generic.SalesManagerEntityServiceImpl;
+import com.salesmanager.core.business.services.reference.loader.IntegrationModulesLoader;
+import com.salesmanager.core.business.utils.CacheUtils;
+import com.salesmanager.core.model.system.IntegrationModule;
+import com.salesmanager.core.model.system.ModuleConfig;
+
+@Service("moduleConfigurationService")
+public class ModuleConfigurationServiceImpl extends
+ SalesManagerEntityServiceImpl<Long, IntegrationModule> implements
+ ModuleConfigurationService {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(ModuleConfigurationServiceImpl.class);
+
+ @Inject
+ private IntegrationModulesLoader integrationModulesLoader;
+
+
+
+ private ModuleConfigurationRepository moduleConfigurationRepository;
+
+ @Inject
+ private CacheUtils cache;
+
+ @Inject
+ public ModuleConfigurationServiceImpl(
+ ModuleConfigurationRepository moduleConfigurationRepository) {
+ super(moduleConfigurationRepository);
+ this.moduleConfigurationRepository = moduleConfigurationRepository;
+ }
+
+ @Override
+ public IntegrationModule getByCode(String moduleCode) {
+ return moduleConfigurationRepository.findByCode(moduleCode);
+ }
+
+
+ @SuppressWarnings({ "unchecked", "rawtypes" })
+ @Override
+ public List<IntegrationModule> getIntegrationModules(String module) {
+
+
+ List<IntegrationModule> modules = null;
+ try {
+
+ //CacheUtils cacheUtils = CacheUtils.getInstance();
+ modules = (List<IntegrationModule>) cache.getFromCache("INTEGRATION_M)" + module);
+ if(modules==null) {
+ modules = moduleConfigurationRepository.findByModule(module);
+ //set json objects
+ for(IntegrationModule mod : modules) {
+
+ String regions = mod.getRegions();
+ if(regions!=null) {
+ Object objRegions=JSONValue.parse(regions);
+ JSONArray arrayRegions=(JSONArray)objRegions;
+ Iterator i = arrayRegions.iterator();
+ while(i.hasNext()) {
+ mod.getRegionsSet().add((String)i.next());
+ }
+ }
+
+
+ String details = mod.getConfigDetails();
+ if(details!=null) {
+
+ //Map objects = mapper.readValue(config, Map.class);
+
+ Map<String,String> objDetails= (Map<String, String>) JSONValue.parse(details);
+ mod.setDetails(objDetails);
+
+
+ }
+
+
+ String configs = mod.getConfiguration();
+ if(configs!=null) {
+
+ //Map objects = mapper.readValue(config, Map.class);
+
+ Object objConfigs=JSONValue.parse(configs);
+ JSONArray arrayConfigs=(JSONArray)objConfigs;
+
+ Map<String,ModuleConfig> moduleConfigs = new HashMap<String,ModuleConfig>();
+
+ Iterator i = arrayConfigs.iterator();
+ while(i.hasNext()) {
+
+ Map values = (Map)i.next();
+ String env = (String)values.get("env");
+ ModuleConfig config = new ModuleConfig();
+ config.setScheme((String)values.get("scheme"));
+ config.setHost((String)values.get("host"));
+ config.setPort((String)values.get("port"));
+ config.setUri((String)values.get("uri"));
+ config.setEnv((String)values.get("env"));
+ if((String)values.get("config1")!=null) {
+ config.setConfig1((String)values.get("config1"));
+ }
+ if((String)values.get("config2")!=null) {
+ config.setConfig1((String)values.get("config2"));
+ }
+
+ moduleConfigs.put(env, config);
+
+
+
+ }
+
+ mod.setModuleConfigs(moduleConfigs);
+
+
+ }
+
+
+ }
+ cache.putInCache(modules, "INTEGRATION_M)" + module);
+ }
+
+ } catch (Exception e) {
+ LOGGER.error("getIntegrationModules()", e);
+ }
+ return modules;
+
+
+ }
+
+ @Override
+ public void createOrUpdateModule(String json) throws ServiceException {
+
+ ObjectMapper mapper = new ObjectMapper();
+
+ try {
+
+
+ @SuppressWarnings("rawtypes")
+ Map object = mapper.readValue(json, Map.class);
+
+ IntegrationModule module = integrationModulesLoader.loadModule(object);
+
+ if(module!=null) {
+ IntegrationModule m = this.getByCode(module.getCode());
+ if(m!=null) {
+ this.delete(m);
+ }
+ this.create(module);
+ }
+
+
+
+ } catch (Exception e) {
+ throw new ServiceException(e);
+ }
+
+
+
+
+ }
+
+
+
+
+
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/system/SystemConfigurationService.java b/sm-core/src/main/java/com/salesmanager/core/business/services/system/SystemConfigurationService.java
new file mode 100644
index 0000000..6e9ab40
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/system/SystemConfigurationService.java
@@ -0,0 +1,12 @@
+package com.salesmanager.core.business.services.system;
+
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.business.services.common.generic.SalesManagerEntityService;
+import com.salesmanager.core.model.system.SystemConfiguration;
+
+public interface SystemConfigurationService extends
+ SalesManagerEntityService<Long, SystemConfiguration> {
+
+ SystemConfiguration getByKey(String key) throws ServiceException;
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/system/SystemConfigurationServiceImpl.java b/sm-core/src/main/java/com/salesmanager/core/business/services/system/SystemConfigurationServiceImpl.java
new file mode 100644
index 0000000..bdb5e3b
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/system/SystemConfigurationServiceImpl.java
@@ -0,0 +1,34 @@
+package com.salesmanager.core.business.services.system;
+
+import javax.inject.Inject;
+
+import org.springframework.stereotype.Service;
+
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.business.repositories.system.SystemConfigurationRepository;
+import com.salesmanager.core.business.services.common.generic.SalesManagerEntityServiceImpl;
+import com.salesmanager.core.model.system.SystemConfiguration;
+
+@Service("systemConfigurationService")
+public class SystemConfigurationServiceImpl extends
+ SalesManagerEntityServiceImpl<Long, SystemConfiguration> implements
+ SystemConfigurationService {
+
+
+ private SystemConfigurationRepository systemConfigurationReposotory;
+
+ @Inject
+ public SystemConfigurationServiceImpl(
+ SystemConfigurationRepository systemConfigurationReposotory) {
+ super(systemConfigurationReposotory);
+ this.systemConfigurationReposotory = systemConfigurationReposotory;
+ }
+
+ public SystemConfiguration getByKey(String key) throws ServiceException {
+ return systemConfigurationReposotory.findByKey(key);
+ }
+
+
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/tax/TaxClassService.java b/sm-core/src/main/java/com/salesmanager/core/business/services/tax/TaxClassService.java
new file mode 100644
index 0000000..3d0da19
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/tax/TaxClassService.java
@@ -0,0 +1,19 @@
+package com.salesmanager.core.business.services.tax;
+
+import java.util.List;
+
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.business.services.common.generic.SalesManagerEntityService;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.tax.taxclass.TaxClass;
+
+public interface TaxClassService extends SalesManagerEntityService<Long, TaxClass> {
+
+ public List<TaxClass> listByStore(MerchantStore store) throws ServiceException;
+
+ TaxClass getByCode(String code) throws ServiceException;
+
+ TaxClass getByCode(String code, MerchantStore store)
+ throws ServiceException;
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/tax/TaxClassServiceImpl.java b/sm-core/src/main/java/com/salesmanager/core/business/services/tax/TaxClassServiceImpl.java
new file mode 100644
index 0000000..4dd4cc8
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/tax/TaxClassServiceImpl.java
@@ -0,0 +1,57 @@
+package com.salesmanager.core.business.services.tax;
+
+import java.util.List;
+
+import javax.inject.Inject;
+
+import org.springframework.stereotype.Service;
+
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.business.repositories.tax.TaxClassRepository;
+import com.salesmanager.core.business.services.common.generic.SalesManagerEntityServiceImpl;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.tax.taxclass.TaxClass;
+
+@Service("taxClassService")
+public class TaxClassServiceImpl extends SalesManagerEntityServiceImpl<Long, TaxClass>
+ implements TaxClassService {
+
+ private TaxClassRepository taxClassRepository;
+
+ @Inject
+ public TaxClassServiceImpl(TaxClassRepository taxClassRepository) {
+ super(taxClassRepository);
+
+ this.taxClassRepository = taxClassRepository;
+ }
+
+ @Override
+ public List<TaxClass> listByStore(MerchantStore store) throws ServiceException {
+ return taxClassRepository.findByStore(store.getId());
+ }
+
+ @Override
+ public TaxClass getByCode(String code) throws ServiceException {
+ return taxClassRepository.findByCode(code);
+ }
+
+ @Override
+ public TaxClass getByCode(String code, MerchantStore store) throws ServiceException {
+ return taxClassRepository.findByStoreAndCode(store.getId(), code);
+ }
+
+ @Override
+ public void delete(TaxClass taxClass) throws ServiceException {
+
+ TaxClass t = this.getById(taxClass.getId());
+ super.delete(t);
+
+ }
+
+ @Override
+ public TaxClass getById(Long id) {
+ return taxClassRepository.findOne(id);
+ }
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/tax/TaxRateService.java b/sm-core/src/main/java/com/salesmanager/core/business/services/tax/TaxRateService.java
new file mode 100644
index 0000000..8966086
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/tax/TaxRateService.java
@@ -0,0 +1,34 @@
+package com.salesmanager.core.business.services.tax;
+
+import java.util.List;
+
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.business.services.common.generic.SalesManagerEntityService;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.reference.country.Country;
+import com.salesmanager.core.model.reference.language.Language;
+import com.salesmanager.core.model.reference.zone.Zone;
+import com.salesmanager.core.model.tax.taxclass.TaxClass;
+import com.salesmanager.core.model.tax.taxrate.TaxRate;
+
+public interface TaxRateService extends SalesManagerEntityService<Long, TaxRate> {
+
+ public List<TaxRate> listByStore(MerchantStore store) throws ServiceException;
+
+ List<TaxRate> listByCountryZoneAndTaxClass(Country country, Zone zone,
+ TaxClass taxClass, MerchantStore store, Language language)
+ throws ServiceException;
+
+ List<TaxRate> listByCountryStateProvinceAndTaxClass(Country country,
+ String stateProvince, TaxClass taxClass, MerchantStore store,
+ Language language) throws ServiceException;
+
+ TaxRate getByCode(String code, MerchantStore store)
+ throws ServiceException;
+
+ List<TaxRate> listByStore(MerchantStore store, Language language)
+ throws ServiceException;
+
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/tax/TaxRateServiceImpl.java b/sm-core/src/main/java/com/salesmanager/core/business/services/tax/TaxRateServiceImpl.java
new file mode 100644
index 0000000..cc4a4f6
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/tax/TaxRateServiceImpl.java
@@ -0,0 +1,73 @@
+package com.salesmanager.core.business.services.tax;
+
+import java.util.List;
+
+import javax.inject.Inject;
+
+import org.springframework.stereotype.Service;
+
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.business.repositories.tax.TaxRateRepository;
+import com.salesmanager.core.business.services.common.generic.SalesManagerEntityServiceImpl;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.reference.country.Country;
+import com.salesmanager.core.model.reference.language.Language;
+import com.salesmanager.core.model.reference.zone.Zone;
+import com.salesmanager.core.model.tax.taxclass.TaxClass;
+import com.salesmanager.core.model.tax.taxrate.TaxRate;
+
+@Service("taxRateService")
+public class TaxRateServiceImpl extends SalesManagerEntityServiceImpl<Long, TaxRate>
+ implements TaxRateService {
+
+ private TaxRateRepository taxRateRepository;
+
+ @Inject
+ public TaxRateServiceImpl(TaxRateRepository taxRateRepository) {
+ super(taxRateRepository);
+ this.taxRateRepository = taxRateRepository;
+ }
+
+ @Override
+ public List<TaxRate> listByStore(MerchantStore store)
+ throws ServiceException {
+ return taxRateRepository.findByStore(store.getId());
+ }
+
+ @Override
+ public List<TaxRate> listByStore(MerchantStore store, Language language)
+ throws ServiceException {
+ return taxRateRepository.findByStoreAndLanguage(store.getId(), language.getId());
+ }
+
+
+ @Override
+ public TaxRate getByCode(String code, MerchantStore store)
+ throws ServiceException {
+ return taxRateRepository.findByStoreAndCode(store.getId(), code);
+ }
+
+ @Override
+ public List<TaxRate> listByCountryZoneAndTaxClass(Country country, Zone zone, TaxClass taxClass, MerchantStore store, Language language) throws ServiceException {
+ //return taxRateDao.listByCountryZoneAndTaxClass(country, zone, taxClass, store, language);
+ return taxRateRepository.findByMerchantAndZoneAndCountryAndLanguage(store.getId(), zone.getId(), country.getId(), language.getId());
+ }
+
+ @Override
+ public List<TaxRate> listByCountryStateProvinceAndTaxClass(Country country, String stateProvince, TaxClass taxClass, MerchantStore store, Language language) throws ServiceException {
+ //return taxRateDao.listByCountryStateProvinceAndTaxClass(country, stateProvince, taxClass, store, language);
+ return taxRateRepository.findByMerchantAndProvinceAndCountryAndLanguage(store.getId(), stateProvince, country.getId(), language.getId());
+ }
+
+ @Override
+ public void delete(TaxRate taxRate) throws ServiceException {
+
+ //TaxRate t = this.getById(taxRate.getId());
+ //super.delete(t);
+ taxRateRepository.delete(taxRate);
+
+ }
+
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/tax/TaxService.java b/sm-core/src/main/java/com/salesmanager/core/business/services/tax/TaxService.java
new file mode 100644
index 0000000..cbc762f
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/tax/TaxService.java
@@ -0,0 +1,47 @@
+package com.salesmanager.core.business.services.tax;
+
+import java.util.List;
+
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.model.customer.Customer;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.order.OrderSummary;
+import com.salesmanager.core.model.reference.language.Language;
+import com.salesmanager.core.model.tax.TaxConfiguration;
+import com.salesmanager.core.model.tax.TaxItem;
+
+
+public interface TaxService {
+
+ /**
+ * Retrieves tax configurations (TaxConfiguration) for a given MerchantStore
+ * @param store
+ * @return
+ * @throws ServiceException
+ */
+ TaxConfiguration getTaxConfiguration(MerchantStore store)
+ throws ServiceException;
+
+ /**
+ * Saves ShippingConfiguration to MerchantConfiguration table
+ * @param shippingConfiguration
+ * @param store
+ * @throws ServiceException
+ */
+ void saveTaxConfiguration(TaxConfiguration shippingConfiguration,
+ MerchantStore store) throws ServiceException;
+
+ /**
+ * Calculates tax over an OrderSummary
+ * @param orderSummary
+ * @param customer
+ * @param store
+ * @param locale
+ * @return
+ * @throws ServiceException
+ */
+ List<TaxItem> calculateTax(OrderSummary orderSummary, Customer customer,
+ MerchantStore store, Language language) throws ServiceException;
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/user/GroupService.java b/sm-core/src/main/java/com/salesmanager/core/business/services/user/GroupService.java
new file mode 100644
index 0000000..5f2bc0c
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/user/GroupService.java
@@ -0,0 +1,18 @@
+package com.salesmanager.core.business.services.user;
+
+import java.util.List;
+import java.util.Set;
+
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.business.services.common.generic.SalesManagerEntityService;
+import com.salesmanager.core.model.user.Group;
+import com.salesmanager.core.model.user.GroupType;
+
+
+public interface GroupService extends SalesManagerEntityService<Integer, Group> {
+
+
+ List<Group> listGroup(GroupType groupType) throws ServiceException;
+ List<Group> listGroupByIds(Set<Integer> ids) throws ServiceException;
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/user/GroupServiceImpl.java b/sm-core/src/main/java/com/salesmanager/core/business/services/user/GroupServiceImpl.java
new file mode 100644
index 0000000..525388f
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/user/GroupServiceImpl.java
@@ -0,0 +1,50 @@
+package com.salesmanager.core.business.services.user;
+
+import java.util.List;
+import java.util.Set;
+
+import javax.inject.Inject;
+
+import org.springframework.stereotype.Service;
+
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.business.repositories.user.GroupRepository;
+import com.salesmanager.core.business.services.common.generic.SalesManagerEntityServiceImpl;
+import com.salesmanager.core.model.user.Group;
+import com.salesmanager.core.model.user.GroupType;
+
+
+@Service("groupService")
+public class GroupServiceImpl extends
+ SalesManagerEntityServiceImpl<Integer, Group> implements GroupService {
+
+ GroupRepository groupRepository;
+
+
+ @Inject
+ public GroupServiceImpl(GroupRepository groupRepository) {
+ super(groupRepository);
+ this.groupRepository = groupRepository;
+
+ }
+
+
+ @Override
+ public List<Group> listGroup(GroupType groupType) throws ServiceException {
+ try {
+ return groupRepository.findByType(groupType);
+ } catch (Exception e) {
+ throw new ServiceException(e);
+ }
+ }
+
+ public List<Group> listGroupByIds(Set<Integer> ids) throws ServiceException {
+ try {
+ return groupRepository.findByIds(ids);
+ } catch (Exception e) {
+ throw new ServiceException(e);
+ }
+ }
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/user/PermissionService.java b/sm-core/src/main/java/com/salesmanager/core/business/services/user/PermissionService.java
new file mode 100644
index 0000000..2f2532b
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/user/PermissionService.java
@@ -0,0 +1,33 @@
+package com.salesmanager.core.business.services.user;
+
+import java.util.List;
+
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.business.services.common.generic.SalesManagerEntityService;
+import com.salesmanager.core.model.user.Group;
+import com.salesmanager.core.model.user.Permission;
+import com.salesmanager.core.model.user.PermissionCriteria;
+import com.salesmanager.core.model.user.PermissionList;
+
+
+
+public interface PermissionService extends SalesManagerEntityService<Integer, Permission> {
+
+ List<Permission> getByName();
+
+ List<Permission> listPermission() throws ServiceException;
+
+ Permission getById(Integer permissionId);
+
+
+// void deletePermission(Permission permission) throws ServiceException;
+
+ List<Permission> getPermissions(List<Integer> groupIds) throws ServiceException;
+
+ void deletePermission(Permission permission) throws ServiceException;
+
+ PermissionList listByCriteria(PermissionCriteria criteria) throws ServiceException ;
+
+ void removePermission(Permission permission, Group group) throws ServiceException;
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/user/PermissionServiceImpl.java b/sm-core/src/main/java/com/salesmanager/core/business/services/user/PermissionServiceImpl.java
new file mode 100644
index 0000000..f5a095f
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/user/PermissionServiceImpl.java
@@ -0,0 +1,90 @@
+package com.salesmanager.core.business.services.user;
+
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import javax.inject.Inject;
+
+import org.springframework.stereotype.Service;
+
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.business.repositories.user.PermissionRepository;
+import com.salesmanager.core.business.services.common.generic.SalesManagerEntityServiceImpl;
+import com.salesmanager.core.model.user.Group;
+import com.salesmanager.core.model.user.Permission;
+import com.salesmanager.core.model.user.PermissionCriteria;
+import com.salesmanager.core.model.user.PermissionList;
+
+
+
+@Service("permissionService")
+public class PermissionServiceImpl extends
+ SalesManagerEntityServiceImpl<Integer, Permission> implements
+ PermissionService {
+
+ private PermissionRepository permissionRepository;
+
+
+ @Inject
+ public PermissionServiceImpl(PermissionRepository permissionRepository) {
+ super(permissionRepository);
+ this.permissionRepository = permissionRepository;
+
+ }
+
+ @Override
+ public List<Permission> getByName() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ @Override
+ public Permission getById(Integer permissionId) {
+ return permissionRepository.findById(permissionId);
+
+ }
+
+
+ @Override
+ public void deletePermission(Permission permission) throws ServiceException {
+ permission = this.getById(permission.getId());//Prevents detached entity error
+ permission.setGroups(null);
+
+ this.delete(permission);
+ }
+
+
+ @SuppressWarnings("unchecked")
+ @Override
+ public List<Permission> getPermissions(List<Integer> groupIds)
+ throws ServiceException {
+ @SuppressWarnings({ "unchecked", "rawtypes" })
+ Set ids = new HashSet(groupIds);
+ return permissionRepository.findByGroups(ids);
+ }
+
+ @Override
+ public PermissionList listByCriteria(PermissionCriteria criteria)
+ throws ServiceException {
+ return permissionRepository.listByCriteria(criteria);
+ }
+
+ @Override
+ public void removePermission(Permission permission,Group group) throws ServiceException {
+ permission = this.getById(permission.getId());//Prevents detached entity error
+
+ permission.getGroups().remove(group);
+
+
+ }
+
+ @Override
+ public List<Permission> listPermission() throws ServiceException {
+ return permissionRepository.findAll();
+ }
+
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/user/UserService.java b/sm-core/src/main/java/com/salesmanager/core/business/services/user/UserService.java
new file mode 100644
index 0000000..6bd4a35
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/user/UserService.java
@@ -0,0 +1,29 @@
+package com.salesmanager.core.business.services.user;
+
+import java.util.List;
+
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.business.services.common.generic.SalesManagerEntityService;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.user.User;
+
+
+
+public interface UserService extends SalesManagerEntityService<Long, User> {
+
+ User getByUserName(String userName) throws ServiceException;
+
+ List<User> listUser() throws ServiceException;
+
+ /**
+ * Create or update a User
+ * @param user
+ * @throws ServiceException
+ */
+ void saveOrUpdate(User user) throws ServiceException;
+
+ List<User> listByStore(MerchantStore store) throws ServiceException;
+
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/user/UserServiceImpl.java b/sm-core/src/main/java/com/salesmanager/core/business/services/user/UserServiceImpl.java
new file mode 100644
index 0000000..cebfebe
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/user/UserServiceImpl.java
@@ -0,0 +1,80 @@
+package com.salesmanager.core.business.services.user;
+
+import java.util.List;
+
+import javax.inject.Inject;
+
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.business.repositories.user.UserRepository;
+import com.salesmanager.core.business.services.common.generic.SalesManagerEntityServiceImpl;
+import com.salesmanager.core.business.services.system.EmailService;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.user.User;
+
+
+
+
+public class UserServiceImpl extends SalesManagerEntityServiceImpl<Long, User>
+ implements UserService {
+
+
+ private UserRepository userRepository;
+
+ @Inject
+ public UserServiceImpl(UserRepository userRepository) {
+ super(userRepository);
+ this.userRepository = userRepository;
+
+ }
+
+ @Inject
+ private EmailService emailService;
+
+ @Override
+ public User getByUserName(String userName) throws ServiceException {
+
+ return userRepository.findByUserName(userName);
+
+ }
+
+ @Override
+ public void delete(User user) throws ServiceException {
+
+ User u = this.getById(user.getId());
+ super.delete(u);
+
+ }
+
+ @Override
+ public List<User> listUser() throws ServiceException {
+ try {
+ return userRepository.findAll();
+ } catch (Exception e) {
+ throw new ServiceException(e);
+ }
+ }
+
+ @Override
+ public List<User> listByStore(MerchantStore store) throws ServiceException {
+ try {
+ return userRepository.findByStore(store.getId());
+ } catch (Exception e) {
+ throw new ServiceException(e);
+ }
+ }
+
+
+ @Override
+ public void saveOrUpdate(User user) throws ServiceException {
+
+/* if(user.getId()==null || user.getId().longValue()==0) {
+ userDao.save(user);
+ } else {
+ userDao.update(user);
+ }*/
+
+ userRepository.save(user);
+
+ }
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/user/UserServiceLDAPImpl.java b/sm-core/src/main/java/com/salesmanager/core/business/services/user/UserServiceLDAPImpl.java
new file mode 100644
index 0000000..575f1ad
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/user/UserServiceLDAPImpl.java
@@ -0,0 +1,99 @@
+package com.salesmanager.core.business.services.user;
+
+import java.util.List;
+
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.user.User;
+
+
+
+public class UserServiceLDAPImpl implements UserService {
+
+ @Override
+ public void save(User entity) throws ServiceException {
+ throw new ServiceException("Not implemented");
+
+ }
+
+ @Override
+ public void update(User entity) throws ServiceException {
+ throw new ServiceException("Not implemented");
+
+ }
+
+ @Override
+ public void create(User entity) throws ServiceException {
+ throw new ServiceException("Not implemented");
+
+ }
+
+ @Override
+ public void delete(User entity) throws ServiceException {
+ throw new ServiceException("Not implemented");
+
+ }
+
+
+
+ @Override
+ public User getById(Long id) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public List<User> list() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+
+ @Override
+ public Long count() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+
+
+
+ @Override
+ public User getByUserName(String userName) throws ServiceException {
+ // TODO Auto-generated method stub
+ throw new ServiceException("Not implemented");
+ }
+
+ @Override
+ public List<User> listUser() throws ServiceException {
+ // TODO Auto-generated method stub
+ throw new ServiceException("Not implemented");
+ }
+
+ @Override
+ public void saveOrUpdate(User user) throws ServiceException {
+ throw new ServiceException("Not implemented");
+
+ }
+
+ @Override
+ public List<User> listByStore(MerchantStore store)
+ throws ServiceException {
+ // TODO Auto-generated method stub
+ throw new ServiceException("Not implemented");
+ }
+
+ /* (non-Javadoc)
+ * @see com.salesmanager.core.business.services.common.generic.SalesManagerEntityService#flush()
+ */
+ @Override
+ public void flush() {
+ // TODO Auto-generated method stub
+
+ }
+
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/utils/AbstractDataPopulator.java b/sm-core/src/main/java/com/salesmanager/core/business/utils/AbstractDataPopulator.java
new file mode 100644
index 0000000..e5a641f
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/utils/AbstractDataPopulator.java
@@ -0,0 +1,41 @@
+/**
+ *
+ */
+package com.salesmanager.core.business.utils;
+
+import java.util.Locale;
+
+import com.salesmanager.core.business.exception.ConversionException;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.reference.language.Language;
+
+
+/**
+ * @author Umesh A
+ *
+ */
+public abstract class AbstractDataPopulator<Source,Target> implements DataPopulator<Source, Target>
+{
+
+
+
+ private Locale locale;
+
+ public void setLocale(Locale locale) {
+ this.locale = locale;
+ }
+ public Locale getLocale() {
+ return locale;
+ }
+
+
+ @Override
+ public Target populate(Source source, MerchantStore store, Language language) throws ConversionException{
+ return populate(source,createTarget(), store, language);
+ }
+
+ protected abstract Target createTarget();
+
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/utils/ajax/AjaxPageableResponse.java b/sm-core/src/main/java/com/salesmanager/core/business/utils/ajax/AjaxPageableResponse.java
new file mode 100644
index 0000000..8b07222
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/utils/ajax/AjaxPageableResponse.java
@@ -0,0 +1,108 @@
+package com.salesmanager.core.business.utils.ajax;
+
+import java.util.Map;
+import java.util.Set;
+
+import org.json.simple.JSONObject;
+
+public class AjaxPageableResponse extends AjaxResponse {
+
+
+ private int startRow;
+ public int getStartRow() {
+ return startRow;
+ }
+
+
+
+ public void setStartRow(int startRow) {
+ this.startRow = startRow;
+ }
+
+
+
+ private int endRow;
+ private int totalRow;
+
+ protected String getPageInfo() {
+
+ StringBuilder returnString = new StringBuilder();
+ returnString.append("\"startRow\"").append(":");
+ returnString.append(this.startRow).append(",");
+ returnString.append("\"endRow\"").append(":").append(this.endRow).append(",");
+ returnString.append("\"totalRows\"").append(":").append(super.getData().size());
+ return returnString.toString();
+
+ }
+
+
+
+ @SuppressWarnings("unchecked")
+ @Override
+ public String toJSONString() {
+
+ StringBuilder returnString = new StringBuilder();
+
+ returnString.append(getJsonInfo()).append(",");
+ returnString.append(getPageInfo());
+
+ if(this.getData().size()>0) {
+ StringBuilder dataEntries = null;
+ int count = 0;
+ for(Map keyValue : this.getData()) {
+ if(dataEntries == null) {
+ dataEntries = new StringBuilder();
+ }
+ JSONObject data = new JSONObject();
+ Set<String> keys = keyValue.keySet();
+ for(String key : keys) {
+ data.put(key, keyValue.get(key));
+ }
+ String dataField = data.toJSONString();
+ dataEntries.append(dataField);
+ if(count<super.getData().size()-1) {
+ dataEntries.append(",");
+ }
+ count ++;
+ }
+
+ returnString.append(",").append("\"data\"").append(":[");
+ if(dataEntries!=null) {
+ returnString.append(dataEntries.toString());
+ }
+ returnString.append("]");
+ }
+ returnString.append("}}");
+
+
+ return returnString.toString();
+
+
+
+ }
+
+
+
+ public int getEndRow() {
+ return endRow;
+ }
+
+
+
+ public void setEndRow(int endRow) {
+ this.endRow = endRow;
+ }
+
+
+
+ public int getTotalRow() {
+ return totalRow;
+ }
+
+
+
+ public void setTotalRow(int totalRow) {
+ this.totalRow = totalRow;
+ }
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/utils/ajax/AjaxResponse.java b/sm-core/src/main/java/com/salesmanager/core/business/utils/ajax/AjaxResponse.java
new file mode 100644
index 0000000..98cd586
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/utils/ajax/AjaxResponse.java
@@ -0,0 +1,186 @@
+package com.salesmanager.core.business.utils.ajax;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.apache.commons.collections4.CollectionUtils;
+import org.json.simple.JSONAware;
+import org.json.simple.JSONObject;
+
+public class AjaxResponse implements JSONAware {
+
+ public final static int RESPONSE_STATUS_SUCCESS=0;
+ public final static int RESPONSE_STATUS_FAIURE=-1;
+ public final static int RESPONSE_STATUS_VALIDATION_FAILED=-2;
+ public final static int RESPONSE_OPERATION_COMPLETED=9999;
+ public final static int CODE_ALREADY_EXIST=9998;
+
+ private int status;
+ private List<Map<String,String>> data = new ArrayList<Map<String,String>>();
+ private Map<String,String> dataMap = new HashMap<String,String>();
+ private Map<String,String> validationMessages = new HashMap<String,String>();
+ public Map<String, String> getValidationMessages() {
+ return validationMessages;
+ }
+ public void setValidationMessages(Map<String, String> validationMessages) {
+ this.validationMessages = validationMessages;
+ }
+ public int getStatus() {
+ return status;
+ }
+ public void setStatus(int status) {
+ this.status = status;
+ }
+ protected List<Map<String,String>> getData() {
+ return data;
+ }
+
+ public void addDataEntry(Map<String,String> dataEntry) {
+ this.data.add(dataEntry);
+ }
+
+ public void addEntry(String key, String value) {
+ dataMap.put(key, value);
+ }
+
+
+ public void setErrorMessage(Throwable t) {
+ this.setStatusMessage(t.getMessage());
+ }
+
+ public void setErrorString(String t) {
+ this.setStatusMessage(t);
+ }
+
+
+ public void addValidationMessage(String fieldName, String message) {
+ this.validationMessages.put(fieldName, message);
+ }
+
+ private String statusMessage = null;
+
+
+ public String getStatusMessage() {
+ return statusMessage;
+ }
+ public void setStatusMessage(String statusMessage) {
+ this.statusMessage = statusMessage;
+ }
+
+
+ protected String getJsonInfo() {
+
+ StringBuilder returnString = new StringBuilder();
+ returnString.append("{");
+ returnString.append("\"response\"").append(":");
+ returnString.append("{");
+ returnString.append("\"status\"").append(":").append(this.getStatus());
+ if(this.getStatusMessage()!=null && this.getStatus()!=0) {
+ returnString.append(",").append("\"statusMessage\"").append(":\"").append(JSONObject.escape(this.getStatusMessage())).append("\"");
+ }
+ return returnString.toString();
+
+ }
+
+ @SuppressWarnings({ "rawtypes", "unchecked" })
+ @Override
+ public String toJSONString() {
+ StringBuilder returnString = new StringBuilder();
+
+ returnString.append(getJsonInfo());
+
+ if(this.getData().size()>0) {
+ StringBuilder dataEntries = null;
+ int count = 0;
+ for(Map keyValue : this.getData()) {
+ if(dataEntries == null) {
+ dataEntries = new StringBuilder();
+ }
+ JSONObject data = new JSONObject();
+ Set<String> keys = keyValue.keySet();
+ for(String key : keys) {
+ data.put(key, keyValue.get(key));
+ }
+ String dataField = data.toJSONString();
+ dataEntries.append(dataField);
+ if(count<this.data.size()-1) {
+ dataEntries.append(",");
+ }
+ count ++;
+ }
+
+ returnString.append(",").append("\"data\"").append(":[");
+ if(dataEntries!=null) {
+ returnString.append(dataEntries.toString());
+ }
+ returnString.append("]");
+ }
+
+ if(this.getDataMap().size()>0) {
+ StringBuilder dataEntries = null;
+ int count = 0;
+ for(String key : this.getDataMap().keySet()) {
+ if(dataEntries == null) {
+ dataEntries = new StringBuilder();
+ }
+
+ dataEntries.append("\"").append(key).append("\"");
+ dataEntries.append(":");
+ dataEntries.append("\"").append(this.getDataMap().get(key)).append("\"");
+
+ if(count<this.getDataMap().size()-1) {
+ dataEntries.append(",");
+ }
+ count ++;
+ }
+
+ if(dataEntries!=null) {
+ returnString.append(",").append(dataEntries.toString());
+ }
+ }
+
+ if(CollectionUtils.isNotEmpty(this.getValidationMessages().values())) {
+ StringBuilder dataEntries = null;
+ int count = 0;
+ for(String key : this.getValidationMessages().keySet()) {
+ if(dataEntries == null) {
+ dataEntries = new StringBuilder();
+ }
+ dataEntries.append("{");
+ dataEntries.append("\"field\":\"").append(key).append("\"");
+ dataEntries.append(",");
+ dataEntries.append("\"message\":\"").append(this.getValidationMessages().get(key)).append("\"");
+ dataEntries.append("}");
+
+ if(count<this.getValidationMessages().size()-1) {
+ dataEntries.append(",");
+ }
+ count ++;
+ }
+
+ returnString.append(",").append("\"validations\"").append(":[");
+ if(dataEntries!=null) {
+ returnString.append(dataEntries.toString());
+ }
+ returnString.append("]");
+
+ }
+
+ returnString.append("}}");
+
+
+ return returnString.toString();
+
+
+ }
+ public Map<String,String> getDataMap() {
+ return dataMap;
+ }
+ public void setDataMap(Map<String,String> dataMap) {
+ this.dataMap = dataMap;
+ }
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/utils/ApplicationContextListenerUtils.java b/sm-core/src/main/java/com/salesmanager/core/business/utils/ApplicationContextListenerUtils.java
new file mode 100644
index 0000000..6dcec0b
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/utils/ApplicationContextListenerUtils.java
@@ -0,0 +1,20 @@
+package com.salesmanager.core.business.utils;
+
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.ApplicationListener;
+import org.springframework.context.event.ContextStartedEvent;
+
+import com.salesmanager.core.business.services.search.SearchService;
+
+public class ApplicationContextListenerUtils implements ApplicationListener<ContextStartedEvent> {
+
+ @Override
+ public void onApplicationEvent(ContextStartedEvent event) {
+ ApplicationContext applicationContext = event.getApplicationContext();
+ /** init search service **/
+ SearchService searchService = (SearchService)applicationContext.getBean("productSearchService");
+ searchService.initService();
+
+ }
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/utils/CacheUtils.java b/sm-core/src/main/java/com/salesmanager/core/business/utils/CacheUtils.java
new file mode 100644
index 0000000..8b48e3d
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/utils/CacheUtils.java
@@ -0,0 +1,112 @@
+package com.salesmanager.core.business.utils;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.inject.Inject;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.cache.Cache;
+import org.springframework.cache.Cache.ValueWrapper;
+import org.springframework.stereotype.Component;
+
+import com.salesmanager.core.model.merchant.MerchantStore;
+
+@Component("cache")
+public class CacheUtils {
+
+
+ @Inject
+ @Qualifier("serviceCache")
+ private Cache cache;
+
+
+ public final static String REFERENCE_CACHE = "REF";
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(CacheUtils.class);
+
+ private final static String KEY_DELIMITER = "_";
+
+
+
+ public void putInCache(Object object, String keyName) throws Exception {
+
+ cache.put(keyName, object);
+
+ }
+
+
+ public Object getFromCache(String keyName) throws Exception {
+
+ ValueWrapper vw = cache.get(keyName);
+ if(vw!=null) {
+ return vw.get();
+ }
+
+ return null;
+
+ }
+
+ public List<String> getCacheKeys(MerchantStore store) throws Exception {
+
+ net.sf.ehcache.Cache cacheImpl = (net.sf.ehcache.Cache) cache.getNativeCache();
+ List<String> returnKeys = new ArrayList<String>();
+ for (Object key: cacheImpl.getKeys()) {
+
+
+ try {
+ String sKey = (String)key;
+
+ // a key should be <storeId>_<rest of the key>
+ int delimiterPosition = sKey.indexOf(KEY_DELIMITER);
+
+ if(delimiterPosition>0 && Character.isDigit(sKey.charAt(0))) {
+
+ String keyRemaining = sKey.substring(delimiterPosition+1);
+ returnKeys.add(keyRemaining);
+
+ }
+
+ } catch (Exception e) {
+ LOGGER.equals("key " + key + " cannot be converted to a String or parsed");
+ }
+ }
+
+ return returnKeys;
+ }
+
+ public void shutDownCache() throws Exception {
+
+ }
+
+ public void removeFromCache(String keyName) throws Exception {
+ cache.evict(keyName);
+ }
+
+ public void removeAllFromCache(MerchantStore store) throws Exception {
+ net.sf.ehcache.Cache cacheImpl = (net.sf.ehcache.Cache) cache.getNativeCache();
+ for (Object key: cacheImpl.getKeys()) {
+ try {
+ String sKey = (String)key;
+
+ // a key should be <storeId>_<rest of the key>
+ int delimiterPosition = sKey.indexOf(KEY_DELIMITER);
+
+ if(delimiterPosition>0 && Character.isDigit(sKey.charAt(0))) {
+
+
+ cache.evict(key);
+
+ }
+
+ } catch (Exception e) {
+ LOGGER.equals("key " + key + " cannot be converted to a String or parsed");
+ }
+ }
+ }
+
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/utils/CoreConfiguration.java b/sm-core/src/main/java/com/salesmanager/core/business/utils/CoreConfiguration.java
new file mode 100644
index 0000000..d8809a4
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/utils/CoreConfiguration.java
@@ -0,0 +1,46 @@
+package com.salesmanager.core.business.utils;
+
+import java.util.Properties;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Component;
+
+@Component
+public class CoreConfiguration {
+
+
+ public Properties properties = new Properties();
+ private static final Logger LOGGER = LoggerFactory.getLogger(CoreConfiguration.class);
+
+ public Properties getProperties() {
+ return properties;
+ }
+
+ public void setProperties(Properties properties) {
+ this.properties = properties;
+ }
+
+ public CoreConfiguration() {}
+
+ public String getProperty(String propertyKey) {
+
+ return properties.getProperty(propertyKey);
+
+
+ }
+
+ public String getProperty(String propertyKey, String defaultValue) {
+
+ String prop = defaultValue;
+ try {
+ prop = properties.getProperty(propertyKey);
+ } catch(Exception e) {
+ LOGGER.warn("Cannot find property " + propertyKey);
+ }
+ return prop;
+
+
+ }
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/utils/CreditCardUtils.java b/sm-core/src/main/java/com/salesmanager/core/business/utils/CreditCardUtils.java
new file mode 100644
index 0000000..01cafbc
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/utils/CreditCardUtils.java
@@ -0,0 +1,32 @@
+package com.salesmanager.core.business.utils;
+
+
+public class CreditCardUtils {
+
+
+ public static final int MASTERCARD = 0, VISA = 1;
+ public static final int AMEX = 2, DISCOVER = 3, DINERS = 4;
+
+ public static String maskCardNumber(String clearcardnumber)
+ throws Exception {
+
+ if (clearcardnumber.length() < 10) {
+ throw new Exception("Invalid number of digits");
+ }
+
+ int length = clearcardnumber.length();
+
+ String prefix = clearcardnumber.substring(0, 4);
+ String suffix = clearcardnumber.substring(length - 4);
+
+ StringBuffer mask = new StringBuffer();
+ mask.append(prefix).append("XXXXXXXXXX").append(suffix);
+
+ return mask.toString();
+ }
+
+
+
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/utils/DataPopulator.java b/sm-core/src/main/java/com/salesmanager/core/business/utils/DataPopulator.java
new file mode 100644
index 0000000..21da0b2
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/utils/DataPopulator.java
@@ -0,0 +1,22 @@
+/**
+ *
+ */
+package com.salesmanager.core.business.utils;
+
+import com.salesmanager.core.business.exception.ConversionException;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.reference.language.Language;
+
+/**
+ * @author Umesh A
+ *
+ */
+public interface DataPopulator<Source,Target>
+{
+
+
+ public Target populate(Source source,Target target, MerchantStore store, Language language) throws ConversionException;
+ public Target populate(Source source, MerchantStore store, Language language) throws ConversionException;
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/utils/DataUtils.java b/sm-core/src/main/java/com/salesmanager/core/business/utils/DataUtils.java
new file mode 100644
index 0000000..124a728
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/utils/DataUtils.java
@@ -0,0 +1,102 @@
+package com.salesmanager.core.business.utils;
+
+import java.math.BigDecimal;
+
+import com.salesmanager.core.constants.MeasureUnit;
+import com.salesmanager.core.model.merchant.MerchantStore;
+
+public class DataUtils {
+
+ /**
+ * Removes dashes
+ * @param postalCode
+ * @return
+ */
+ public static String trimPostalCode(String postalCode) {
+
+ String pc = postalCode.replaceAll("[^a-zA-Z0-9]", "");
+
+ return pc;
+
+ }
+
+
+ /**
+ * Get the measure according to the appropriate measure base. If the measure
+ * configured in store is LB and it needs KG then the appropriate
+ * calculation is done
+ *
+ * @param weight
+ * @param store
+ * @param base
+ * @return
+ */
+ public static double getWeight(double weight, MerchantStore store,
+ String base) {
+
+ double weightConstant = 2.2;
+ if (base.equals(MeasureUnit.LB.name())) {
+ if (store.getWeightunitcode().equals(MeasureUnit.LB.name())) {
+ return new BigDecimal(String.valueOf(weight)).setScale(2,
+ BigDecimal.ROUND_HALF_UP).doubleValue();
+ } else {// pound = kilogram
+ double answer = weight * weightConstant;
+ BigDecimal w = new BigDecimal(answer);
+ return w.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
+ }
+ } else {// need KG
+ if (store.getWeightunitcode().equals(MeasureUnit.KG.name())) {
+ return new BigDecimal(String.valueOf(weight)).setScale(2,
+ BigDecimal.ROUND_HALF_UP).doubleValue();
+ } else {
+
+ double answer = weight / weightConstant;
+ BigDecimal w = new BigDecimal(answer);
+ return w.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
+
+ }
+ }
+ }
+
+ /**
+ * Get the measure according to the appropriate measure base. If the measure
+ * configured in store is IN and it needs CM or vise versa then the
+ * appropriate calculation is done
+ *
+ * @param weight
+ * @param store
+ * @param base
+ * @return
+ */
+ public static double getMeasure(double measure, MerchantStore store,
+ String base) {
+
+ if (base.equals(MeasureUnit.IN.name())) {
+ if (store.getSeizeunitcode().equals(MeasureUnit.IN.name())) {
+ return new BigDecimal(String.valueOf(measure)).setScale(2,
+ BigDecimal.ROUND_HALF_UP).doubleValue();
+ } else {// centimeter (inch to centimeter)
+ double measureConstant = 2.54;
+
+ double answer = measure * measureConstant;
+ BigDecimal w = new BigDecimal(answer);
+ return w.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
+
+ }
+ } else {// need CM
+ if (store.getSeizeunitcode().equals(MeasureUnit.CM.name())) {
+ return new BigDecimal(String.valueOf(measure)).setScale(2)
+ .doubleValue();
+ } else {// in (centimeter to inch)
+ double measureConstant = 0.39;
+
+ double answer = measure * measureConstant;
+ BigDecimal w = new BigDecimal(answer);
+ return w.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
+
+ }
+ }
+
+ }
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/utils/EntityPopulator.java b/sm-core/src/main/java/com/salesmanager/core/business/utils/EntityPopulator.java
new file mode 100644
index 0000000..7df24cf
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/utils/EntityPopulator.java
@@ -0,0 +1,18 @@
+/**
+ *
+ */
+package com.salesmanager.core.business.utils;
+
+import com.salesmanager.core.business.exception.ConversionException;
+import com.salesmanager.core.model.merchant.MerchantStore;
+
+/**
+ * @author Umesh A
+ *
+ */
+public interface EntityPopulator<Source,Target>
+{
+
+ public Target populateToEntity(Source source, Target target, MerchantStore store) throws ConversionException;
+ public Target populateToEntity(Source source) throws ConversionException;
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/utils/ProductImageCropUtils.java b/sm-core/src/main/java/com/salesmanager/core/business/utils/ProductImageCropUtils.java
new file mode 100644
index 0000000..20e0d02
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/utils/ProductImageCropUtils.java
@@ -0,0 +1,232 @@
+package com.salesmanager.core.business.utils;
+
+import java.awt.Rectangle;
+import java.awt.image.BufferedImage;
+import java.io.File;
+import java.io.IOException;
+import java.net.FileNameMap;
+import java.net.URLConnection;
+
+import javax.imageio.ImageIO;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class ProductImageCropUtils {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(ProductImageCropUtils.class);
+
+ private boolean cropeable = true;
+
+ private int cropeBaseline = 0;// o is width, 1 is height
+
+ private int getCropeBaseline() {
+ return cropeBaseline;
+ }
+
+
+
+ private double cropAreaWidth = 0;
+ private double cropAreaHeight = 0;
+
+ //private InputStream originalFile = null;
+ private BufferedImage originalFile = null;
+
+
+
+ public ProductImageCropUtils(BufferedImage file, int largeImageWidth, int largeImageHeight) {
+
+
+
+ try {
+
+
+ this.originalFile = file;
+
+ /** Original Image **/
+ // get original image size
+
+ int width = originalFile.getWidth();
+ int height = originalFile.getHeight();
+
+ /*** determine if image can be cropped ***/
+ determineCropeable(width, largeImageWidth, height, largeImageHeight);
+
+ /*** determine crop area calculation baseline ***/
+ //this.determineBaseline(width, height);
+
+ determineCropArea(width, largeImageWidth, height, largeImageHeight);
+
+ } catch (Exception e) {
+ LOGGER.error("Image Utils error in constructor", e);
+ }
+
+
+
+
+
+
+ }
+
+
+ private void determineCropeable(int width, int specificationsWidth,
+ int height, int specificationsHeight) {
+ /*** determine if image can be cropped ***/
+ // height
+ int y = height - specificationsHeight;
+ // width
+ int x = width - specificationsWidth;
+
+ if (x < 0 || y < 0) {
+ setCropeable(false);
+ }
+
+ if (x == 0 && y == 0) {
+ setCropeable(false);
+ }
+
+
+ if((height % specificationsHeight) == 0 && (width % specificationsWidth) == 0 ) {
+ setCropeable(false);
+ }
+
+
+
+ }
+
+
+ private void determineCropArea(int width, int specificationsWidth,
+ int height, int specificationsHeight) {
+
+ cropAreaWidth = specificationsWidth;
+ cropAreaHeight = specificationsHeight;
+
+
+ double factorWidth = new Integer(width).doubleValue() / new Integer(specificationsWidth).doubleValue();
+ double factorHeight = new Integer(height).doubleValue() / new Integer(specificationsHeight).doubleValue();
+
+ double factor = factorWidth;
+
+ if(factorWidth>factorHeight) {
+ factor = factorHeight;
+ }
+
+
+ // crop factor
+/* double factor = 1;
+ if (this.getCropeBaseline() == 0) {// width
+ factor = new Integer(width).doubleValue()
+ / new Integer(specificationsWidth).doubleValue();
+ } else {// height
+ factor = new Integer(height).doubleValue()
+ / new Integer(specificationsHeight).doubleValue();
+ }*/
+
+ double w = factor * specificationsWidth;
+ double h = factor * specificationsHeight;
+
+ if(w==h) {
+ setCropeable(false);
+ }
+
+
+ cropAreaWidth = w;
+
+ if(cropAreaWidth > width)
+ cropAreaWidth = width;
+
+ cropAreaHeight = h;
+
+ if(cropAreaHeight > height)
+ cropAreaHeight = height;
+
+ /*
+ * if(factor>1) { //determine croping section for(double
+ * i=factor;i>1;i--) { //multiply specifications by factor int newWidth
+ * = (int)(i * specificationsWidth); int newHeight = (int)(i *
+ * specificationsHeight); //check if new size >= original image
+ * if(width>=newWidth && height>=newHeight) { cropAreaWidth = newWidth;
+ * cropAreaHeight = newHeight; break; } } }
+ */
+
+ }
+
+
+ public File getCroppedImage(File originalFile, int x1, int y1, int width,
+ int height) throws Exception {
+
+ if(!this.cropeable) {
+ return originalFile;
+ }
+
+ FileNameMap fileNameMap = URLConnection.getFileNameMap();
+ String contentType = fileNameMap.getContentTypeFor(originalFile.getName());
+
+ String extension = contentType.substring(contentType.indexOf("/"),contentType.length());
+
+ BufferedImage image = ImageIO.read(originalFile);
+ BufferedImage out = image.getSubimage(x1, y1, width, height);
+ File tempFile = File.createTempFile("temp", "." + extension );
+ tempFile.deleteOnExit();
+ ImageIO.write(out, extension, tempFile);
+ return tempFile;
+ }
+
+ public BufferedImage getCroppedImage() throws IOException {
+
+
+ //out if croppedArea == 0 or file is null
+
+
+
+
+ Rectangle goal = new Rectangle( (int)this.getCropAreaWidth(), (int) this.getCropAreaHeight());
+
+ //Then intersect it with the dimensions of your image:
+
+ Rectangle clip = goal.intersection(new Rectangle(originalFile.getWidth(), originalFile.getHeight()));
+
+ //Now, clip corresponds to the portion of bi that will fit within your goal. In this case 100 x50.
+
+ //Now get the subImage using the value of clip.
+
+ BufferedImage clippedImg = originalFile.getSubimage(clip.x, clip.y, clip.width, clip.height);
+
+
+ return clippedImg;
+
+
+
+
+ }
+
+
+
+
+ public double getCropAreaWidth() {
+ return cropAreaWidth;
+ }
+
+ public void setCropAreaWidth(int cropAreaWidth) {
+ this.cropAreaWidth = cropAreaWidth;
+ }
+
+ public double getCropAreaHeight() {
+ return cropAreaHeight;
+ }
+
+ public void setCropAreaHeight(int cropAreaHeight) {
+ this.cropAreaHeight = cropAreaHeight;
+ }
+
+ public void setCropeable(boolean cropeable) {
+ this.cropeable = cropeable;
+ }
+
+ public boolean isCropeable() {
+ return cropeable;
+ }
+
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/utils/ProductImageSizeUtils.java b/sm-core/src/main/java/com/salesmanager/core/business/utils/ProductImageSizeUtils.java
new file mode 100644
index 0000000..0ecb4dd
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/utils/ProductImageSizeUtils.java
@@ -0,0 +1,151 @@
+package com.salesmanager.core.business.utils;
+
+import java.awt.AlphaComposite;
+import java.awt.Graphics2D;
+import java.awt.RenderingHints;
+import java.awt.Transparency;
+import java.awt.image.BufferedImage;
+
+/**
+ * Utility class for image resize functions
+ * @author Carl Samson
+ *
+ */
+public class ProductImageSizeUtils {
+
+
+ private ProductImageSizeUtils() {
+
+ }
+
+
+ /**
+ * Simple resize, does not maintain aspect ratio
+ * @param image
+ * @param width
+ * @param height
+ * @return
+ */
+
+ public static BufferedImage resize(BufferedImage image, int width, int height) {
+ int type = image.getType() == 0 ? BufferedImage.TYPE_INT_ARGB : image
+ .getType();
+ BufferedImage resizedImage = new BufferedImage(width, height, type);
+ Graphics2D g = resizedImage.createGraphics();
+ g.setComposite(AlphaComposite.Src);
+ g.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
+ RenderingHints.VALUE_INTERPOLATION_BILINEAR);
+ g.setRenderingHint(RenderingHints.KEY_RENDERING,
+ RenderingHints.VALUE_RENDER_QUALITY);
+ g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
+ RenderingHints.VALUE_ANTIALIAS_ON);
+ g.drawImage(image, 0, 0, width, height, null);
+ g.dispose();
+ return resizedImage;
+ }
+
+ /**
+ *
+ * @param img
+ * @param targetWidth
+ * @param targetHeight
+ * @param hint
+ * {@code RenderingHints.VALUE_INTERPOLATION_NEAREST_NEIGHBOR},
+ * {@code RenderingHints.VALUE_INTERPOLATION_BILINEAR},
+ * {@code RenderingHints.VALUE_INTERPOLATION_BICUBIC})
+ * @param higherQuality
+ * @return
+ */
+ public static BufferedImage resizeWithHint(BufferedImage img,
+ int targetWidth, int targetHeight, Object hint,
+ boolean higherQuality) {
+ int type = (img.getTransparency() == Transparency.OPAQUE) ? BufferedImage.TYPE_INT_RGB
+ : BufferedImage.TYPE_INT_ARGB;
+ BufferedImage ret = (BufferedImage) img;
+ int w, h;
+ if (higherQuality) {
+ // Use multi-step technique: start with original size, then
+ // scale down in multiple passes with drawImage()
+ // until the target size is reached
+ w = img.getWidth();
+ h = img.getHeight();
+ } else {
+ // Use one-step technique: scale directly from original
+ // size to target size with a single drawImage() call
+ w = targetWidth;
+ h = targetHeight;
+ }
+
+ do {
+ if (higherQuality && w > targetWidth) {
+ w /= 2;
+ if (w < targetWidth) {
+ w = targetWidth;
+ }
+ }
+
+ if (higherQuality && h > targetHeight) {
+ h /= 2;
+ if (h < targetHeight) {
+ h = targetHeight;
+ }
+ }
+
+ BufferedImage tmp = new BufferedImage(w, h, type);
+ Graphics2D g2 = tmp.createGraphics();
+ g2.setRenderingHint(RenderingHints.KEY_INTERPOLATION, hint);
+ g2.drawImage(ret, 0, 0, w, h, null);
+ g2.dispose();
+
+ ret = tmp;
+ } while (w != targetWidth || h != targetHeight);
+
+ return ret;
+ }
+
+
+ public static BufferedImage resizeWithRatio(BufferedImage image, int destinationWidth, int destinationHeight) {
+
+ int type = image.getType() == 0? BufferedImage.TYPE_INT_ARGB : image.getType();
+
+ //*Special* if the width or height is 0 use image src dimensions
+ if (destinationWidth == 0) {
+ destinationWidth = image.getWidth();
+ }
+ if (destinationHeight == 0) {
+ destinationHeight = image.getHeight();
+ }
+
+ int fHeight = destinationHeight;
+ int fWidth = destinationWidth;
+
+ //Work out the resized width/height
+ if (image.getHeight() > destinationHeight || image.getWidth() > destinationWidth) {
+ fHeight = destinationHeight;
+ int wid = destinationWidth;
+ float sum = (float)image.getWidth() / (float)image.getHeight();
+ fWidth = Math.round(fHeight * sum);
+
+ if (fWidth > wid) {
+ //rezise again for the width this time
+ fHeight = Math.round(wid/sum);
+ fWidth = wid;
+ }
+ }
+
+ BufferedImage resizedImage = new BufferedImage(fWidth, fHeight, type);
+ Graphics2D g = resizedImage.createGraphics();
+ g.setComposite(AlphaComposite.Src);
+
+ g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
+ g.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
+ g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
+
+ g.drawImage(image, 0, 0, fWidth, fHeight, null);
+ g.dispose();
+
+ return resizedImage;
+ }
+
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/utils/ProductUtils.java b/sm-core/src/main/java/com/salesmanager/core/business/utils/ProductUtils.java
new file mode 100644
index 0000000..a4f592a
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/utils/ProductUtils.java
@@ -0,0 +1,42 @@
+package com.salesmanager.core.business.utils;
+
+import java.util.Set;
+
+import com.salesmanager.core.model.order.orderproduct.OrderProduct;
+import com.salesmanager.core.model.order.orderproduct.OrderProductAttribute;
+
+public class ProductUtils {
+
+ public static String buildOrderProductDisplayName(OrderProduct orderProduct) {
+
+ String pName = orderProduct.getProductName();
+ Set<OrderProductAttribute> oAttributes = orderProduct.getOrderAttributes();
+ StringBuilder attributeName = null;
+ for(OrderProductAttribute oProductAttribute : oAttributes) {
+ if(attributeName == null) {
+ attributeName = new StringBuilder();
+ attributeName.append("[");
+ } else {
+ attributeName.append(", ");
+ }
+ attributeName.append(oProductAttribute.getProductAttributeName())
+ .append(": ")
+ .append(oProductAttribute.getProductAttributeValueName());
+
+ }
+
+
+ StringBuilder productName = new StringBuilder();
+ productName.append(pName);
+
+ if(attributeName!=null) {
+ attributeName.append("]");
+ productName.append(" ").append(attributeName.toString());
+ }
+
+ return productName.toString();
+
+
+ }
+
+}
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/utils/query/ProductQueryBuilder.java b/sm-core/src/main/java/com/salesmanager/core/business/utils/query/ProductQueryBuilder.java
new file mode 100644
index 0000000..f83e134
--- /dev/null
+++ b/sm-core/src/main/java/com/salesmanager/core/business/utils/query/ProductQueryBuilder.java
@@ -0,0 +1,67 @@
+package com.salesmanager.core.business.utils.query;
+
+public class ProductQueryBuilder {
+
+ public static String buildProductQuery() {
+
+ StringBuilder qs = new StringBuilder();
+
+ //option 1
+ qs.append("select distinct p from Product as p ");
+ qs.append("join fetch p.availabilities pa ");
+ qs.append("join fetch p.descriptions pd ");
+ qs.append("join fetch p.merchantStore pm ");
+ qs.append("left join fetch pa.prices pap ");
+ qs.append("left join fetch pap.descriptions papd ");
+
+
+ //images
+ qs.append("left join fetch p.images images ");
+ //options
+ qs.append("left join fetch p.attributes pattr ");
+ qs.append("left join fetch pattr.productOption po ");
+ qs.append("left join fetch po.descriptions pod ");
+ qs.append("left join fetch pattr.productOptionValue pov ");
+ qs.append("left join fetch pov.descriptions povd ");
+ qs.append("left join fetch p.relationships pr ");//no relationships
+ //other lefts
+ qs.append("left join fetch p.manufacturer manuf ");
+ qs.append("left join fetch manuf.descriptions manufd ");
+ qs.append("left join fetch p.type type ");
+ qs.append("left join fetch p.taxClass tx ");
+
+
+
+ //option 2 no relationships
+
+ qs.append("select distinct p from Product as p ");
+ qs.append("join fetch p.merchantStore merch ");
+ qs.append("join fetch p.availabilities pa ");
+ qs.append("left join fetch pa.prices pap ");
+
+ qs.append("join fetch p.descriptions pd ");
+ qs.append("join fetch p.categories categs ");
+
+ qs.append("left join fetch pap.descriptions papd ");
+
+
+ //images
+ qs.append("left join fetch p.images images ");
+
+ //options (do not need attributes for listings)
+ qs.append("left join fetch p.attributes pattr ");
+ qs.append("left join fetch pattr.productOption po ");
+ qs.append("left join fetch po.descriptions pod ");
+ qs.append("left join fetch pattr.productOptionValue pov ");
+ qs.append("left join fetch pov.descriptions povd ");
+
+ //other lefts
+ qs.append("left join fetch p.manufacturer manuf ");
+ qs.append("left join fetch manuf.descriptions manufd ");
+ qs.append("left join fetch p.type type ");
+ qs.append("left join fetch p.taxClass tx ");
+
+ return qs.toString();
+ }
+
+}
diff --git a/sm-core/src/main/resources/cms/infinispan_configuration.xml b/sm-core/src/main/resources/cms/infinispan_configuration.xml
old mode 100755
new mode 100644
index 12147f9..d66608f
--- a/sm-core/src/main/resources/cms/infinispan_configuration.xml
+++ b/sm-core/src/main/resources/cms/infinispan_configuration.xml
@@ -1,9 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
-<infinispan xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:infinispan:config:5.2 http://www.infinispan.org/schemas/infinispan-config-5.2.xsd" xmlns="urn:infinispan:config:5.3">
+<infinispan xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+
+ xsi:schemaLocation="urn:infinispan:config:6.0 http://www.infinispan.org/schemas/infinispan-config-6.0.xsd"
+ xmlns="urn:infinispan:config:6.0">
<global>
-
+
<globalJmxStatistics enabled="false" jmxDomain="infinispan"/>
</global>
@@ -14,54 +17,18 @@
<invocationBatching enabled="true"/>
<!-- disable jmx in prod -->
<jmxStatistics enabled="false"/>
- <loaders passivation="false" shared="false" preload="false">
-<!-- <loader class="org.infinispan.loaders.jdbc.mixed.JdbcMixedCacheStore"
- fetchPersistentState="false" ignoreModifications="false"
- purgeOnStartup="false">
- <properties>
- <property name="tableNamePrefixForStrings" value="ISPN_MIXED_STR_TABLE" />
- <property name="tableNamePrefixForBinary" value="ISPN_MIXED_BINARY_TABLE" />
- <property name="idColumnNameForStrings" value="ID_COLUMN" />
- <property name="idColumnNameForBinary" value="ID_COLUMN" />
- <property name="dataColumnNameForStrings" value="DATA_COLUMN" />
- <property name="dataColumnNameForBinary" value="DATA_COLUMN" />
- <property name="timestampColumnNameForStrings" value="TIMESTAMP_COLUMN" />
- <property name="timestampColumnNameForBinary" value="TIMESTAMP_COLUMN" />
- <property name="timestampColumnTypeForStrings" value="BIGINT" />
- <property name="timestampColumnTypeForBinary" value="BIGINT" />
- <property name="connectionFactoryClass"
- value="org.infinispan.loaders.jdbc.connectionfactory.PooledConnectionFactory" />
- <property name="connectionUrl"
- value="jdbc:mysql://localhost:3306/salesmanager_cms" />
- <property name="userName" value="username" />
- <property name="password" value="password" />
- <property name="driverClass" value="com.mysql.jdbc.Driver" />
- <property name="idColumnTypeForStrings" value="VARCHAR(255)" />
- <property name="idColumnTypeForBinary" value="VARCHAR(255)" />
- <property name="dataColumnTypeForStrings" value="LONGBLOB" />
- <property name="dataColumnTypeForBinary" value="LONGBLOB" />
- <property name="dropTableOnExitForStrings" value="false" />
- <property name="dropTableOnExitForBinary" value="false" />
- <property name="createTableOnStartForStrings" value="true" />
- <property name="createTableOnStartForBinary" value="true" />
- <property name="createTableOnStartForStrings" value="true" />
- <property name="createTableOnStartForBinary" value="true" />
- </properties>
- </loader> -->
-
-
+ <persistence passivation="false">
- <loader class="org.infinispan.loaders.file.FileCacheStore" fetchPersistentState="false"
- ignoreModifications="false" purgeOnStartup="false">
+ <store class="org.infinispan.persistence.file.SingleFileStore" fetchPersistentState="false"
+ ignoreModifications="false" purgeOnStartup="false" shared="false" preload="false">
<properties>
- <property name="location" value="./infinispan/store"/>
- <!-- <property name="location" value="${infinispan.cache.file.location}"/> -->
+ <property name="location" value="./files/store"/>
</properties>
- </loader>
+ </store>
- </loaders>
+ </persistence>
- <eviction maxEntries="10" strategy="LRU"/>
+ <eviction maxEntries="10" strategy="LRU"/>
<transaction
transactionManagerLookupClass="org.infinispan.transaction.lookup.DummyTransactionManagerLookup"
@@ -73,15 +40,14 @@
<invocationBatching enabled="true"/>
<!-- disable jmx in prod -->
<jmxStatistics enabled="true"/>
- <loaders passivation="false" shared="false" preload="false">
- <loader class="org.infinispan.loaders.file.FileCacheStore" fetchPersistentState="false"
- ignoreModifications="false" purgeOnStartup="false">
+ <persistence passivation="false">
+ <store class="org.infinispan.persistence.file.SingleFileStore" fetchPersistentState="false"
+ ignoreModifications="false" purgeOnStartup="false" shared="false" preload="false">
<properties>
- <property name="location" value="./infinispan/files"/>
- <!-- <property name="location" value="${infinispan.cache.file.location}"/> -->
+ <property name="location" value="./files/repos"/>
</properties>
- </loader>
- </loaders>
+ </store>
+ </persistence>
<transaction
diff --git a/sm-core/src/main/resources/configs.properties b/sm-core/src/main/resources/configs.properties
old mode 100755
new mode 100644
index d31c692..65f706b
--- a/sm-core/src/main/resources/configs.properties
+++ b/sm-core/src/main/resources/configs.properties
@@ -1,16 +1,16 @@
#Must be 16 digits (replace with your own creation !)
secretKey=7070200000000007
-#Elastic Search configurations
-elastic.search.mode.cluster.name=shopizer
-elastic.search.mode=remote
-elastic.search.cluster.host=http://localhost
-elastic.search.cluster.port =9200
-elastic.search.cluster.proxy.user=
-elastic.search.cluster.proxy.password=
-# elastic search configuration
+#Elastic Search configurations
+elasticsearch.cluster.name=shopizer
+elasticsearch.mode=remote
+elasticsearch.server.host=http://localhost
+elasticsearch.server.port =9200
+elasticsearch.server.proxy.user=
+elasticsearch.server.proxy.password=
+
# Infinispan Configuration
+infinispan.cache.location=./infinispan
-infinispan.cache.file.location=/home/umeshawasthi/personal/infinispan
diff --git a/sm-core/src/main/resources/email.properties b/sm-core/src/main/resources/email.properties
old mode 100755
new mode 100644
diff --git a/sm-core/src/main/resources/reference/GeoLite2-Country.mmdb b/sm-core/src/main/resources/reference/GeoLite2-Country.mmdb
old mode 100755
new mode 100644
index 1a25eb5..7c494a6
Binary files a/sm-core/src/main/resources/reference/GeoLite2-Country.mmdb and b/sm-core/src/main/resources/reference/GeoLite2-Country.mmdb differ
diff --git a/sm-core/src/main/resources/reference/integrationmodules.json b/sm-core/src/main/resources/reference/integrationmodules.json
old mode 100755
new mode 100644
index ce4108b..4352c9d
--- a/sm-core/src/main/resources/reference/integrationmodules.json
+++ b/sm-core/src/main/resources/reference/integrationmodules.json
@@ -41,6 +41,18 @@
"regions": ["*"]
},
{
+ "module": "SHIPPING",
+ "code": "priceByDistance",
+ "version":"1.0",
+ "regions": ["*"]
+ },
+ {
+ "module": "SHIPPING",
+ "code": "storePickUp",
+ "version":"1.0",
+ "regions": ["*"]
+ },
+ {
"module": "PAYMENT",
"code": "moneyorder",
"type":"moneyorder",
@@ -75,7 +87,7 @@
{
"module": "PAYMENT",
"code": "stripe",
- "type":"stripe",
+ "type":"creditcard",
"version":"",
"regions": ["US","CA","GB","AU","FI","DK","IE","NO","SE"],
"image":"stripe.png",
diff --git a/sm-core/src/main/resources/reference/zoneconfig.json b/sm-core/src/main/resources/reference/zoneconfig.json
old mode 100755
new mode 100644
index 3350c43..ac8d3a2
--- a/sm-core/src/main/resources/reference/zoneconfig.json
+++ b/sm-core/src/main/resources/reference/zoneconfig.json
@@ -1000,7 +1000,7 @@
},
{
"zoneCode": "CA",
- "zoneName": "California",
+ "zoneName": "Californie",
"countryCode": "US"
},
{
@@ -1020,7 +1020,7 @@
},
{
"zoneCode": "DC",
- "zoneName": "District of Columbia",
+ "zoneName": "District de Columbia",
"countryCode": "US"
},
{
@@ -1030,12 +1030,12 @@
},
{
"zoneCode": "FL",
- "zoneName": "Florida",
+ "zoneName": "Floride",
"countryCode": "US"
},
{
"zoneCode": "GA",
- "zoneName": "Georgia",
+ "zoneName": "Georgie",
"countryCode": "US"
},
{
@@ -1080,7 +1080,7 @@
},
{
"zoneCode": "LA",
- "zoneName": "Louisiana",
+ "zoneName": "Louisiane",
"countryCode": "US"
},
{
@@ -1140,7 +1140,7 @@
},
{
"zoneCode": "NH",
- "zoneName": "New Hampshire",
+ "zoneName": "Nouveau Hampshire",
"countryCode": "US"
},
{
@@ -1150,7 +1150,7 @@
},
{
"zoneCode": "NM",
- "zoneName": "New Mexico",
+ "zoneName": "Nouveau Mexique",
"countryCode": "US"
},
{
@@ -1160,12 +1160,12 @@
},
{
"zoneCode": "NC",
- "zoneName": "North Carolina",
+ "zoneName": "Caroline du Nord",
"countryCode": "US"
},
{
"zoneCode": "ND",
- "zoneName": "North Dakota",
+ "zoneName": "Dakota du Nord",
"countryCode": "US"
},
{
@@ -1190,7 +1190,7 @@
},
{
"zoneCode": "PA",
- "zoneName": "Pennsylvania",
+ "zoneName": "Pennsylvanie",
"countryCode": "US"
},
{
@@ -1205,12 +1205,12 @@
},
{
"zoneCode": "SC",
- "zoneName": "South Carolina",
+ "zoneName": "Caroline du Sud",
"countryCode": "US"
},
{
"zoneCode": "SD",
- "zoneName": "South Dakota",
+ "zoneName": "Dakota du Sud",
"countryCode": "US"
},
{
@@ -1240,7 +1240,7 @@
},
{
"zoneCode": "VA",
- "zoneName": "Virginia",
+ "zoneName": "Virginie",
"countryCode": "US"
},
{
@@ -1270,7 +1270,7 @@
},
{
"zoneCode": "BC",
- "zoneName": "British Columbia",
+ "zoneName": "Columbie Britanique",
"countryCode": "CA"
},
{
@@ -1280,22 +1280,22 @@
},
{
"zoneCode": "NF",
- "zoneName": "Newfoundland - Labrador",
+ "zoneName": "Terre-Neuve - Labrador",
"countryCode": "CA"
},
{
"zoneCode": "NB",
- "zoneName": "New Brunswick",
+ "zoneName": "Nouveau Brunswick",
"countryCode": "CA"
},
{
"zoneCode": "NS",
- "zoneName": "Nova Scotia",
+ "zoneName": "Nouvelle Écosse",
"countryCode": "CA"
},
{
"zoneCode": "NT",
- "zoneName": "Northwest Territories",
+ "zoneName": "Territores du Nord-Ouest",
"countryCode": "CA"
},
{
@@ -1310,12 +1310,12 @@
},
{
"zoneCode": "PE",
- "zoneName": "Prince Edward Island",
+ "zoneName": "Île-du-Prince-Édouard",
"countryCode": "CA"
},
{
"zoneCode": "QC",
- "zoneName": "Quebec",
+ "zoneName": "Québec",
"countryCode": "CA"
},
{
@@ -1325,7 +1325,7 @@
},
{
"zoneCode": "YT",
- "zoneName": "Yukon Territory",
+ "zoneName": "Yukon",
"countryCode": "CA"
},
{
diff --git a/sm-core/src/main/resources/rules/shipping-custom-rules.xls b/sm-core/src/main/resources/rules/shipping-custom-rules.xls
old mode 100755
new mode 100644
index 14e7580..5d8d5eb
Binary files a/sm-core/src/main/resources/rules/shipping-custom-rules.xls and b/sm-core/src/main/resources/rules/shipping-custom-rules.xls differ
diff --git a/sm-core/src/main/resources/rules/shipping-decision-rules.xls b/sm-core/src/main/resources/rules/shipping-decision-rules.xls
index 2aa3073..cd792da 100644
Binary files a/sm-core/src/main/resources/rules/shipping-decision-rules.xls and b/sm-core/src/main/resources/rules/shipping-decision-rules.xls differ
sm-core/src/main/resources/search/product.json 26(+13 -13)
diff --git a/sm-core/src/main/resources/search/product.json b/sm-core/src/main/resources/search/product.json
old mode 100755
new mode 100644
index 0b2704a..4305699
--- a/sm-core/src/main/resources/search/product.json
+++ b/sm-core/src/main/resources/search/product.json
@@ -1,15 +1,15 @@
{"product_en": {
- "properties" : {
- "name": {"type": "multi_field","fields": {"name_original":{"type":"string","index":"not_analyzed"},"name_searchable":{"type":"string","index":"analyzed","store":"no"}}},
- "price" : {"type":"string","index":"not_analyzed"},
- "categories" : {"type":"string","index":"not_analyzed"},
- "lang" : {"type":"string","index":"not_analyzed"},
- "store" : {"type":"string","index":"not_analyzed"},
- "availability" : {"type":"string","index":"not_analyzed"},
- "manufacturer" : {"type":"string","index":"not_analyzed"},
- "available" : {"type":"string","index":"not_analyzed"},
- "description" : {"type":"string","index":"analyzed","index_analyzer":"english"},
- "tags" : {"type":"string","index":"not_analyzed"}
- }
- }
+ "properties" : {
+ "name": {"type": "String","analyzer":"folding_en"},
+ "price" : {"type":"String","index":"not_analyzed"},
+ "categories" : {"type":"String","index":"not_analyzed"},
+ "lang" : {"type":"String","index":"not_analyzed"},
+ "store" : {"type":"String","index":"not_analyzed"},
+ "availability" : {"type":"String","index":"not_analyzed"},
+ "available" : {"type":"String","index":"not_analyzed"},
+ "description" : {"type":"String","analyzer":"folding_en"},
+ "tags" : {"type":"String","analyzer":"folding_en"}
+ }
+ }
+
}
\ No newline at end of file
diff --git a/sm-core/src/main/resources/search/product_fr.json b/sm-core/src/main/resources/search/product_fr.json
old mode 100755
new mode 100644
index c7171b4..9cbc80c
--- a/sm-core/src/main/resources/search/product_fr.json
+++ b/sm-core/src/main/resources/search/product_fr.json
@@ -1,15 +1,14 @@
{"product_fr": {
- "properties" : {
- "name": {"type": "multi_field","fields": {"name_original":{"type":"string","index":"not_analyzed"},"name_searchable":{"type":"string","index":"analyzed","store":"no"}}},
- "price" : {"type":"string","index":"not_analyzed"},
- "categories" : {"type":"string","index":"not_analyzed"},
- "lang" : {"type":"string","index":"not_analyzed"},
- "store" : {"type":"string","index":"not_analyzed"},
- "availability" : {"type":"string","index":"not_analyzed"},
- "manufacturer" : {"type":"string","index":"not_analyzed"},
- "available" : {"type":"string","index":"not_analyzed"},
- "description" : {"type":"string","index":"analyzed","index_analyzer":"french"},
- "tags" : {"type":"string","index":"not_analyzed"}
- }
+ "properties" : {
+ "name": {"type": "String","analyzer":"folding_fr"},
+ "price" : {"type":"String","index":"not_analyzed"},
+ "categories" : {"type":"String","index":"not_analyzed"},
+ "lang" : {"type":"String","index":"not_analyzed"},
+ "store" : {"type":"String","index":"not_analyzed"},
+ "availability" : {"type":"String","index":"not_analyzed"},
+ "available" : {"type":"String","index":"not_analyzed"},
+ "description" : {"type":"String","analyzer":"folding_fr"},
+ "tags" : {"type":"String","analyzer":"folding_fr"}
+ }
}
}
\ No newline at end of file
diff --git a/sm-core/src/main/resources/search/settings_keyword.json b/sm-core/src/main/resources/search/settings_keyword.json
index a91806c..3d8750e 100644
--- a/sm-core/src/main/resources/search/settings_keyword.json
+++ b/sm-core/src/main/resources/search/settings_keyword.json
@@ -13,6 +13,7 @@
"tokenizer": "standard",
"filter": [
"lowercase",
+ "asciifolding",
"autocomplete_filter"
]
}
diff --git a/sm-core/src/main/resources/search/settings_product.json b/sm-core/src/main/resources/search/settings_product.json
old mode 100755
new mode 100644
index 452a01e..175715a
--- a/sm-core/src/main/resources/search/settings_product.json
+++ b/sm-core/src/main/resources/search/settings_product.json
@@ -1,11 +1,32 @@
- {"index": {
- "analysis": {
- "analyzer": {
- "custom_analyzer": {
- "type": "snowball",
- "language": "English"
- }
- }
- }
- }
- }
\ No newline at end of file
+{
+ "index": {
+ "analysis": {
+ "filter": {
+ "english_stop": {
+ "type": "stop",
+ "stopwords": "_english_"
+ },
+ "english_stemmer": {
+ "type": "stemmer",
+ "language": "english"
+ },
+ "english_possessive_stemmer": {
+ "type": "stemmer",
+ "language": "possessive_english"
+ }
+ },
+ "analyzer": {
+ "folding_en": {
+ "tokenizer": "standard",
+ "filter": [
+ "english_possessive_stemmer",
+ "asciifolding",
+ "lowercase",
+ "english_stop",
+ "english_stemmer"
+ ]
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/sm-core/src/main/resources/search/settings_product_fr.json b/sm-core/src/main/resources/search/settings_product_fr.json
old mode 100755
new mode 100644
index 452a01e..6c4e9e9
--- a/sm-core/src/main/resources/search/settings_product_fr.json
+++ b/sm-core/src/main/resources/search/settings_product_fr.json
@@ -1,11 +1,38 @@
- {"index": {
- "analysis": {
- "analyzer": {
- "custom_analyzer": {
- "type": "snowball",
- "language": "English"
- }
- }
- }
- }
- }
\ No newline at end of file
+
+{
+ "index": {
+ "analysis": {
+ "filter": {
+ "french_elision": {
+ "type":"elision",
+ "articles_case": true,
+ "articles": [
+ "l", "m", "t", "qu", "n", "s",
+ "j", "d", "c", "jusqu", "quoiqu",
+ "lorsqu", "puisqu"
+ ]
+ },
+ "french_stop": {
+ "type": "stop",
+ "stopwords": "_french_"
+ },
+ "french_stemmer": {
+ "type": "stemmer",
+ "language": "light_french"
+ }
+ },
+ "analyzer": {
+ "folding_fr": {
+ "tokenizer": "standard",
+ "filter": [
+ "lowercase",
+ "asciifolding",
+ "french_elision",
+ "french_stop",
+ "french_stemmer"
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/sm-core/src/main/resources/spring/datasource-c3p0.xml b/sm-core/src/main/resources/spring/datasource-c3p0.xml
old mode 100755
new mode 100644
index 8901314..50ac670
--- a/sm-core/src/main/resources/spring/datasource-c3p0.xml
+++ b/sm-core/src/main/resources/spring/datasource-c3p0.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
- xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd">
+ xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="datasource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
p:driverClass="${db.driverClass}" p:jdbcUrl="${db.jdbcUrl}" p:user="${db.user}"
diff --git a/sm-core/src/main/resources/spring/ehcache.xml b/sm-core/src/main/resources/spring/ehcache.xml
new file mode 100644
index 0000000..4a78203
--- /dev/null
+++ b/sm-core/src/main/resources/spring/ehcache.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ehcache name="com.shopizer.core.cache"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd">
+
+ <defaultCache
+ maxElementsInMemory="10000"
+ eternal="false"
+ timeToIdleSeconds="120"
+ timeToLiveSeconds="120"
+ overflowToDisk="false"
+ diskSpoolBufferSizeMB="30"
+ maxElementsOnDisk="10000000"
+ diskPersistent="false"
+ diskExpiryThreadIntervalSeconds="120"
+ memoryStoreEvictionPolicy="LRU" />
+
+
+ <cache name="com.shopizer.OBJECT_CACHE"
+ maxElementsInMemory="10000"
+ eternal="false"
+ overflowToDisk="false"
+ timeToIdleSeconds="1200"
+ timeToLiveSeconds="1200"
+ memoryStoreEvictionPolicy="LFU" />
+
+</ehcache>
\ No newline at end of file
diff --git a/sm-core/src/main/resources/spring/processors/shopizer-core-shipping-processors.xml b/sm-core/src/main/resources/spring/processors/shopizer-core-shipping-processors.xml
old mode 100755
new mode 100644
index 30e17ed..2da13b2
--- a/sm-core/src/main/resources/spring/processors/shopizer-core-shipping-processors.xml
+++ b/sm-core/src/main/resources/spring/processors/shopizer-core-shipping-processors.xml
@@ -4,23 +4,41 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="
- http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
- http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.2.xsd">
+ http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+ http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">
<!-- Shipping pre-processors -->
- <util:list id="shippingModulePreProcessors" value-type="com.salesmanager.core.modules.integration.shipping.model.ShippingQuotePreProcessModule">
- <!-- <ref bean="shippingDistancePreProcessor"/> -->
+ <util:list id="shippingModulePreProcessors" value-type="com.salesmanager.core.business.modules.integration.shipping.model.ShippingQuotePrePostProcessModule">
+ <ref bean="shippingDistancePreProcessor"/>
<!-- From rules -->
-
<ref bean="shippingMethodDecisionProcess"/>
-
</util:list>
-
+ <!-- Calculates the distance between the origin and destination -->
<!-- shipping-distance-processor project -->
<bean id="shippingDistancePreProcessor"
class="com.shopizer.modules.shipping.distance.ShippingDistancePreProcessorImpl">
- <property name="apiKey" value="AIzaSyCFqjgSH_6_ktwKLcVi-IRojLx2iRWlcig"/>
+ <!-- Google API key -->
+ <property name="apiKey" value="YOUR_KEY_HERE"/>
+ <property name="allowedZonesCodes" ref="acceptedZones"/>
+ </bean>
+
+
+ <!-- Decides dynamicaly which method is used based on a decision table-->
+ <bean id="shippingMethodDecisionProcess"
+ class="com.salesmanager.core.business.modules.integration.shipping.impl.ShippingDecisionPreProcessorImpl">
</bean>
+
+ <!-- Any post process required after getting a quote -->
+ <!-- Shipping post-processors -->
+ <util:list id="shippingModulePostProcessors" value-type="com.salesmanager.core.business.modules.integration.shipping.model.ShippingQuotePrePostProcessModule">
+ <ref bean="storePickUp"/><!-- defined in core-modules -->
+ </util:list>
+
+ <!-- List of accepted zones for using shipping distance pre processor -->
+ <util:list id="acceptedZones" value-type="java.lang.String">
+ <value>NY</value>
+ <value>NJ</value>
+ </util:list>
</beans>
\ No newline at end of file
diff --git a/sm-core/src/main/resources/spring/shopizer-context.xml b/sm-core/src/main/resources/spring/shopizer-context.xml
new file mode 100644
index 0000000..7fe2ac8
--- /dev/null
+++ b/sm-core/src/main/resources/spring/shopizer-context.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans:beans xmlns:beans="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns="http://www.springframework.org/schema/data/jpa"
+ xmlns:util="http://www.springframework.org/schema/util"
+ xmlns:context="http://www.springframework.org/schema/context"
+ xmlns:aop="http://www.springframework.org/schema/aop"
+ xmlns:tx="http://www.springframework.org/schema/tx"
+ xsi:schemaLocation="http://www.springframework.org/schema/beans
+ http://www.springframework.org/schema/beans/spring-beans.xsd
+ http://www.springframework.org/schema/tx
+ http://www.springframework.org/schema/tx/spring-tx.xsd
+ http://www.springframework.org/schema/aop
+ http://www.springframework.org/schema/aop/spring-aop.xsd
+ http://www.springframework.org/schema/util
+ http://www.springframework.org/schema/util/spring-util.xsd
+ http://www.springframework.org/schema/context
+ http://www.springframework.org/schema/context/spring-context.xsd
+ http://www.springframework.org/schema/data/jpa
+ http://www.springframework.org/schema/data/jpa/spring-jpa.xsd">
+
+ <!-- This is the entry XML point -->
+
+
+ <!-- datasource -->
+ <beans:import resource="classpath:/spring/datasource-c3p0.xml" />
+ <!-- cache -->
+ <beans:import resource="classpath:/spring/shopizer-core-ehcache.xml" />
+ <!-- DB, TX and properties -->
+ <beans:import resource="classpath:/spring/shopizer-core-config.xml" />
+ <!-- modules -->
+ <beans:import resource="classpath:/spring/shopizer-core-modules.xml" />
+ <!-- shipping pre processors -->
+ <beans:import resource="classpath:/spring/processors/shopizer-core-shipping-processors.xml" />
+ <!-- rules -->
+ <beans:import resource="classpath:/spring/shopizer-core-rules.xml" />
+ <!-- search -->
+ <beans:import resource="classpath:/spring/shopizer-search.xml" />
+
+
+
+
+</beans:beans>
\ No newline at end of file
diff --git a/sm-core/src/main/resources/spring/shopizer-core-config.xml b/sm-core/src/main/resources/spring/shopizer-core-config.xml
old mode 100755
new mode 100644
index c5a8ae5..654ecf3
--- a/sm-core/src/main/resources/spring/shopizer-core-config.xml
+++ b/sm-core/src/main/resources/spring/shopizer-core-config.xml
@@ -1,35 +1,127 @@
-<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:aop="http://www.springframework.org/schema/aop"
- xmlns:context="http://www.springframework.org/schema/context" xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:task="http://www.springframework.org/schema/task"
- xmlns:util="http://www.springframework.org/schema/util"
- xsi:schemaLocation="
- http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
- http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
- http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd
- http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.2.xsd
- http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
- http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.2.xsd
- http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.2.xsd">
+<beans:beans xmlns:beans="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns="http://www.springframework.org/schema/data/jpa"
+ xmlns:util="http://www.springframework.org/schema/util"
+ xmlns:context="http://www.springframework.org/schema/context"
+ xmlns:aop="http://www.springframework.org/schema/aop"
+ xmlns:tx="http://www.springframework.org/schema/tx"
+ xsi:schemaLocation="http://www.springframework.org/schema/beans
+ http://www.springframework.org/schema/beans/spring-beans.xsd
+ http://www.springframework.org/schema/tx
+ http://www.springframework.org/schema/tx/spring-tx.xsd
+ http://www.springframework.org/schema/aop
+ http://www.springframework.org/schema/aop/spring-aop.xsd
+ http://www.springframework.org/schema/util
+ http://www.springframework.org/schema/util/spring-util.xsd
+ http://www.springframework.org/schema/context
+ http://www.springframework.org/schema/context/spring-context.xsd
+ http://www.springframework.org/schema/data/jpa
+ http://www.springframework.org/schema/data/jpa/spring-jpa.xsd">
+
+
+ <context:annotation-config />
+ <!-- services -->
+ <context:component-scan base-package="com.salesmanager.core.business.services" />
+ <!-- utils - components -->
+ <context:component-scan base-package="com.salesmanager.core.business.utils" />
+ <!-- repositories -->
+ <repositories base-package="com.salesmanager.core.business.repositories"/>
+
+ <!-- JPA and transactions -->
+ <tx:annotation-driven />
+
+ <beans:bean id="entityManagerFactory" name="shopizerContainer" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
-
-
+ <beans:property name="dataSource" ref="datasource" />
- <bean id="coreConfiguration" class="com.salesmanager.core.utils.CoreConfiguration">
- <property name="properties" ref="shopizer-properties"/>
- </bean>
+ <beans:property name="jpaVendorAdapter">
+ <beans:bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
+ <beans:property name="showSql" value="true" />
+ <beans:property name="generateDdl" value="false" />
+ <beans:property name="databasePlatform" value="${hibernate.dialect}" />
+ </beans:bean>
+ </beans:property>
+ <beans:property name="jpaProperties">
+ <util:map>
+ <beans:entry key="hibernate.default_schema" value="${db.schema}" />
+ <beans:entry key="hibernate.hbm2ddl.auto" value="${hibernate.hbm2ddl.auto}" />
+ <beans:entry key="hibernate.show_sql" value="true" />
+ <beans:entry key="hibernate.cache.provider_class" value="org.hibernate.cache.EhCacheProvider" />
+ <beans:entry key="hibernate.cache.use_second_level_cache" value="true" />
+
+ <!-- Uncomment the following 2 lines to generate shopizer sql schema when the application is built. Remove the schema.sql file once generated, otherwise it will try to create it twice in the test database (table already exist... -->
+ <!--
+ <beans:entry key="javax.persistence.schema-generation.scripts.action" value="create" />
+ <beans:entry key="javax.persistence.schema-generation.scripts.create-target" value="src/test/resources/schema.sql" />
+ -->
+ </util:map>
+ </beans:property>
- <!-- JDBC User -->
- <bean id="userService" class="com.salesmanager.core.business.user.service.UserServiceImpl"/>
+ <beans:property name="loadTimeWeaver">
+ <beans:bean class="org.springframework.instrument.classloading.InstrumentationLoadTimeWeaver" />
+ </beans:property>
+ </beans:bean>
+
+ <!-- Configure the transaction manager bean -->
+ <beans:bean id="transactionManager"
+ class="org.springframework.orm.jpa.JpaTransactionManager">
+ <beans:property name="entityManagerFactory" ref="entityManagerFactory"/>
+ </beans:bean>
+
+ <!-- Enable annotation driven transaction management -->
+ <tx:annotation-driven/>
+
+ <aop:config>
+ <aop:pointcut id="txPointCutDef" expression="this(com.salesmanager.core.business.services.common.generic.TransactionalAspectAwareService)" />
+ <aop:advisor advice-ref="txAdvice" pointcut-ref="txPointCutDef" />
+ </aop:config>
+
+ <tx:advice id="txAdvice" transaction-manager="transactionManager">
+ <tx:attributes>
+ <tx:method name="get*" read-only="true" />
+ <tx:method name="list*" read-only="true" />
+ <tx:method name="search*" read-only="true" />
+ <tx:method name="*" read-only="false" rollback-for="com.salesmanager.core.business.exception.ServiceException" />
+ </tx:attributes>
+ </tx:advice>
+
+ <beans:bean id="persistenceExceptionTranslationPostProcessor"
+ class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor" />
+
+
+ <!-- properties files -->
+ <beans:bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
+ <beans:property name="ignoreUnresolvablePlaceholders" value="false"/>
+ <beans:property name="locations">
+ <beans:list>
+ <beans:value>classpath:database.properties</beans:value>
+ <beans:value>classpath:email.properties</beans:value>
+ <beans:value>classpath:configs.properties</beans:value>
+ </beans:list>
+ </beans:property>
+ </beans:bean>
+
+ <!-- in sm-shop -->
+ <beans:bean id="coreConfiguration" class="com.salesmanager.core.business.utils.CoreConfiguration">
+ <beans:property name="properties" ref="shopizer-properties"/>
+ </beans:bean>
- <bean id="secretKey" class="java.lang.String">
- <constructor-arg value="${secretKey}"/>
- </bean>
+ <beans:bean id="secretKey" class="java.lang.String">
+ <beans:constructor-arg value="${secretKey}"/>
+ </beans:bean>
- <bean id="applicationContextListenerUtils" class="com.salesmanager.core.utils.ApplicationContextListenerUtils" />
+ <!--Get the secret key from JNDI-->
- <!-- Get the secret key from JNDI -->
- <!--
+ <!-- don't need the secret key out of the box, unless you decide to have the key stored in a remote jndi context
<jee:jndi-lookup id="secretKey"
- jndi-name="java:comp/env/secretKey" />
+ jndi-name="java:comp/env/secretKey" />
+ -->
+
+ <!-- JDBC User -->
+ <!--
+ <beans:bean id="userService" class="com.salesmanager.core.business.user.service.UserServiceImpl"/>
+ <beans:bean id="applicationContextListenerUtils" class="com.salesmanager.core.utils.ApplicationContextListenerUtils" />
-->
-</beans>
\ No newline at end of file
+
+</beans:beans>
\ No newline at end of file
diff --git a/sm-core/src/main/resources/spring/shopizer-core-ehcache.xml b/sm-core/src/main/resources/spring/shopizer-core-ehcache.xml
old mode 100755
new mode 100644
index c2b7119..cc1fce0
--- a/sm-core/src/main/resources/spring/shopizer-core-ehcache.xml
+++ b/sm-core/src/main/resources/spring/shopizer-core-ehcache.xml
@@ -3,24 +3,24 @@
xmlns:context="http://www.springframework.org/schema/context" xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:task="http://www.springframework.org/schema/task"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="
- http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
- http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
- http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd
- http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.2.xsd
- http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
- http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.2.xsd
- http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.2.xsd
- http://ehcache-spring-annotations.googlecode.com/svn/schema/ehcache-spring http://ehcache-spring-annotations.googlecode.com/svn/schema/ehcache-spring/ehcache-spring-1.2.xsd">
+ http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
+ http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+ http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
+ http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee.xsd
+ http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
+ http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task.xsd
+ http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd
+ http://ehcache-spring-annotations.googlecode.com/svn/schema/ehcache-spring http://ehcache-spring-annotations.googlecode.com/svn/schema/ehcache-spring/ehcache-spring.xsd">
<bean id="springCacheManager" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">
- <property name="configLocation" value="classpath:/ehcache/smcore-ehcache.xml" />
+ <property name="configLocation" value="classpath:/spring/ehcache.xml" />
<property name="shared" value="false" />
</bean>
<bean id="serviceCacheManager" class="org.springframework.cache.ehcache.EhCacheCacheManager">
<property name="cacheManager">
- <ref local="springCacheManager" />
+ <ref bean="springCacheManager" />
</property>
</bean>
sm-core/src/main/resources/spring/shopizer-core-modules.xml 421(+225 -196)
diff --git a/sm-core/src/main/resources/spring/shopizer-core-modules.xml b/sm-core/src/main/resources/spring/shopizer-core-modules.xml
old mode 100755
new mode 100644
index 5fc3192..412392c
--- a/sm-core/src/main/resources/spring/shopizer-core-modules.xml
+++ b/sm-core/src/main/resources/spring/shopizer-core-modules.xml
@@ -1,240 +1,269 @@
-<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:aop="http://www.springframework.org/schema/aop"
- xmlns:context="http://www.springframework.org/schema/context" xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:task="http://www.springframework.org/schema/task"
- xmlns:util="http://www.springframework.org/schema/util"
- xsi:schemaLocation="
- http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
- http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
- http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd
- http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.2.xsd
- http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
- http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.2.xsd
- http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.2.xsd">
-
+<beans:beans xmlns:beans="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns="http://www.springframework.org/schema/data/jpa"
+ xmlns:util="http://www.springframework.org/schema/util"
+ xmlns:context="http://www.springframework.org/schema/context"
+ xmlns:aop="http://www.springframework.org/schema/aop"
+ xmlns:tx="http://www.springframework.org/schema/tx"
+ xsi:schemaLocation="http://www.springframework.org/schema/beans
+ http://www.springframework.org/schema/beans/spring-beans.xsd
+ http://www.springframework.org/schema/tx
+ http://www.springframework.org/schema/tx/spring-tx.xsd
+ http://www.springframework.org/schema/aop
+ http://www.springframework.org/schema/aop/spring-aop.xsd
+ http://www.springframework.org/schema/util
+ http://www.springframework.org/schema/util/spring-util.xsd
+ http://www.springframework.org/schema/context
+ http://www.springframework.org/schema/context/spring-context.xsd
+ http://www.springframework.org/schema/data/jpa
+ http://www.springframework.org/schema/data/jpa/spring-jpa.xsd">
<!-- Shipping integration modules -->
- <util:map id="shippingModules" map-class="java.util.HashMap" key-type="java.lang.String" value-type="com.salesmanager.core.modules.integration.shipping.model.ShippingQuoteModule">
- <entry key="canadapost" value-ref="canadapost"/>
- <entry key="usps" value-ref="usps"/>
- <entry key="ups" value-ref="ups"/>
- <entry key="weightBased" value-ref="weightBased"/>
- <entry key="customQuotesRules" value-ref="customShippingPriceModule"/><!-- as defined in shopizer-core-rules -->
+
+ <util:map id="shippingModules" map-class="java.util.HashMap" key-type="java.lang.String" value-type="com.salesmanager.core.business.modules.integration.shipping.model.ShippingQuoteModule">
+ <beans:entry key="canadapost" value-ref="canadapost"/>
+ <beans:entry key="usps" value-ref="usps"/>
+ <beans:entry key="ups" value-ref="ups"/>
+ <beans:entry key="weightBased" value-ref="weightBased"/>
+ <beans:entry key="priceByDistance" value-ref="priceByDistance"/>
+ <beans:entry key="storePickUp" value-ref="storePickUp"/>
+ <beans:entry key="customQuotesRules" value-ref="customShippingPriceModule"/><!--as defined in shopizer-core-rules-->
</util:map>
- <!-- Payment integration modules -->
- <util:map id="paymentModules" map-class="java.util.HashMap" key-type="java.lang.String" value-type="com.salesmanager.core.modules.integration.payment.model.PaymentModule">
- <entry key="beanstream" value-ref="beanstream"/>
- <entry key="paypal-express-checkout" value-ref="paypal-ec"/>
- <entry key="moneyorder" value-ref="moneyorder"/>
+ <!-- Payment integration modules -->
+ <util:map id="paymentModules" map-class="java.util.HashMap" key-type="java.lang.String" value-type="com.salesmanager.core.business.modules.integration.payment.model.PaymentModule">
+ <beans:entry key="beanstream" value-ref="beanstream"/>
+ <beans:entry key="paypal-express-checkout" value-ref="paypal-ec"/>
+ <beans:entry key="moneyorder" value-ref="moneyorder"/>
+ <beans:entry key="stripe" value-ref="stripe"/>
</util:map>
-
<!-- Shipping -->
- <bean id="canadapost"
- class="com.shopizer.modules.shipping.canadapost.CanadaPostQuoteModule"/><!-- shopizer-shipping-canadapost-module -->
- <bean id="usps"
- class="com.salesmanager.core.modules.integration.shipping.impl.USPSShippingQuote"/>
- <bean id="ups"
- class="com.salesmanager.core.modules.integration.shipping.impl.UPSShippingQuote"/>
- <bean id="weightBased"
- class="com.salesmanager.core.modules.integration.shipping.impl.CustomWeightBasedShippingQuote"/>
-
- <!-- Default packaging -->
- <bean id="boxPackaging"
- class="com.salesmanager.core.modules.integration.shipping.impl.DefaultPackagingImpl"/>
-
- <!-- Payment -->
- <bean id="beanstream"
- class="com.salesmanager.core.modules.integration.payment.impl.BeanStreamPayment"/>
- <bean id="moneyorder"
- class="com.salesmanager.core.modules.integration.payment.impl.MoneyOrderPayment"/>
- <bean id="paypal-ec"
- class="com.salesmanager.core.modules.integration.payment.impl.PayPalExpressCheckoutPayment"/>
-
- <!-- -->
- <!-- CMS -->
- <!-- -->
-
- <!-- Product images manager-->
- <bean id="productFileManager"
- class="com.salesmanager.core.modules.cms.product.ProductFileManagerImpl">
- <property name="uploadImage">
- <ref bean="cmsProductImage" />
- </property>
- <property name="getImage">
- <ref bean="cmsProductImage" />
- </property>
- <property name="removeImage">
- <ref bean="cmsProductImage" />
- </property>
- <property name="configuration">
- <ref bean="coreConfiguration" />
- </property>
- </bean>
-
- <!-- CMS implementation for product images-->
- <bean id="cmsProductImage"
- class="com.salesmanager.core.modules.cms.product.CmsImageFileManagerInfinispanImpl" factory-method="getInstance" >
- <property name="cacheManager">
- <ref bean="storeCacheManager" />
- </property>
- <property name="rootName" value="product-merchant"/>
- </bean>
-
-
-
- <!-- Content images manager (logo, other store artifacts)-->
- <bean id="contentFileManager"
- class="com.salesmanager.core.modules.cms.content.StaticContentFileManagerImpl">
- <property name="uploadFile">
- <ref bean="cmsStoreFile" />
- </property>
- <property name="getFile">
- <ref bean="cmsStoreFile" />
- </property>
- <property name="removeFile">
- <ref bean="cmsStoreFile" />
- </property>
- </bean>
-
-
- <bean id="cmsStoreFile"
- class="com.salesmanager.core.modules.cms.content.CmsStaticContentFileManagerInfinispanImpl" factory-method="getInstance" >
- <property name="cacheManager">
- <ref bean="storeCacheManager" />
- </property>
- <property name="rootName" value="store-merchant"/>
- </bean>
+ <beans:bean id="canadapost"
+ class="com.shopizer.modules.shipping.canadapost.CanadaPostQuoteModule"/><!--shopizer-shipping-canadapost-module-->
+ <beans:bean id="usps"
+ class="com.salesmanager.core.business.modules.integration.shipping.impl.USPSShippingQuote"/>
+ <beans:bean id="ups"
+ class="com.salesmanager.core.business.modules.integration.shipping.impl.UPSShippingQuote"/>
+ <beans:bean id="weightBased"
+ class="com.salesmanager.core.business.modules.integration.shipping.impl.CustomWeightBasedShippingQuote"/>
+ <beans:bean id="priceByDistance"
+ class="com.salesmanager.core.business.modules.integration.shipping.impl.PriceByDistanceShippingQuoteRules"/>
+ <beans:bean id="storePickUp"
+ class="com.salesmanager.core.business.modules.integration.shipping.impl.StorePickupShippingQuote"/>
+ <beans:bean id="customShippingPriceModule"
+ class="com.salesmanager.core.business.modules.integration.shipping.impl.CustomShippingQuoteRules"/>
+
+
+ <!--Default packaging-->
+ <beans:bean id="boxPackaging"
+ class="com.salesmanager.core.business.modules.integration.shipping.impl.DefaultPackagingImpl"/>
+
+ <!--
+ Payment -->
+ <beans:bean id="beanstream"
+ class="com.salesmanager.core.business.modules.integration.payment.impl.BeanStreamPayment"/>
+ <beans:bean id="moneyorder"
+ class="com.salesmanager.core.business.modules.integration.payment.impl.MoneyOrderPayment"/>
+ <beans:bean id="paypal-ec"
+ class="com.salesmanager.core.business.modules.integration.payment.impl.PayPalExpressCheckoutPayment"/>
+ <beans:bean id="stripe"
+ class="com.salesmanager.core.business.modules.integration.payment.impl.StripePayment"/>
+
+
+
+
+ <!--
+ ********************
+ CMS
+ ********************
+ -->
+
+
+ <!-- Product images manager -->
+ <beans:bean id="productFileManager"
+ class="com.salesmanager.core.business.modules.cms.product.ProductFileManagerImpl">
+ <beans:property name="uploadImage">
+ <beans:ref bean="cmsProductImage" />
+ </beans:property>
+ <beans:property name="getImage">
+ <beans:ref bean="cmsProductImage" />
+ </beans:property>
+ <beans:property name="removeImage">
+ <beans:ref bean="cmsProductImage" />
+ </beans:property>
+ <beans:property name="configuration">
+ <beans:ref bean="coreConfiguration" />
+ </beans:property>
+ </beans:bean>
+
+ <!-- CMS implementation for product images -->
+ <beans:bean id="cmsProductImage"
+ class="com.salesmanager.core.business.modules.cms.product.infinispan.CmsImageFileManagerImpl" factory-method="getInstance" >
+ <beans:property name="cacheManager">
+ <beans:ref bean="storeCacheManager" />
+ </beans:property>
+ <beans:property name="rootName" value="product-merchant"/>
+ <!--<beans:property name="rootName" value="/Applications/AMPPS/www/shop-images"/>-->
+ </beans:bean>
+
+
+
+ <!-- Content images manager (logo, other store artifacts) -->
+ <beans:bean id="contentFileManager"
+ class="com.salesmanager.core.business.modules.cms.content.StaticContentFileManagerImpl">
+ <beans:property name="uploadFile">
+ <beans:ref bean="cmsStoreFile" />
+ </beans:property>
+ <beans:property name="getFile">
+ <beans:ref bean="cmsStoreFile" />
+ </beans:property>
+ <beans:property name="removeFile">
+ <beans:ref bean="cmsStoreFile" />
+ </beans:property>
+ </beans:bean>
+
+ <!-- logo, store artifacts -->
+ <beans:bean id="cmsStoreFile"
+ class="com.salesmanager.core.business.modules.cms.content.infinispan.CmsStaticContentFileManagerImpl" factory-method="getInstance" >
+ <beans:property name="cacheManager">
+ <beans:ref bean="storeCacheManager" />
+ </beans:property>
+ <beans:property name="rootName" value="store-merchant"/>
+ <!-- <beans:property name="rootName" value="/Applications/AMPPS/www/shop-images"/> -->
+ </beans:bean>
<!-- Static content files manager (images, pdf...) -->
- <bean id="staticContentFileManager" class="com.salesmanager.core.modules.cms.content.StaticContentFileManagerImpl">
- <property name="uploadFile">
- <ref bean="cmsStaticFile" />
- </property>
- <property name="getFile">
- <ref bean="cmsStaticFile" />
- </property>
- <property name="removeFile">
- <ref bean="cmsStaticFile" />
- </property>
- </bean>
+ <beans:bean id="staticContentFileManager" class="com.salesmanager.core.business.modules.cms.content.StaticContentFileManagerImpl">
+ <beans:property name="uploadFile">
+ <beans:ref bean="cmsStaticFile" />
+ </beans:property>
+ <beans:property name="getFile">
+ <beans:ref bean="cmsStaticFile" />
+ </beans:property>
+ <beans:property name="removeFile">
+ <beans:ref bean="cmsStaticFile" />
+ </beans:property>
+ </beans:bean>
<!-- end of CMS implementation for static content data -->
<!-- CMS implementation for static content data -->
- <bean id="cmsStaticFile" class="com.salesmanager.core.modules.cms.content.CmsStaticContentFileManagerInfinispanImpl" factory-method="getInstance">
- <property name="cacheManager">
- <ref bean="filesCacheManager" />
- </property>
- <property name="rootName" value="store-merchant"/>
- </bean>
+ <beans:bean id="cmsStaticFile" class="com.salesmanager.core.business.modules.cms.content.infinispan.CmsStaticContentFileManagerImpl" factory-method="getInstance">
+ <beans:property name="cacheManager">
+ <beans:ref bean="filesCacheManager" />
+ </beans:property>
+ <beans:property name="rootName" value="store-merchant"/>
+ <!-- <beans:property name="rootName" value="/Applications/AMPPS/www/shop-images/"/> -->
+ </beans:bean>
<!-- product downloads -->
- <bean id="productDownloadsFileManager" class="com.salesmanager.core.modules.cms.content.StaticContentFileManagerImpl">
- <property name="uploadFile">
- <ref bean="cmsProductFile" />
- </property>
- <property name="getFile">
- <ref bean="cmsProductFile" />
- </property>
- <property name="removeFile">
- <ref bean="cmsProductFile" />
- </property>
- </bean>
+ <beans:bean id="productDownloadsFileManager" class="com.salesmanager.core.business.modules.cms.content.StaticContentFileManagerImpl">
+ <beans:property name="uploadFile">
+ <beans:ref bean="cmsProductFile" />
+ </beans:property>
+ <beans:property name="getFile">
+ <beans:ref bean="cmsProductFile" />
+ </beans:property>
+ <beans:property name="removeFile">
+ <beans:ref bean="cmsProductFile" />
+ </beans:property>
+ </beans:bean>
<!-- end of CMS implementation for static content data -->
<!-- CMS implementation for static content data -->
- <bean id="cmsProductFile" class="com.salesmanager.core.modules.cms.content.CmsStaticContentFileManagerInfinispanImpl" factory-method="getInstance">
- <property name="cacheManager">
- <ref bean="storeCacheManager" />
- </property>
- <property name="rootName" value="product-file"/>
- </bean>
-
+ <beans:bean id="cmsProductFile" class="com.salesmanager.core.business.modules.cms.content.infinispan.CmsStaticContentFileManagerImpl" factory-method="getInstance">
+ <beans:property name="cacheManager">
+ <beans:ref bean="storeCacheManager" />
+ </beans:property>
+ <beans:property name="rootName" value="product-file"/>
+ <!-- <beans:property name="rootName" value="/Applications/AMPPS/www/shop-images"/> -->
+ </beans:bean>
+ <!-- Store Cache Manager (infinispan) -->
+ <beans:bean id="storeCacheManager"
+ class="com.salesmanager.core.business.modules.cms.impl.StoreCacheManagerImpl" factory-method="getInstance" >
+ </beans:bean>
- <!-- Store Cache Manager -->
- <bean id="storeCacheManager"
- class="com.salesmanager.core.modules.cms.impl.StoreCacheManagerImpl" factory-method="getInstance" >
- </bean>
- <!-- Invoice -->
- <bean id="invoiceModule"
- class="com.salesmanager.core.modules.order.ODSInvoiceModule" >
- </bean>
+ <!-- Local cache manager (for apache httpd)
+ <beans:bean id="localCacheManager"
+ class="com.salesmanager.core.business.modules.cms.impl.LocalCacheManagerImpl" factory-method="getInstance" >
+ </beans:bean>
+ -->
+
+
- <!--
- Cache manager to handle static content data which includes
+
+ <!-- Cache manager to handle static content data which includes
1. CSS Files
2. JS Files
- 2. Digital data
- -->
-
- <bean id="filesCacheManager"
- class="com.salesmanager.core.modules.cms.impl.StaticContentCacheManagerImpl" factory-method="getInstance" >
- </bean>
-
- <!-- Encryption -->
- <bean id="encryption"
- class="com.salesmanager.core.modules.utils.EncryptionImpl">
- <property name="secretKey" ref="secretKey"/>
- </bean>
-
- <!-- Geo Location -->
- <bean id="geoLocation"
- class="com.salesmanager.core.modules.utils.GeoLocationImpl">
- </bean>
+ 2. Digital data -->
+
+ <beans:bean id="filesCacheManager"
+ class="com.salesmanager.core.business.modules.cms.impl.StaticContentCacheManagerImpl" factory-method="getInstance" >
+ </beans:bean>
+
+ <!--Encryption-->
+ <beans:bean id="encryption"
+ class="com.salesmanager.core.business.modules.utils.EncryptionImpl">
+ <beans:property name="secretKey" ref="secretKey"/>
+ </beans:bean>
+ <!--Geo Location-->
+ <beans:bean id="geoLocation"
+ class="com.salesmanager.core.business.modules.utils.GeoLocationImpl">
+ </beans:bean>
+
+ <!-- Invoices -->
+ <beans:bean id="invoiceModule"
+ class="com.salesmanager.core.business.modules.order.ODSInvoiceModule" >
+ </beans:bean>
+
<!-- Email -->
- <bean id="freemarkerMailConfiguration" class="org.springframework.ui.freemarker.FreeMarkerConfigurationFactoryBean">
+ <beans:bean id="freemarkerMailConfiguration" class="org.springframework.ui.freemarker.FreeMarkerConfigurationFactoryBean">
<!-- Uses HTML with templates and freemarker template engine -->
- <property name="templateLoaderPath" value="/templates/email"/>
- </bean>
+ <beans:property name="templateLoaderPath" value="/templates/email"/>
+ </beans:bean>
- <bean id="mailSender"
+ <beans:bean id="mailSender"
class="org.springframework.mail.javamail.JavaMailSenderImpl">
<!-- configured in systems.properties -->
- <property name="protocol" value="${mailSender.protocol}" />
- <property name="host" value="${mailSender.host}" />
- <property name="port" value="${mailSender.port}" />
-
- <property name="username">
- <value>${mailSender.username}</value>
- </property>
-
- <property name="password">
- <value>${mailSender.password}</value>
- </property>
- <property name="javaMailProperties">
- <props>
- <prop key="mail.smtp.auth">${mailSender.mail.smtp.auth}</prop>
- <prop key="mail.smtp.starttls.enable">${mail.smtp.starttls.enable}</prop>
- </props>
- </property>
- </bean>
-
- <bean id="htmlEmailSender" class="com.salesmanager.core.modules.email.HtmlEmailSenderImpl" >
- <property name="mailSender" ref="mailSender"/>
- <property name="freemarkerMailConfiguration" ref="freemarkerMailConfiguration"/>
- </bean>
-
-
-
-
-
+ <beans:property name="protocol" value="${mailSender.protocol}" />
+ <beans:property name="host" value="${mailSender.host}" />
+ <beans:property name="port" value="${mailSender.port}" />
+
+ <beans:property name="username">
+ <beans:value>${mailSender.username}</beans:value>
+ </beans:property>
+
+ <beans:property name="password">
+ <beans:value>${mailSender.password}</beans:value>
+ </beans:property>
+
+ <beans:property name="javaMailProperties">
+ <beans:props>
+ <beans:prop key="mail.smtp.auth">${mailSender.mail.smtp.auth}</beans:prop>
+ <beans:prop key="mail.smtp.starttls.enable">${mail.smtp.starttls.enable}</beans:prop>
+ </beans:props>
+ </beans:property>
+ </beans:bean>
+ <beans:bean id="htmlEmailSender" class="com.salesmanager.core.business.modules.email.HtmlEmailSenderImpl" >
+ <beans:property name="mailSender" ref="mailSender"/>
+ <beans:property name="freemarkerMailConfiguration" ref="freemarkerMailConfiguration"/>
+ </beans:bean>
-
-
-</beans>
\ No newline at end of file
+</beans:beans>
\ No newline at end of file
diff --git a/sm-core/src/main/resources/spring/shopizer-core-rules.xml b/sm-core/src/main/resources/spring/shopizer-core-rules.xml
old mode 100755
new mode 100644
index c7b05a6..025f103
--- a/sm-core/src/main/resources/spring/shopizer-core-rules.xml
+++ b/sm-core/src/main/resources/spring/shopizer-core-rules.xml
@@ -1,42 +1,43 @@
<?xml version="1.0" encoding="UTF-8"?>
-<beans xmlns="http://www.springframework.org/schema/beans"
+<beans:beans xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:drools="http://drools.org/schema/drools-spring"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="
- http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
- http://drools.org/schema/drools-spring http://anonsvn.jboss.org/repos/labs/labs/jbossrules/trunk/drools-container/drools-spring/src/main/resources/org/drools/container/spring/drools-spring-1.0.0.xsd
- http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.2.xsd">
+ http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+ http://drools.org/schema/drools-spring http://drools.org/schema/drools-spring.xsd
+ http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">
- <!-- Decision table for the the selection of a shipping shipping method -->
+ <!-- Decision table for the the selection of a shipping method -->
<!-- from shopizer-shipping-decision-table-module -->
<drools:kbase id="shippingMethodDecisionBase">
<drools:resources>
- <drools:resource type="DTABLE" source="classpath:rules/shipping-custom-rules.xls"/>
+ <drools:resource type="DTABLE" source="classpath:rules/shipping-decision-rules.xls"/>
</drools:resources>
</drools:kbase>
<drools:ksession id="shippingMethodDecision" name="shippingMethodDecision" type="stateless" kbase="shippingMethodDecisionBase"/>
<!-- concrete module for the above kbase -->
- <bean id="shippingMethodDecisionProcess" class="com.salesmanager.core.modules.integration.shipping.impl.ShippingDecisionPreProcessorImpl">
- <property name="shippingMethodDecision" ref="shippingMethodDecision" />
- <property name="kbase" ref="shippingMethodDecisionBase" />
- </bean>
+ <beans:bean id="shippingMethodDecisionProcess" class="com.salesmanager.core.business.modules.integration.shipping.impl.ShippingDecisionPreProcessorImpl">
+ <beans:property name="shippingMethodDecision" ref="shippingMethodDecision" />
+ <beans:property name="kbase" ref="shippingMethodDecisionBase" />
+ </beans:bean>
+ <!-- Custom shipping price based on drool rules -->
<!-- Basic custom shipping rules -->
<drools:kbase id="shippingPriceDecisionBase">
<drools:resources>
- <drools:resource type="DTABLE" source="classpath:rules/shipping-decision-rules.xls"/>
+ <drools:resource type="DTABLE" source="classpath:rules/shipping-custom-rules.xls"/>
</drools:resources>
</drools:kbase>
<drools:ksession id="shippingPriceRule" name="shippingPriceRule" type="stateless" kbase="shippingPriceDecisionBase"/>
<!-- concrete module for the above kbase -->
- <bean id="customShippingPriceModule" class="com.salesmanager.core.modules.integration.shipping.impl.CustomShippingQuoteRules">
- <property name="shippingPriceRule" ref="shippingPriceRule" />
- <property name="kbase" ref="shippingPriceDecisionBase" />
- </bean>
+ <beans:bean id="customShippingPriceModule" class="com.salesmanager.core.business.modules.integration.shipping.impl.CustomShippingQuoteRules">
+ <beans:property name="shippingPriceRule" ref="shippingPriceRule" />
+ <beans:property name="kbase" ref="shippingPriceDecisionBase" />
+ </beans:bean>
-</beans>
\ No newline at end of file
+</beans:beans>
\ No newline at end of file
diff --git a/sm-core/src/main/resources/spring/shopizer-search.xml b/sm-core/src/main/resources/spring/shopizer-search.xml
old mode 100755
new mode 100644
index f06f2ad..4f0099c
--- a/sm-core/src/main/resources/spring/shopizer-search.xml
+++ b/sm-core/src/main/resources/spring/shopizer-search.xml
@@ -2,7 +2,11 @@
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd">
+ xmlns:util="http://www.springframework.org/schema/util"
+ xsi:schemaLocation="
+ http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+ http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd
+ ">
<!-- can have different search client for indexing & searching -->
<bean id="searchClient" class="com.shopizer.search.utils.SearchClient">
@@ -13,18 +17,21 @@
<!-- Server configuration -->
<bean id="serverConfiguration" class="com.shopizer.search.utils.ServerConfiguration">
- <property name="clusterName" value="${elastic.search.mode.cluster.name}"/>
+ <property name="clusterName" value="${elasticsearch.cluster.name}"/>
<!-- local (embedded version, will create new indexes in the working directory) or remote (requires existing server) -->
- <property name="mode" value="${elastic.search.mode}"/>
+ <property name="mode" value="${elasticsearch.mode}"/>
<!-- http interface to ES server -->
- <property name="clusterHost" value="${elastic.search.cluster.host}"/>
- <property name="clusterPort" value="${elastic.search.cluster.port}"/>
+ <property name="clusterHost" value="${elasticsearch.server.host}"/>
+ <property name="clusterPort" value="${elasticsearch.server.port}"/>
- <property name="proxyUser" value="${elastic.search.cluster.port}"/>
- <property name="proxyPassword" value="${elastic.search.cluster.proxy.password}"/>
+ <property name="proxyUser" value="${elasticsearch.server.proxy.user}"/>
+ <property name="proxyPassword" value="${elasticsearch.server.proxy.password}"/>
</bean>
-
+ <util:list id="facetTermsList" value-type="java.lang.String">
+ <value>categories</value>
+ <value>manufacturer</value>
+ </util:list>
<bean id="searchDelegate" class="com.shopizer.search.services.impl.SearchDelegateImpl">
<property name="searchClient">
@@ -157,6 +164,7 @@
<bean id="keywordindex_fr_defaultstore" class="com.shopizer.search.utils.CustomIndexConfiguration">
+ <property name="collectionName" value="keyword_fr_default"/>
<property name="indexName" value="keyword_fr"/>
<property name="createOnIndexName" value="product_fr"/>
<property name="mappingFileName" value="search/keyword_fr.json"/>
diff --git a/sm-core/src/main/resources/templates/email/email_template_checkout.ftl b/sm-core/src/main/resources/templates/email/email_template_checkout.ftl
old mode 100755
new mode 100644
diff --git a/sm-core/src/main/resources/templates/email/email_template_checkout_download.ftl b/sm-core/src/main/resources/templates/email/email_template_checkout_download.ftl
old mode 100755
new mode 100644
diff --git a/sm-core/src/main/resources/templates/email/email_template_contact.ftl b/sm-core/src/main/resources/templates/email/email_template_contact.ftl
old mode 100755
new mode 100644
diff --git a/sm-core/src/main/resources/templates/email/email_template_customer.ftl b/sm-core/src/main/resources/templates/email/email_template_customer.ftl
old mode 100755
new mode 100644
diff --git a/sm-core/src/main/resources/templates/email/email_template_lowstock.ftl b/sm-core/src/main/resources/templates/email/email_template_lowstock.ftl
old mode 100755
new mode 100644
diff --git a/sm-core/src/main/resources/templates/email/email_template_new_review.ftl b/sm-core/src/main/resources/templates/email/email_template_new_review.ftl
old mode 100755
new mode 100644
diff --git a/sm-core/src/main/resources/templates/email/email_template_new_store.ftl b/sm-core/src/main/resources/templates/email/email_template_new_store.ftl
old mode 100755
new mode 100644
diff --git a/sm-core/src/main/resources/templates/email/email_template_new_user.ftl b/sm-core/src/main/resources/templates/email/email_template_new_user.ftl
old mode 100755
new mode 100644
diff --git a/sm-core/src/main/resources/templates/email/email_template_notification.ftl b/sm-core/src/main/resources/templates/email/email_template_notification.ftl
old mode 100755
new mode 100644
diff --git a/sm-core/src/main/resources/templates/email/email_template_order_status.ftl b/sm-core/src/main/resources/templates/email/email_template_order_status.ftl
old mode 100755
new mode 100644
diff --git a/sm-core/src/main/resources/templates/email/email_template_outofstock.ftl b/sm-core/src/main/resources/templates/email/email_template_outofstock.ftl
old mode 100755
new mode 100644
diff --git a/sm-core/src/main/resources/templates/email/email_template_password_reset_customer.ftl b/sm-core/src/main/resources/templates/email/email_template_password_reset_customer.ftl
old mode 100755
new mode 100644
diff --git a/sm-core/src/main/resources/templates/email/email_template_password_reset_user.ftl b/sm-core/src/main/resources/templates/email/email_template_password_reset_user.ftl
old mode 100755
new mode 100644
diff --git a/sm-core/src/main/resources/templates/email/email_template_sentinvoice.ftl b/sm-core/src/main/resources/templates/email/email_template_sentinvoice.ftl
old mode 100755
new mode 100644
diff --git a/sm-core/src/main/resources/templates/email/email_template_user_password_link.ftl b/sm-core/src/main/resources/templates/email/email_template_user_password_link.ftl
old mode 100755
new mode 100644
diff --git a/sm-core/src/main/resources/templates/invoice/Invoice.ods b/sm-core/src/main/resources/templates/invoice/Invoice.ods
old mode 100755
new mode 100644
Binary files a/sm-core/src/main/resources/templates/invoice/Invoice.ods and b/sm-core/src/main/resources/templates/invoice/Invoice.ods differ
diff --git a/sm-core/src/main/resources/templates/invoice/Invoice_fr.ods b/sm-core/src/main/resources/templates/invoice/Invoice_fr.ods
old mode 100755
new mode 100644
Binary files a/sm-core/src/main/resources/templates/invoice/Invoice_fr.ods and b/sm-core/src/main/resources/templates/invoice/Invoice_fr.ods differ
diff --git a/sm-core/src/test/java/com/salesmanager/test/catalog/ProductTest.java b/sm-core/src/test/java/com/salesmanager/test/catalog/ProductTest.java
new file mode 100644
index 0000000..364cf31
--- /dev/null
+++ b/sm-core/src/test/java/com/salesmanager/test/catalog/ProductTest.java
@@ -0,0 +1,683 @@
+package com.salesmanager.test.catalog;
+
+import java.io.ByteArrayInputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.OutputStream;
+import java.math.BigDecimal;
+import java.sql.Date;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.apache.commons.io.IOUtils;
+import java.io.ByteArrayOutputStream;
+import org.junit.Ignore;
+import org.junit.Test;
+
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.model.catalog.category.Category;
+import com.salesmanager.core.model.catalog.category.CategoryDescription;
+import com.salesmanager.core.model.catalog.product.Product;
+import com.salesmanager.core.model.catalog.product.attribute.ProductAttribute;
+import com.salesmanager.core.model.catalog.product.attribute.ProductOption;
+import com.salesmanager.core.model.catalog.product.attribute.ProductOptionDescription;
+import com.salesmanager.core.model.catalog.product.attribute.ProductOptionType;
+import com.salesmanager.core.model.catalog.product.attribute.ProductOptionValue;
+import com.salesmanager.core.model.catalog.product.attribute.ProductOptionValueDescription;
+import com.salesmanager.core.model.catalog.product.availability.ProductAvailability;
+import com.salesmanager.core.model.catalog.product.description.ProductDescription;
+import com.salesmanager.core.model.catalog.product.file.ProductImageSize;
+import com.salesmanager.core.model.catalog.product.image.ProductImage;
+import com.salesmanager.core.model.catalog.product.manufacturer.Manufacturer;
+import com.salesmanager.core.model.catalog.product.manufacturer.ManufacturerDescription;
+import com.salesmanager.core.model.catalog.product.price.ProductPrice;
+import com.salesmanager.core.model.catalog.product.price.ProductPriceDescription;
+import com.salesmanager.core.model.catalog.product.relationship.ProductRelationship;
+import com.salesmanager.core.model.catalog.product.review.ProductReview;
+import com.salesmanager.core.model.catalog.product.review.ProductReviewDescription;
+import com.salesmanager.core.model.catalog.product.type.ProductType;
+import com.salesmanager.core.model.content.FileContentType;
+import com.salesmanager.core.model.content.ImageContentFile;
+import com.salesmanager.core.model.content.OutputContentFile;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.reference.language.Language;
+
+import junit.framework.Assert;
+
+
+@Ignore
+public class ProductTest extends com.salesmanager.test.common.AbstractSalesManagerCoreTestCase {
+
+ private static final Date date = new Date(System.currentTimeMillis());
+
+ private final String IMAGE_FOLDER = "C:/doc/";
+ private final String IMAGE_NAME = "Hadoop.jpg";
+
+ /**
+ * This method creates multiple products using multiple catelog APIs
+ * @throws ServiceException
+ */
+ @Test
+ public void testCreateProduct() throws Exception {
+
+ Language en = languageService.getByCode("en");
+ Language fr = languageService.getByCode("fr");
+
+ MerchantStore store = merchantService.getByCode(MerchantStore.DEFAULT_STORE);
+ ProductType generalType = productTypeService.getProductType(ProductType.GENERAL_TYPE);
+
+ Category book = new Category();
+ book.setMerchantStore(store);
+ book.setCode("book");
+
+ CategoryDescription bookEnglishDescription = new CategoryDescription();
+ bookEnglishDescription.setName("Book");
+ bookEnglishDescription.setCategory(book);
+ bookEnglishDescription.setLanguage(en);
+
+ CategoryDescription bookFrenchDescription = new CategoryDescription();
+ bookFrenchDescription.setName("Livre");
+ bookFrenchDescription.setCategory(book);
+ bookFrenchDescription.setLanguage(fr);
+
+ List<CategoryDescription> descriptions = new ArrayList<CategoryDescription>();
+ descriptions.add(bookEnglishDescription);
+ descriptions.add(bookFrenchDescription);
+
+ book.setDescriptions(descriptions);
+
+ categoryService.create(book);
+
+ Category music = new Category();
+ music.setMerchantStore(store);
+ music.setCode("music");
+
+ CategoryDescription musicEnglishDescription = new CategoryDescription();
+ musicEnglishDescription.setName("Music");
+ musicEnglishDescription.setCategory(music);
+ musicEnglishDescription.setLanguage(en);
+
+ CategoryDescription musicFrenchDescription = new CategoryDescription();
+ musicFrenchDescription.setName("Musique");
+ musicFrenchDescription.setCategory(music);
+ musicFrenchDescription.setLanguage(fr);
+
+ List<CategoryDescription> descriptions2 = new ArrayList<CategoryDescription>();
+ descriptions2.add(musicEnglishDescription);
+ descriptions2.add(musicFrenchDescription);
+
+ music.setDescriptions(descriptions2);
+
+ categoryService.create(music);
+
+ Category novell = new Category();
+ novell.setMerchantStore(store);
+ novell.setCode("novell");
+
+ CategoryDescription novellEnglishDescription = new CategoryDescription();
+ novellEnglishDescription.setName("Novell");
+ novellEnglishDescription.setCategory(novell);
+ novellEnglishDescription.setLanguage(en);
+
+ CategoryDescription novellFrenchDescription = new CategoryDescription();
+ novellFrenchDescription.setName("Roman");
+ novellFrenchDescription.setCategory(novell);
+ novellFrenchDescription.setLanguage(fr);
+
+ List<CategoryDescription> descriptions3 = new ArrayList<CategoryDescription>();
+ descriptions3.add(novellEnglishDescription);
+ descriptions3.add(novellFrenchDescription);
+
+ novell.setDescriptions(descriptions3);
+
+ novell.setParent(book);
+
+ categoryService.create(novell);
+ categoryService.addChild(book, novell);
+
+ Category tech = new Category();
+ tech.setMerchantStore(store);
+ tech.setCode("tech");
+
+ CategoryDescription techEnglishDescription = new CategoryDescription();
+ techEnglishDescription.setName("Technology");
+ techEnglishDescription.setCategory(tech);
+ techEnglishDescription.setLanguage(en);
+
+ CategoryDescription techFrenchDescription = new CategoryDescription();
+ techFrenchDescription.setName("Technologie");
+ techFrenchDescription.setCategory(tech);
+ techFrenchDescription.setLanguage(fr);
+
+ List<CategoryDescription> descriptions4 = new ArrayList<CategoryDescription>();
+ descriptions4.add(techFrenchDescription);
+ descriptions4.add(techFrenchDescription);
+
+ tech.setDescriptions(descriptions4);
+
+ tech.setParent(book);
+
+ categoryService.create(tech);
+ categoryService.addChild(book, tech);
+
+ Category fiction = new Category();
+ fiction.setMerchantStore(store);
+ fiction.setCode("fiction");
+
+ CategoryDescription fictionEnglishDescription = new CategoryDescription();
+ fictionEnglishDescription.setName("Fiction");
+ fictionEnglishDescription.setCategory(fiction);
+ fictionEnglishDescription.setLanguage(en);
+
+ CategoryDescription fictionFrenchDescription = new CategoryDescription();
+ fictionFrenchDescription.setName("Sc Fiction");
+ fictionFrenchDescription.setCategory(fiction);
+ fictionFrenchDescription.setLanguage(fr);
+
+ List<CategoryDescription> fictiondescriptions = new ArrayList<CategoryDescription>();
+ fictiondescriptions.add(fictionEnglishDescription);
+ fictiondescriptions.add(fictionFrenchDescription);
+
+ fiction.setDescriptions(fictiondescriptions);
+
+ fiction.setParent(novell);
+
+ categoryService.create(fiction);
+ categoryService.addChild(book, fiction);
+
+ Manufacturer oreilley = new Manufacturer();
+ oreilley.setMerchantStore(store);
+ oreilley.setCode("oreilley");
+
+ ManufacturerDescription oreilleyd = new ManufacturerDescription();
+ oreilleyd.setLanguage(en);
+ oreilleyd.setName("O\'reilley");
+ oreilleyd.setManufacturer(oreilley);
+ oreilley.getDescriptions().add(oreilleyd);
+
+ manufacturerService.create(oreilley);
+
+ Manufacturer packed = new Manufacturer();
+ packed.setMerchantStore(store);
+ packed.setCode("packed");
+
+ ManufacturerDescription packedd = new ManufacturerDescription();
+ packedd.setLanguage(en);
+ packedd.setManufacturer(packed);
+ packedd.setName("Packed publishing");
+ packed.getDescriptions().add(packedd);
+
+ manufacturerService.create(packed);
+
+ Manufacturer novells = new Manufacturer();
+ novells.setMerchantStore(store);
+ novells.setCode("novells");
+
+ ManufacturerDescription novellsd = new ManufacturerDescription();
+ novellsd.setLanguage(en);
+ novellsd.setManufacturer(novells);
+ novellsd.setName("Novells publishing");
+ novells.getDescriptions().add(novellsd);
+
+ manufacturerService.create(novells);
+
+ // PRODUCT 1
+
+ Product product = new Product();
+ product.setProductHeight(new BigDecimal(4));
+ product.setProductLength(new BigDecimal(3));
+ product.setProductWidth(new BigDecimal(1));
+ product.setSku("TB12345");
+ product.setManufacturer(oreilley);
+ product.setType(generalType);
+ product.setMerchantStore(store);
+
+ // Product description
+ ProductDescription description = new ProductDescription();
+ description.setName("Spring in Action");
+ description.setLanguage(en);
+ description.setProduct(product);
+
+ product.getDescriptions().add(description);
+
+ //add category
+ product.getCategories().add(tech);
+
+
+
+ // Availability
+ ProductAvailability availability = new ProductAvailability();
+ availability.setProductDateAvailable(date);
+ availability.setProductQuantity(100);
+ availability.setRegion("*");
+ availability.setProduct(product);// associate with product
+
+ //productAvailabilityService.create(availability);
+ product.getAvailabilities().add(availability);
+
+ ProductPrice dprice = new ProductPrice();
+ dprice.setDefaultPrice(true);
+ dprice.setProductPriceAmount(new BigDecimal(29.99));
+ dprice.setProductAvailability(availability);
+
+ ProductPriceDescription dpd = new ProductPriceDescription();
+ dpd.setName("Base price");
+ dpd.setProductPrice(dprice);
+ dpd.setLanguage(en);
+
+ dprice.getDescriptions().add(dpd);
+ availability.getPrices().add(dprice);
+
+
+ /**
+ * Create product
+ */
+ productService.create(product);
+
+
+ ProductReview review = new ProductReview();
+ review.setProduct(product);
+ review.setReviewRating(new Double(4));
+
+ ProductReviewDescription reviewDescription = new ProductReviewDescription();
+ reviewDescription.setLanguage(en);
+ reviewDescription.setDescription("This is a product review");
+ reviewDescription.setName("A review for you");
+ reviewDescription.setProductReview(review);
+ review.getDescriptions().add(reviewDescription);
+
+ productReviewService.create(review);
+
+ review = new ProductReview();
+ review.setProduct(product);
+ review.setReviewRating(new Double(5));
+
+ reviewDescription = new ProductReviewDescription();
+ reviewDescription.setLanguage(en);
+ reviewDescription.setDescription("This is a second product review");
+ reviewDescription.setName("A new review for you");
+ reviewDescription.setProductReview(review);
+ review.getDescriptions().add(reviewDescription);
+
+ productReviewService.create(review);
+
+
+
+ List<Product> products = productService.listByStore(store);
+
+ System.out.println("Total number of items " + products.size());
+
+ //count products by category
+ String lineage = new StringBuilder().append(book.getLineage()).toString();
+
+ List<Category> categories = categoryService.listByLineage(store, lineage);
+
+ List<Long> ids = new ArrayList<Long>();
+ if(categories!=null && categories.size()>0) {
+ for(Category c : categories) {
+ System.out.println("Contains category " + c.getCode());
+ ids.add(c.getId());
+ }
+ }
+
+ List<Object[]> objs = categoryService.countProductsByCategories(store, ids);
+
+ for(Object[] ob : objs) {
+
+
+ Category c = (Category) ob[0];
+ System.out.println("Category " + c.getCode() + " has " + ob[1] + " items");
+
+ }
+
+ //get manufacturer for given categories
+ List<Manufacturer> manufacturers = manufacturerService.listByProductsByCategoriesId(store, ids, en);
+
+ System.out.println("Number of manufacturer for all category " + manufacturers.size());
+
+ //Update product -- get first from the list
+ Product updatableProduct = products.get(0);
+
+ //Get first availability, which is the only one created
+ ProductAvailability updatableAvailability = updatableProduct.getAvailabilities().iterator().next();
+
+ //Get first price, which is the only one created
+ ProductPrice updatablePrice = updatableAvailability.getPrices().iterator().next();
+ updatablePrice.setProductPriceAmount(new BigDecimal(19.99));
+
+
+ //Add a second price
+ ProductPrice anotherPrice = new ProductPrice();
+ anotherPrice.setCode("eco");
+ anotherPrice.setProductPriceAmount(new BigDecimal(1.99));
+ anotherPrice.setProductAvailability(updatableAvailability);
+
+ ProductPriceDescription anotherPriceD = new ProductPriceDescription();
+ anotherPriceD.setName("Eco price");
+ anotherPriceD.setProductPrice(anotherPrice);
+ anotherPriceD.setLanguage(en);
+
+ anotherPrice.getDescriptions().add(anotherPriceD);
+ updatableAvailability.getPrices().add(anotherPrice);
+
+ //Update product
+ productService.update(updatableProduct);
+
+
+ //go and get products again
+ products = productService.listByStore(store);
+
+ updatableProduct = products.get(0);
+
+
+ //test insert, view image
+ testInsertImage(updatableProduct);
+ testViewImage(updatableProduct);
+
+
+ updatableProduct.setDateAvailable(new java.util.Date());
+ productService.saveOrUpdate(updatableProduct);
+
+ //go and get products again
+ products = productService.listByStore(store);
+
+ updatableProduct = products.get(0);
+
+ //test create, view attribute
+ testInsertAttribute(updatableProduct);
+ testViewAttribute(updatableProduct);
+
+ //go and get products again
+ products = productService.listByStore(store);
+
+ updatableProduct = products.get(0);
+
+ testCreateRelationShip(updatableProduct);
+
+
+ //Now remove product
+ productService.delete(updatableProduct);
+
+
+
+ }
+
+
+ private void testViewAttribute(Product product) throws Exception {
+
+ //todo fetch product
+
+ Set<ProductAttribute> attributes = product.getAttributes();
+
+ for(ProductAttribute attribute : attributes) {
+
+
+ ProductOption option = attribute.getProductOption();
+ ProductOptionValue optionValue = attribute.getProductOptionValue();
+
+ System.out.println("Option id " + option.getId() + " OptionValue id " + optionValue.getId());
+
+
+
+ }
+
+
+ }
+
+ private void testInsertAttribute(Product product) throws Exception {
+
+
+ /**
+ * An attribute can be created dynamicaly but the attached Option and Option value need to exist
+ */
+
+ MerchantStore store = product.getMerchantStore();
+
+ Language en = languageService.getByCode("en");
+
+ /**
+ * Create an option
+ */
+ ProductOption option = new ProductOption();
+ option.setMerchantStore(store);
+ option.setCode("copy");
+ option.setProductOptionType(ProductOptionType.Radio.name());
+
+ ProductOptionDescription optionDescription = new ProductOptionDescription();
+ optionDescription.setLanguage(en);
+ optionDescription.setName("Book type");
+ optionDescription.setDescription("Offered in hard and soft copy");
+ optionDescription.setProductOption(option);
+
+ option.getDescriptions().add(optionDescription);
+
+ //create option
+ productOptionService.saveOrUpdate(option);
+
+
+ //option value
+ ProductOptionValue soft = new ProductOptionValue();
+ soft.setMerchantStore(store);
+ soft.setCode("soft");
+
+ ProductOptionValueDescription softDescription = new ProductOptionValueDescription();
+ softDescription.setLanguage(en);
+ softDescription.setName("Soft");
+ softDescription.setDescription("Soft copy");
+ softDescription.setProductOptionValue(soft);
+
+ soft.getDescriptions().add(softDescription);
+
+ //create an option value
+ productOptionValueService.saveOrUpdate(soft);
+
+ //another option value
+ ProductOptionValue hard = new ProductOptionValue();
+ hard.setMerchantStore(store);
+ hard.setCode("hard");
+
+ ProductOptionValueDescription hardDescription = new ProductOptionValueDescription();
+ hardDescription.setLanguage(en);
+ hardDescription.setName("Hard");
+ hardDescription.setDescription("Hard copy");
+ hardDescription.setProductOptionValue(hard);
+
+ hard.getDescriptions().add(hardDescription);
+
+ //create another option value
+ productOptionValueService.saveOrUpdate(hard);
+
+ /** create attributes **/
+ //attributes
+ ProductAttribute attribute = new ProductAttribute();
+ attribute.setProduct(product);
+ attribute.setProductOption(option);
+ attribute.setAttributeDefault(true);
+ attribute.setProductAttributePrice(new BigDecimal(0));//no price variation
+ attribute.setProductAttributeWeight(new BigDecimal(1));//weight variation
+ attribute.setProductOptionValue(hard);
+
+ product.getAttributes().add(attribute);
+
+ //another attribute
+ attribute = new ProductAttribute();
+ attribute.setProduct(product);
+ attribute.setProductOption(option);
+ attribute.setProductAttributePrice(new BigDecimal(0));//no price variation
+ attribute.setProductAttributeWeight(new BigDecimal(0));//no weight variation
+ attribute.setProductOption(option);
+ attribute.setProductOptionValue(soft);
+
+ product.getAttributes().add(attribute);
+
+ productService.saveOrUpdate(product);
+
+
+ }
+
+ /**
+ * Images
+ * @param product
+ * @throws Exception
+ */
+ private void testInsertImage(Product product) throws Exception {
+
+
+ ProductImage productImage = new ProductImage();
+
+ File file1 = new File( IMAGE_FOLDER + IMAGE_NAME);
+
+ if ( !file1.exists() || !file1.canRead() )
+ {
+ throw new ServiceException( "Can't read" + file1.getAbsolutePath() );
+ }
+
+ byte[] is = IOUtils.toByteArray( new FileInputStream( file1 ) );
+ ByteArrayInputStream inputStream = new ByteArrayInputStream( is );
+
+ ImageContentFile cmsContentImage = new ImageContentFile();
+ cmsContentImage.setFileName( file1.getName() );
+ cmsContentImage.setFile( inputStream );
+ cmsContentImage.setFileContentType(FileContentType.PRODUCT);
+
+
+ productImage.setProductImage(file1.getName());
+ productImage.setProduct(product);
+
+ //absolutely required otherwise the file is not created on disk
+ productImage.setImage(inputStream);
+
+ product.getImages().add(productImage);
+
+ productService.saveOrUpdate(product);
+
+
+ }
+
+ private void testViewImage(Product product) throws Exception {
+
+
+ ProductImage productImage = product.getProductImage();
+
+ //equivalent
+ //productImage = productImageService.getById(productImage.getId());
+
+ //get physical small image
+ OutputContentFile contentFile = productImageService.getProductImage(product.getMerchantStore().getCode(), product.getSku(), productImage.getProductImage(), ProductImageSize.SMALL);
+
+ Assert.assertNotNull(contentFile);
+
+ //print small image
+ OutputStream outputStream = new FileOutputStream (IMAGE_FOLDER + "productImage_small_" + contentFile.getFileName());
+
+ ByteArrayOutputStream baos = contentFile.getFile();
+ baos.writeTo(outputStream);
+
+
+ //get physical original image
+ contentFile = productImageService.getProductImage(product.getMerchantStore().getCode(), product.getSku(), productImage.getProductImage(), ProductImageSize.LARGE);
+
+ Assert.assertNotNull(contentFile);
+
+ //print large image
+ outputStream = new FileOutputStream (IMAGE_FOLDER + "productImage_large_" + contentFile.getFileName());
+
+ baos = contentFile.getFile();
+ baos.writeTo(outputStream);
+
+ }
+
+ private void testCreateRelationShip(Product product) throws Exception {
+
+ MerchantStore store = merchantService.getByCode(MerchantStore.DEFAULT_STORE);
+ Language en = languageService.getByCode("en");
+ Manufacturer oreilley = manufacturerService.getByCode(store, "oreilley");
+ ProductType generalType = productTypeService.getProductType(ProductType.GENERAL_TYPE);
+
+ Category tech = categoryService.getByCode(store, "tech");
+
+
+ //create new related product
+ // PRODUCT 1
+
+ Product related = new Product();
+ related.setProductHeight(new BigDecimal(4));
+ related.setProductLength(new BigDecimal(3));
+ related.setProductWidth(new BigDecimal(1));
+ related.setSku("TB67891");
+ related.setManufacturer(oreilley);
+ related.setType(generalType);
+ related.setMerchantStore(store);
+
+ // Product description
+ ProductDescription description = new ProductDescription();
+ description.setName("Spring 4 in Action");
+ description.setLanguage(en);
+ description.setProduct(related);
+
+ product.getDescriptions().add(description);
+
+ //add category
+ product.getCategories().add(tech);
+
+
+
+ // Availability
+ ProductAvailability availability = new ProductAvailability();
+ availability.setProductDateAvailable(date);
+ availability.setProductQuantity(200);
+ availability.setRegion("*");
+ availability.setProduct(related);// associate with product
+
+ //productAvailabilityService.create(availability);
+ related.getAvailabilities().add(availability);
+
+ ProductPrice dprice = new ProductPrice();
+ dprice.setDefaultPrice(true);
+ dprice.setProductPriceAmount(new BigDecimal(39.99));
+ dprice.setProductAvailability(availability);
+
+ ProductPriceDescription dpd = new ProductPriceDescription();
+ dpd.setName("Base price");
+ dpd.setProductPrice(dprice);
+ dpd.setLanguage(en);
+
+ dprice.getDescriptions().add(dpd);
+ availability.getPrices().add(dprice);
+
+ related.getAvailabilities().add(availability);
+
+ productService.save(related);
+
+ ProductRelationship relationship = new ProductRelationship();
+
+ relationship.setActive(true);
+ relationship.setCode("spring");
+ relationship.setProduct(product);
+ relationship.setRelatedProduct(related);
+ relationship.setStore(store);
+
+
+ //because relationships are nor joined fetched, make sure you query relationships first, then ad to an existing list
+ //so relationship and review are they only objects not joined fetch when querying a product
+ //need to do a subsequent query
+ List<ProductRelationship> relationships = productRelationshipService.listByProduct(product);
+
+
+ relationships.add(relationship);
+
+ product.setRelationships(new HashSet<ProductRelationship>(relationships));
+
+ productService.save(product);
+
+
+ }
+
+
+
+
+
+}
\ No newline at end of file
diff --git a/sm-core/src/test/java/com/salesmanager/test/common/AbstractSalesManagerCoreTestCase.java b/sm-core/src/test/java/com/salesmanager/test/common/AbstractSalesManagerCoreTestCase.java
new file mode 100644
index 0000000..b98fd3e
--- /dev/null
+++ b/sm-core/src/test/java/com/salesmanager/test/common/AbstractSalesManagerCoreTestCase.java
@@ -0,0 +1,169 @@
+/**
+ * This application is maintained by CSTI consulting (www.csticonsulting.com).
+ * Licensed under LGPL - Feel free to use it and modify it to your needs !
+ *
+ */
+package com.salesmanager.test.common;
+
+import javax.inject.Inject;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.runner.RunWith;
+import org.springframework.boot.test.SpringApplicationConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.business.services.catalog.category.CategoryService;
+import com.salesmanager.core.business.services.catalog.product.PricingService;
+import com.salesmanager.core.business.services.catalog.product.ProductService;
+import com.salesmanager.core.business.services.catalog.product.attribute.ProductAttributeService;
+import com.salesmanager.core.business.services.catalog.product.attribute.ProductOptionService;
+import com.salesmanager.core.business.services.catalog.product.attribute.ProductOptionValueService;
+import com.salesmanager.core.business.services.catalog.product.availability.ProductAvailabilityService;
+import com.salesmanager.core.business.services.catalog.product.image.ProductImageService;
+import com.salesmanager.core.business.services.catalog.product.manufacturer.ManufacturerService;
+import com.salesmanager.core.business.services.catalog.product.price.ProductPriceService;
+import com.salesmanager.core.business.services.catalog.product.relationship.ProductRelationshipService;
+import com.salesmanager.core.business.services.catalog.product.review.ProductReviewService;
+import com.salesmanager.core.business.services.catalog.product.type.ProductTypeService;
+import com.salesmanager.core.business.services.customer.CustomerService;
+import com.salesmanager.core.business.services.customer.attribute.CustomerOptionService;
+import com.salesmanager.core.business.services.customer.attribute.CustomerOptionSetService;
+import com.salesmanager.core.business.services.customer.attribute.CustomerOptionValueService;
+import com.salesmanager.core.business.services.merchant.MerchantStoreService;
+import com.salesmanager.core.business.services.order.OrderService;
+import com.salesmanager.core.business.services.payments.PaymentService;
+import com.salesmanager.core.business.services.reference.country.CountryService;
+import com.salesmanager.core.business.services.reference.currency.CurrencyService;
+import com.salesmanager.core.business.services.reference.init.InitializationDatabase;
+import com.salesmanager.core.business.services.reference.language.LanguageService;
+import com.salesmanager.core.business.services.reference.zone.ZoneService;
+import com.salesmanager.core.business.services.shoppingcart.ShoppingCartService;
+import com.salesmanager.core.business.services.system.EmailService;
+import com.salesmanager.core.business.utils.ProductPriceUtils;
+import com.salesmanager.test.configuration.ConfigurationTest;
+
+
+/**
+ * @author c.samson
+ *
+ */
+
+@RunWith(SpringJUnit4ClassRunner.class)
+@SpringApplicationConfiguration(classes = {ConfigurationTest.class})
+public class AbstractSalesManagerCoreTestCase {
+
+
+ protected static String CAD_CURRENCY_CODE = "CAD";
+ protected static String USD_CURRENCY_CODE = "USD";
+
+ protected static String ENGLISH_LANGUAGE_CODE = "en";
+ protected static String FRENCH_LANGUAGE_CODE = "fr";
+
+ @Inject
+ protected InitializationDatabase initializationDatabase;
+
+ @Inject
+ protected ProductService productService;
+
+ @Inject
+ protected PricingService pricingService;
+
+ @Inject
+ private ProductPriceUtils priceUtil;
+
+
+ @Inject
+ protected ProductPriceService productPriceService;
+
+ @Inject
+ protected ProductAttributeService productAttributeService;
+
+ @Inject
+ protected ProductOptionService productOptionService;
+
+ @Inject
+ protected ProductOptionValueService productOptionValueService;
+
+ @Inject
+ protected ProductAvailabilityService productAvailabilityService;
+
+ @Inject
+ protected ProductReviewService productReviewService;
+
+ @Inject
+ protected ProductImageService productImageService;
+
+ @Inject
+ protected ProductRelationshipService productRelationshipService;
+
+ @Inject
+ protected CategoryService categoryService;
+
+ @Inject
+ protected MerchantStoreService merchantService;
+
+ @Inject
+ protected ProductTypeService productTypeService;
+
+ @Inject
+ protected LanguageService languageService;
+
+ @Inject
+ protected CountryService countryService;
+
+ @Inject
+ protected CurrencyService currencyService;
+
+ @Inject
+ protected ManufacturerService manufacturerService;
+
+ @Inject
+ protected ZoneService zoneService;
+
+ @Inject
+ protected CustomerService customerService;
+
+ @Inject
+ protected CustomerOptionService customerOptionService;
+
+ @Inject
+ protected CustomerOptionValueService customerOptionValueService;
+
+ @Inject
+ protected CustomerOptionSetService customerOptionSetService;
+
+ @Inject
+ protected OrderService orderService;
+
+ @Inject
+ protected PaymentService paymentService;
+
+ @Inject
+ protected ShoppingCartService shoppingCartService;
+
+ @Inject
+ protected EmailService emailService;
+
+ @Before
+ public void init() throws ServiceException {
+ System.out.println("**** INTO INIT ***");
+ populate();
+
+ }
+
+ @After
+ public void close() throws ServiceException {
+
+ }
+
+ private void populate() throws ServiceException {
+
+
+ initializationDatabase.populate("TEST");
+
+
+ }
+
+}
diff --git a/sm-core/src/test/java/com/salesmanager/test/configuration/ConfigurationTest.java b/sm-core/src/test/java/com/salesmanager/test/configuration/ConfigurationTest.java
new file mode 100644
index 0000000..f65a88d
--- /dev/null
+++ b/sm-core/src/test/java/com/salesmanager/test/configuration/ConfigurationTest.java
@@ -0,0 +1,14 @@
+package com.salesmanager.test.configuration;
+
+import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
+import org.springframework.boot.orm.jpa.EntityScan;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.ImportResource;
+
+@Configuration
+@EnableAutoConfiguration
+@EntityScan(basePackages = {"com.salesmanager.core.model"})
+@ImportResource("spring/test-shopizer-context.xml")
+public class ConfigurationTest {
+
+}
diff --git a/sm-core/src/test/java/com/salesmanager/test/content/ContentImagesTest.java b/sm-core/src/test/java/com/salesmanager/test/content/ContentImagesTest.java
new file mode 100644
index 0000000..8bebf76
--- /dev/null
+++ b/sm-core/src/test/java/com/salesmanager/test/content/ContentImagesTest.java
@@ -0,0 +1,103 @@
+package com.salesmanager.test.content;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.util.Date;
+
+import javax.inject.Inject;
+
+import org.apache.commons.io.IOUtils;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.business.services.content.ContentService;
+import com.salesmanager.core.model.content.FileContentType;
+import com.salesmanager.core.model.content.InputContentFile;
+import com.salesmanager.core.model.content.OutputContentFile;
+import com.salesmanager.core.model.merchant.MerchantStore;
+
+
+
+
+
+
+/**
+ * Test content with infinispan
+ * store logo
+ * @author Carl Samson
+ *
+ */
+@Ignore
+public class ContentImagesTest extends com.salesmanager.test.common.AbstractSalesManagerCoreTestCase {
+
+ private static final Date date = new Date(System.currentTimeMillis());
+
+ @Inject
+ private ContentService contentService;
+
+
+
+ //@Test
+ @Ignore
+ public void createStoreLogo()
+ throws ServiceException, FileNotFoundException, IOException
+ {
+
+ MerchantStore store = merchantService.getByCode( MerchantStore.DEFAULT_STORE );
+
+ final File file1 = new File( "C:/doc/Hadoop.jpg" );
+
+ if ( !file1.exists() || !file1.canRead() )
+ {
+ throw new ServiceException( "Can't read" + file1.getAbsolutePath() );
+ }
+
+ byte[] is = IOUtils.toByteArray( new FileInputStream( file1 ) );
+ ByteArrayInputStream inputStream = new ByteArrayInputStream( is );
+ InputContentFile cmsContentImage = new InputContentFile();
+
+ cmsContentImage.setFileName( file1.getName() );
+ cmsContentImage.setFile(inputStream);
+
+
+ //logo as a content
+ contentService.addLogo(store.getCode(), cmsContentImage);
+
+ store.setStoreLogo(file1.getName() );
+ merchantService.update(store);
+
+ //query the store
+ store = merchantService.getByCode( MerchantStore.DEFAULT_STORE );
+
+
+
+ //get the logo
+ String logo = store.getStoreLogo();
+
+ OutputContentFile image = contentService.getContentFile(store.getCode(), FileContentType.LOGO, logo);
+
+ //print image
+ OutputStream outputStream = new FileOutputStream ("C:/doc/logo-" + image.getFileName());
+
+ ByteArrayOutputStream baos = image.getFile();
+ baos.writeTo(outputStream);
+
+
+ //remove image
+ contentService.removeFile(store.getCode(), FileContentType.LOGO, store.getStoreLogo());
+
+
+
+ }
+
+
+
+}
\ No newline at end of file
diff --git a/sm-core/src/test/java/com/salesmanager/test/content/StaticContentTest.java b/sm-core/src/test/java/com/salesmanager/test/content/StaticContentTest.java
new file mode 100644
index 0000000..0731882
--- /dev/null
+++ b/sm-core/src/test/java/com/salesmanager/test/content/StaticContentTest.java
@@ -0,0 +1,86 @@
+package com.salesmanager.test.content;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+
+import javax.inject.Inject;
+
+import org.apache.commons.io.IOUtils;
+import org.junit.Ignore;
+import org.junit.Test;
+
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.business.services.content.ContentService;
+import com.salesmanager.core.model.content.FileContentType;
+import com.salesmanager.core.model.content.InputContentFile;
+import com.salesmanager.core.model.content.OutputContentFile;
+import com.salesmanager.core.model.merchant.MerchantStore;
+
+
+
+/**
+ * Test
+ *
+ * - static content files (.js, .pdf etc)
+ * - static content images (jpg, gig ...)
+ * @author Carl Samson
+ *
+ */
+@Ignore
+public class StaticContentTest extends com.salesmanager.test.common.AbstractSalesManagerCoreTestCase {
+
+
+ @Inject
+ private ContentService contentService;
+
+
+ //@Test
+ @Ignore
+ public void createImage()
+ throws ServiceException, FileNotFoundException, IOException
+ {
+
+ MerchantStore store = merchantService.getByCode( MerchantStore.DEFAULT_STORE );
+ final File file1 = new File( "c:/doc/Hadoop.jpg" );
+
+ if ( !file1.exists() || !file1.canRead() )
+ {
+ throw new ServiceException( "Can't read" + file1.getAbsolutePath() );
+ }
+
+ final byte[] is = IOUtils.toByteArray( new FileInputStream( file1 ) );
+ final ByteArrayInputStream inputStream = new ByteArrayInputStream( is );
+ final InputContentFile cmsContentImage = new InputContentFile();
+ cmsContentImage.setFileName( file1.getName() );
+ cmsContentImage.setFile( inputStream );
+ cmsContentImage.setFileContentType(FileContentType.IMAGE);
+
+ //Add image
+ contentService.addContentFile(store.getCode(), cmsContentImage);
+
+
+ //get image
+ OutputContentFile image = contentService.getContentFile(store.getCode(), FileContentType.IMAGE, file1.getName());
+
+ //print image
+ OutputStream outputStream = new FileOutputStream ("c:/doc/content-" + image.getFileName());
+
+ ByteArrayOutputStream baos = image.getFile();
+ baos.writeTo(outputStream);
+
+
+ //remove image
+ contentService.removeFile(store.getCode(), FileContentType.IMAGE, file1.getName());
+
+
+
+ }
+
+
+}
\ No newline at end of file
diff --git a/sm-core/src/test/java/com/salesmanager/test/customer/CustomerTest.java b/sm-core/src/test/java/com/salesmanager/test/customer/CustomerTest.java
new file mode 100644
index 0000000..944b164
--- /dev/null
+++ b/sm-core/src/test/java/com/salesmanager/test/customer/CustomerTest.java
@@ -0,0 +1,221 @@
+package com.salesmanager.test.customer;
+
+import java.util.Date;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.junit.Ignore;
+import org.junit.Test;
+
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.model.common.Billing;
+import com.salesmanager.core.model.common.Delivery;
+import com.salesmanager.core.model.customer.Customer;
+import com.salesmanager.core.model.customer.CustomerGender;
+import com.salesmanager.core.model.customer.attribute.CustomerAttribute;
+import com.salesmanager.core.model.customer.attribute.CustomerOption;
+import com.salesmanager.core.model.customer.attribute.CustomerOptionDescription;
+import com.salesmanager.core.model.customer.attribute.CustomerOptionSet;
+import com.salesmanager.core.model.customer.attribute.CustomerOptionValue;
+import com.salesmanager.core.model.customer.attribute.CustomerOptionValueDescription;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.reference.country.Country;
+import com.salesmanager.core.model.reference.language.Language;
+import com.salesmanager.core.model.reference.zone.Zone;
+
+
+
+@Ignore
+public class CustomerTest extends com.salesmanager.test.common.AbstractSalesManagerCoreTestCase {
+
+ @Test
+ public void createCustomer() throws ServiceException {
+
+
+ Language en = languageService.getByCode("en");
+
+
+ MerchantStore store = merchantService.getByCode(MerchantStore.DEFAULT_STORE);
+ Country country = countryService.getByCode("CA");
+ Zone zone = zoneService.getByCode("QC");
+
+ /** Core customer attributes **/
+ Customer customer = new Customer();
+ customer.setMerchantStore(store);
+ customer.setEmailAddress("test@test.com");
+ customer.setGender(CustomerGender.M);
+
+ customer.setAnonymous(true);
+ customer.setCompany("ifactory");
+ customer.setDateOfBirth(new Date());
+ customer.setNick("My nick");
+ customer.setPassword("123456");
+ customer.setDefaultLanguage(store.getDefaultLanguage());
+
+ Delivery delivery = new Delivery();
+ delivery.setAddress("Shipping address");
+ delivery.setCountry(country);
+ delivery.setZone(zone);
+
+
+ Billing billing = new Billing();
+ billing.setFirstName("John");
+ billing.setLastName("Bossanova");
+ billing.setAddress("Billing address");
+ billing.setCountry(country);
+ billing.setZone(zone);
+
+ customer.setBilling(billing);
+ customer.setDelivery(delivery);
+
+ customerService.create(customer);
+ customer = customerService.getById(customer.getId());
+
+
+ //create an option value
+ CustomerOptionValue yes = new CustomerOptionValue();
+ yes.setCode("yes");
+ yes.setMerchantStore(store);
+ CustomerOptionValueDescription yesDescription = new CustomerOptionValueDescription();
+ yesDescription.setLanguage(en);
+ yesDescription.setCustomerOptionValue(yes);
+
+ CustomerOptionValueDescription yes_sir = new CustomerOptionValueDescription();
+ yes_sir.setCustomerOptionValue(yes);
+ yes_sir.setDescription("Yes sir!");
+ yes_sir.setName("Yes sir!");
+ yes_sir.setLanguage(en);
+ yes.getDescriptions().add(yes_sir);
+
+ //needs to be saved before using it
+ customerOptionValueService.create(yes);
+
+ CustomerOptionValue no = new CustomerOptionValue();
+ no.setCode("no");
+ no.setMerchantStore(store);
+ CustomerOptionValueDescription noDescription = new CustomerOptionValueDescription();
+ noDescription.setLanguage(en);
+ noDescription.setCustomerOptionValue(no);
+
+ CustomerOptionValueDescription no_sir = new CustomerOptionValueDescription();
+ no_sir.setCustomerOptionValue(no);
+ no_sir.setDescription("Nope!");
+ no_sir.setName("Nope!");
+ no_sir.setLanguage(en);
+ no.getDescriptions().add(no_sir);
+
+ //needs to be saved before using it
+ customerOptionValueService.create(no);
+
+
+ //create a customer option to be used
+ CustomerOption subscribedToMailingList = new CustomerOption();
+ subscribedToMailingList.setActive(true);
+ subscribedToMailingList.setPublicOption(true);
+ subscribedToMailingList.setCode("subscribedToMailingList");
+ subscribedToMailingList.setMerchantStore(store);
+
+ CustomerOptionDescription mailingListDesciption= new CustomerOptionDescription();
+ mailingListDesciption.setName("Subscribed to mailing list");
+ mailingListDesciption.setDescription("Subscribed to mailing list");
+ mailingListDesciption.setLanguage(en);
+ mailingListDesciption.setCustomerOption(subscribedToMailingList);
+
+ Set<CustomerOptionDescription> mailingListDesciptionList = new HashSet<CustomerOptionDescription>();
+ mailingListDesciptionList.add(mailingListDesciption);
+ subscribedToMailingList.setDescriptions(mailingListDesciptionList);
+
+ customerOptionService.create(subscribedToMailingList);
+
+
+ //create a customer option to be used
+ CustomerOption hasReturnedItems = new CustomerOption();
+ hasReturnedItems.setActive(true);
+ hasReturnedItems.setPublicOption(true);
+ hasReturnedItems.setCode("hasReturnedItems");
+ hasReturnedItems.setMerchantStore(store);
+
+ CustomerOptionDescription hasReturnedItemsDesciption= new CustomerOptionDescription();
+ hasReturnedItemsDesciption.setName("Has returned items");
+ hasReturnedItemsDesciption.setDescription("Has returned items");
+ hasReturnedItemsDesciption.setLanguage(en);
+ hasReturnedItemsDesciption.setCustomerOption(hasReturnedItems);
+
+ Set<CustomerOptionDescription> hasReturnedItemsList = new HashSet<CustomerOptionDescription>();
+ hasReturnedItemsList.add(hasReturnedItemsDesciption);
+ hasReturnedItems.setDescriptions(hasReturnedItemsList);
+
+ customerOptionService.create(hasReturnedItems);
+
+ subscribedToMailingList.setSortOrder(3);
+
+ customerOptionService.update(subscribedToMailingList);
+
+ //--
+ //now create an option set (association of a customer option with possible customer option values)
+ //--
+
+ //possible yes
+ CustomerOptionSet mailingListSetYes = new CustomerOptionSet();
+
+ mailingListSetYes.setSortOrder(0);
+ mailingListSetYes.setCustomerOption(subscribedToMailingList);
+ mailingListSetYes.setCustomerOptionValue(yes);
+
+ customerOptionSetService.create(mailingListSetYes);
+
+ //possible no
+ CustomerOptionSet mailingListSetNo = new CustomerOptionSet();
+ //mailingListSetNo.setPk(mailingListSetNoId);
+ mailingListSetNo.setSortOrder(1);
+ mailingListSetNo.setCustomerOption(subscribedToMailingList);
+ mailingListSetNo.setCustomerOptionValue(no);
+
+ customerOptionSetService.create(mailingListSetNo);
+
+ //possible has returned items
+
+ CustomerOptionSet hasReturnedItemsYes = new CustomerOptionSet();
+ hasReturnedItemsYes.setSortOrder(0);
+ hasReturnedItemsYes.setCustomerOption(hasReturnedItems);
+ hasReturnedItemsYes.setCustomerOptionValue(yes);
+
+ customerOptionSetService.create(hasReturnedItemsYes);
+
+
+ subscribedToMailingList.setSortOrder(2);
+ customerOptionService.update(subscribedToMailingList);
+
+ CustomerOption option = customerOptionService.getById(subscribedToMailingList.getId());
+
+ option.setSortOrder(4);
+ customerOptionService.update(option);
+
+ List<CustomerOptionSet> optionSetList = customerOptionSetService.listByStore(store, en);
+
+ //Assert.assertEquals(3, optionSetList.size());
+ System.out.println("Size of options : " + optionSetList.size());
+
+ /**
+ * Now create a customer option attribute
+ * A customer attribute is a selected customer option set transformed to an
+ * attribute for a given customer
+ */
+
+ CustomerAttribute customerAttributeMailingList = new CustomerAttribute();
+ customerAttributeMailingList.setCustomer(customer);
+ customerAttributeMailingList.setCustomerOption(subscribedToMailingList);
+ customerAttributeMailingList.setCustomerOptionValue(no);
+
+ customer.getAttributes().add(customerAttributeMailingList);
+
+ customerService.save(customer);
+
+ customerService.delete(customer);
+
+
+
+
+ }
+}
diff --git a/sm-core/src/test/java/com/salesmanager/test/merchant/MerchantTest.java b/sm-core/src/test/java/com/salesmanager/test/merchant/MerchantTest.java
new file mode 100644
index 0000000..6b7d321
--- /dev/null
+++ b/sm-core/src/test/java/com/salesmanager/test/merchant/MerchantTest.java
@@ -0,0 +1,29 @@
+package com.salesmanager.test.merchant;
+
+import org.junit.Ignore;
+import org.junit.Test;
+
+import com.salesmanager.test.common.AbstractSalesManagerCoreTestCase;
+
+/**
+ * https://springframework.guru/spring-boot-web-application-part-3-spring-data-jpa/
+ * http://docs.spring.io/spring/docs/4.0.x/spring-framework-reference/html/xsd-config.html
+ * http://docs.spring.io/spring-data/jpa/docs/current/reference/html/
+ * http://techblog.outbrain.com/2014/05/so-long-spring-xmls/
+ * http://jdpgrailsdev.github.io/blog/2014/09/09/spring_data_hibernate_join.html
+ * @author c.samson
+ *
+ */
+
+@Ignore
+public class MerchantTest extends AbstractSalesManagerCoreTestCase {
+
+
+ //@Test
+ @Ignore
+ public void testReferences() {
+ System.out.println("No tests in merchant");
+ }
+
+
+}
diff --git a/sm-core/src/test/java/com/salesmanager/test/order/OrderTest.java b/sm-core/src/test/java/com/salesmanager/test/order/OrderTest.java
new file mode 100644
index 0000000..f7891a5
--- /dev/null
+++ b/sm-core/src/test/java/com/salesmanager/test/order/OrderTest.java
@@ -0,0 +1,402 @@
+package com.salesmanager.test.order;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+import com.salesmanager.core.business.constants.Constants;
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.model.catalog.category.Category;
+import com.salesmanager.core.model.catalog.category.CategoryDescription;
+import com.salesmanager.core.model.catalog.product.Product;
+import com.salesmanager.core.model.catalog.product.attribute.ProductAttribute;
+import com.salesmanager.core.model.catalog.product.attribute.ProductOption;
+import com.salesmanager.core.model.catalog.product.attribute.ProductOptionDescription;
+import com.salesmanager.core.model.catalog.product.attribute.ProductOptionType;
+import com.salesmanager.core.model.catalog.product.attribute.ProductOptionValue;
+import com.salesmanager.core.model.catalog.product.attribute.ProductOptionValueDescription;
+import com.salesmanager.core.model.catalog.product.availability.ProductAvailability;
+import com.salesmanager.core.model.catalog.product.description.ProductDescription;
+import com.salesmanager.core.model.catalog.product.manufacturer.Manufacturer;
+import com.salesmanager.core.model.catalog.product.manufacturer.ManufacturerDescription;
+import com.salesmanager.core.model.catalog.product.price.ProductPrice;
+import com.salesmanager.core.model.catalog.product.price.ProductPriceDescription;
+import com.salesmanager.core.model.catalog.product.price.ProductPriceType;
+import com.salesmanager.core.model.catalog.product.type.ProductType;
+import com.salesmanager.core.model.common.Billing;
+import com.salesmanager.core.model.common.Delivery;
+import com.salesmanager.core.model.customer.Customer;
+import com.salesmanager.core.model.customer.CustomerGender;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.order.Order;
+import com.salesmanager.core.model.order.OrderCriteria;
+import com.salesmanager.core.model.order.OrderList;
+import com.salesmanager.core.model.order.OrderTotal;
+import com.salesmanager.core.model.order.orderproduct.OrderProduct;
+import com.salesmanager.core.model.order.orderproduct.OrderProductAttribute;
+import com.salesmanager.core.model.order.orderproduct.OrderProductPrice;
+import com.salesmanager.core.model.order.orderstatus.OrderStatus;
+import com.salesmanager.core.model.order.orderstatus.OrderStatusHistory;
+import com.salesmanager.core.model.order.payment.CreditCard;
+import com.salesmanager.core.model.payments.CreditCardType;
+import com.salesmanager.core.model.payments.PaymentType;
+import com.salesmanager.core.model.reference.country.Country;
+import com.salesmanager.core.model.reference.currency.Currency;
+import com.salesmanager.core.model.reference.language.Language;
+import com.salesmanager.core.model.reference.zone.Zone;
+
+
+@Ignore
+public class OrderTest extends com.salesmanager.test.common.AbstractSalesManagerCoreTestCase {
+
+
+
+
+ @Test
+ public void getMerchantOrders() throws ServiceException {
+
+
+
+ Currency currency = currencyService.getByCode(USD_CURRENCY_CODE);
+ Country country = countryService.getByCode("US");
+ Zone zone = zoneService.getByCode("VT");
+ Language en = languageService.getByCode("en");
+
+ MerchantStore merchant = merchantService.getByCode( MerchantStore.DEFAULT_STORE );
+
+ /** Create a customer **/
+ Customer customer = new Customer();
+ customer.setMerchantStore(merchant);
+ customer.setDefaultLanguage(en);
+ customer.setEmailAddress("email@email.com");
+ customer.setPassword("-1999");
+ customer.setNick("My New nick");
+ customer.setCompany(" Apple");
+ customer.setGender(CustomerGender.M);
+ customer.setDateOfBirth(new Date());
+
+ Billing billing = new Billing();
+ billing.setAddress("Billing address");
+ billing.setCity("Billing city");
+ billing.setCompany("Billing company");
+ billing.setCountry(country);
+ billing.setFirstName("Carl");
+ billing.setLastName("Samson");
+ billing.setPostalCode("Billing postal code");
+ billing.setState("Billing state");
+ billing.setZone(zone);
+
+ Delivery delivery = new Delivery();
+ delivery.setAddress("Shipping address");
+ delivery.setCountry(country);
+ delivery.setZone(zone);
+
+ customer.setBilling(billing);
+ customer.setDelivery(delivery);
+
+ customerService.create(customer);
+
+
+ //create a product with attributes
+
+ /** CATALOG CREATION **/
+
+ ProductType generalType = productTypeService.getProductType(ProductType.GENERAL_TYPE);
+
+ /**
+ * Create the category
+ */
+ Category shirts = new Category();
+ shirts.setMerchantStore(merchant);
+ shirts.setCode("shirts");
+
+ CategoryDescription shirtsEnglishDescription = new CategoryDescription();
+ shirtsEnglishDescription.setName("Shirts");
+ shirtsEnglishDescription.setCategory(shirts);
+ shirtsEnglishDescription.setLanguage(en);
+
+ List<CategoryDescription> descriptions = new ArrayList<CategoryDescription>();
+ descriptions.add(shirtsEnglishDescription);
+
+
+ shirts.setDescriptions(descriptions);
+ categoryService.create(shirts);
+
+
+ /**
+ * Create a manufacturer
+ */
+ Manufacturer addidas = new Manufacturer();
+ addidas.setMerchantStore(merchant);
+ addidas.setCode("addidas");
+
+ ManufacturerDescription addidasDesc = new ManufacturerDescription();
+ addidasDesc.setLanguage(en);
+ addidasDesc.setManufacturer(addidas);
+ addidasDesc.setName("Addidas");
+ addidas.getDescriptions().add(addidasDesc);
+
+ manufacturerService.create(addidas);
+
+ /**
+ * Create an option
+ */
+ ProductOption option = new ProductOption();
+ option.setMerchantStore(merchant);
+ option.setCode("color");
+ option.setProductOptionType(ProductOptionType.Radio.name());
+
+ ProductOptionDescription optionDescription = new ProductOptionDescription();
+ optionDescription.setLanguage(en);
+ optionDescription.setName("Color");
+ optionDescription.setDescription("Item color");
+ optionDescription.setProductOption(option);
+
+ option.getDescriptions().add(optionDescription);
+
+ productOptionService.saveOrUpdate(option);
+
+
+ /** first option value **/
+ ProductOptionValue white = new ProductOptionValue();
+ white.setMerchantStore(merchant);
+ white.setCode("white");
+
+ ProductOptionValueDescription whiteDescription = new ProductOptionValueDescription();
+ whiteDescription.setLanguage(en);
+ whiteDescription.setName("White");
+ whiteDescription.setDescription("White color");
+ whiteDescription.setProductOptionValue(white);
+
+ white.getDescriptions().add(whiteDescription);
+
+ productOptionValueService.saveOrUpdate(white);
+
+
+ ProductOptionValue black = new ProductOptionValue();
+ black.setMerchantStore(merchant);
+ black.setCode("black");
+
+ /** second option value **/
+ ProductOptionValueDescription blackDesc = new ProductOptionValueDescription();
+ blackDesc.setLanguage(en);
+ blackDesc.setName("Black");
+ blackDesc.setDescription("Black color");
+ blackDesc.setProductOptionValue(black);
+
+ black.getDescriptions().add(blackDesc);
+
+ productOptionValueService.saveOrUpdate(black);
+
+
+ /**
+ * Create a complex product
+ */
+ Product product = new Product();
+ product.setProductHeight(new BigDecimal(4));
+ product.setProductLength(new BigDecimal(3));
+ product.setProductWidth(new BigDecimal(1));
+ product.setSku("TB12345");
+ product.setManufacturer(addidas);
+ product.setType(generalType);
+ product.setMerchantStore(merchant);
+
+ // Product description
+ ProductDescription description = new ProductDescription();
+ description.setName("Short sleeves shirt");
+ description.setLanguage(en);
+ description.setProduct(product);
+
+ product.getDescriptions().add(description);
+ product.getCategories().add(shirts);
+
+
+ //availability
+ ProductAvailability availability = new ProductAvailability();
+ availability.setProductDateAvailable(new Date());
+ availability.setProductQuantity(100);
+ availability.setRegion("*");
+ availability.setProduct(product);// associate with product
+
+ //price
+ ProductPrice dprice = new ProductPrice();
+ dprice.setDefaultPrice(true);
+ dprice.setProductPriceAmount(new BigDecimal(29.99));
+ dprice.setProductAvailability(availability);
+
+
+
+ ProductPriceDescription dpd = new ProductPriceDescription();
+ dpd.setName("Base price");
+ dpd.setProductPrice(dprice);
+ dpd.setLanguage(en);
+
+ dprice.getDescriptions().add(dpd);
+ availability.getPrices().add(dprice);
+ product.getAvailabilities().add(availability);
+
+
+ //attributes
+ //white
+ ProductAttribute whiteAttribute = new ProductAttribute();
+ whiteAttribute.setProduct(product);
+ whiteAttribute.setProductOption(option);
+ whiteAttribute.setAttributeDefault(true);
+ whiteAttribute.setProductAttributePrice(new BigDecimal(0));//no price variation
+ whiteAttribute.setProductAttributeWeight(new BigDecimal(0));//no weight variation
+ whiteAttribute.setProductOption(option);
+ whiteAttribute.setProductOptionValue(white);
+
+ product.getAttributes().add(whiteAttribute);
+ //black
+ ProductAttribute blackAttribute = new ProductAttribute();
+ blackAttribute.setProduct(product);
+ blackAttribute.setProductOption(option);
+ blackAttribute.setProductAttributePrice(new BigDecimal(5));//5 + dollars
+ blackAttribute.setProductAttributeWeight(new BigDecimal(0));//no weight variation
+ blackAttribute.setProductOption(option);
+ blackAttribute.setProductOptionValue(black);
+
+ product.getAttributes().add(blackAttribute);
+
+ productService.saveOrUpdate(product);
+
+
+
+
+ /** Create an order **/
+ Order order = new Order();
+
+
+
+ /** payment details **/
+ CreditCard creditCard = new CreditCard();
+ creditCard.setCardType(CreditCardType.VISA);
+
+ creditCard.setCcCvv("123");
+ creditCard.setCcExpires("12/30/2020" );
+ creditCard.setCcNumber( "123456789");
+ creditCard.setCcOwner("ccOwner" );
+ order.setCreditCard(creditCard);
+
+ /** order core attributes **/
+ order.setDatePurchased(new Date());
+ order.setCurrency(currency);
+ order.setMerchant(merchant);
+ order.setLastModified(new Date());
+ order.setCurrencyValue(new BigDecimal(1));//no price variation because of the currency
+ order.setCustomerId(new Long(1) );
+ order.setDelivery(delivery);
+ order.setIpAddress("ipAddress" );
+ order.setMerchant(merchant);
+ order.setOrderDateFinished(new Date());
+
+ order.setPaymentType(PaymentType.CREDITCARD);
+ order.setPaymentModuleCode("payment Module Code");
+ order.setShippingModuleCode("UPS" );
+ order.setStatus( OrderStatus.ORDERED);
+ order.setCustomerAgreement(true);
+ order.setConfirmedAddress(true);
+ order.setTotal(dprice.getProductPriceAmount());
+ order.setCustomerEmailAddress(customer.getEmailAddress());
+
+ order.setBilling(billing);
+ order.setDelivery(delivery);
+
+
+ /** ORDER PRODUCT **/
+
+ //OrderProduct
+ OrderProduct oproduct = new OrderProduct();
+ oproduct.setDownloads(null);
+ oproduct.setOneTimeCharge(dprice.getProductPriceAmount());
+ oproduct.setOrder(order);
+ oproduct.setProductName( description.getName() );
+ oproduct.setProductQuantity(1);
+ oproduct.setSku(product.getSku());
+
+ //set order product price
+ OrderProductPrice orderProductPrice = new OrderProductPrice();
+ orderProductPrice.setDefaultPrice(true);//default price (same as default product price)
+ orderProductPrice.setOrderProduct(oproduct);
+ orderProductPrice.setProductPrice(dprice.getProductPriceAmount());
+ orderProductPrice.setProductPriceCode(ProductPriceType.ONE_TIME.name());
+
+
+ oproduct.getPrices().add(orderProductPrice);
+
+ //order product attribute
+
+ OrderProductAttribute orderProductAttribute = new OrderProductAttribute();
+ orderProductAttribute.setOrderProduct(oproduct);
+ orderProductAttribute.setProductAttributePrice(new BigDecimal("0.00"));//no extra charge
+ orderProductAttribute.setProductAttributeName(whiteDescription.getName());
+ orderProductAttribute.setProductOptionId(option.getId());
+ orderProductAttribute.setProductOptionValueId(white.getId());
+
+ oproduct.getOrderAttributes().add(orderProductAttribute);
+
+ order.getOrderProducts().add(oproduct);
+
+ /** ORDER TOTAL **/
+
+ OrderTotal subTotal = new OrderTotal();
+ subTotal.setOrder(order);
+ subTotal.setOrderTotalCode(Constants.OT_SUBTOTAL_MODULE_CODE);
+ subTotal.setSortOrder(0);
+ subTotal.setTitle("Sub Total");
+ subTotal.setValue(dprice.getProductPriceAmount());
+
+ order.getOrderTotal().add(subTotal);
+
+
+ OrderTotal total = new OrderTotal();
+ total.setOrder(order);
+ total.setOrderTotalCode(Constants.OT_TOTAL_MODULE_CODE);
+ total.setSortOrder(1);
+ total.setTitle("Total");
+ total.setValue(dprice.getProductPriceAmount());
+
+ order.getOrderTotal().add(total);
+
+
+
+
+ /** ORDER HISTORY **/
+
+ //create a log entry in order history
+ OrderStatusHistory history = new OrderStatusHistory();
+ history.setOrder(order);
+ history.setDateAdded(new Date());
+ history.setStatus(OrderStatus.ORDERED);
+ history.setComments("We received your order");
+
+ order.getOrderHistory().add(history);
+
+ /** CREATE ORDER **/
+
+ orderService.create(order);
+
+
+ /** SEARCH ORDERS **/
+
+ OrderCriteria criteria = new OrderCriteria();
+ criteria.setStartIndex(0);
+ criteria.setMaxCount(10);
+
+ OrderList ordserList = orderService.listByStore(merchant, criteria);
+
+
+ Assert.assertNotNull(ordserList);
+ Assert.assertTrue("Merchant Orders are null." , ordserList.getOrders() != null);
+ Assert.assertTrue("Merchant Orders count is not one." , (ordserList.getOrders() != null && ordserList.getOrders().size() == 1) );
+ }
+
+
+
+}
\ No newline at end of file
diff --git a/sm-core/src/test/java/com/salesmanager/test/references/ReferencesTest.java b/sm-core/src/test/java/com/salesmanager/test/references/ReferencesTest.java
new file mode 100644
index 0000000..63a5e09
--- /dev/null
+++ b/sm-core/src/test/java/com/salesmanager/test/references/ReferencesTest.java
@@ -0,0 +1,87 @@
+package com.salesmanager.test.references;
+
+import java.util.List;
+
+import javax.inject.Inject;
+
+import org.junit.Ignore;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.SpringApplicationConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.business.services.reference.country.CountryService;
+import com.salesmanager.core.business.services.reference.language.LanguageService;
+import com.salesmanager.core.model.reference.country.Country;
+import com.salesmanager.core.model.reference.country.CountryDescription;
+import com.salesmanager.core.model.reference.language.Language;
+import com.salesmanager.test.configuration.ConfigurationTest;
+
+@RunWith(SpringJUnit4ClassRunner.class)
+@SpringApplicationConfiguration(classes = {ConfigurationTest.class})
+@Ignore
+public class ReferencesTest {
+
+
+
+ @Inject
+ LanguageService languageService;
+
+ @Inject
+ CountryService countryService;
+
+ //@Test
+ @Ignore
+ public void testReferences() throws ServiceException {
+
+ Language en = new Language();
+ en.setCode("en");
+ en.setSortOrder(0);
+
+ languageService.save(en);
+
+ Language fr = new Language();
+ fr.setCode("fr");
+ fr.setSortOrder(0);
+
+ languageService.save(fr);
+
+
+ List<Language> langs = languageService.getLanguages();
+
+ System.out.println("Language size " + langs.size());
+
+ Country us = new Country();
+ us.setIsoCode("US");
+
+ CountryDescription us_en = new CountryDescription();
+ us_en.setLanguage(en);
+ us_en.setCountry(us);
+ us_en.setName("United States");
+
+ us.getDescriptions().add(us_en);
+
+ CountryDescription us_fr = new CountryDescription();
+ us_fr.setLanguage(fr);
+ us_fr.setCountry(us);
+ us_fr.setName("Etats Unis");
+
+ us.getDescriptions().add(us_fr);
+
+ countryService.save(us);
+
+ Country c = countryService.getByCode("US");
+
+ System.out.println(c.getId());
+
+
+
+ System.out.println("***********Done**************");
+
+
+
+ }
+
+}
diff --git a/sm-core/src/test/java/com/salesmanager/test/shipping/ShippingMethodDecisionTest.java b/sm-core/src/test/java/com/salesmanager/test/shipping/ShippingMethodDecisionTest.java
new file mode 100644
index 0000000..e814871
--- /dev/null
+++ b/sm-core/src/test/java/com/salesmanager/test/shipping/ShippingMethodDecisionTest.java
@@ -0,0 +1,94 @@
+package com.salesmanager.test.shipping;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Locale;
+
+import javax.inject.Inject;
+
+import org.junit.Ignore;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.TestExecutionListeners;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import org.springframework.test.context.support.DependencyInjectionTestExecutionListener;
+
+import com.salesmanager.core.business.modules.integration.shipping.impl.ShippingDecisionPreProcessorImpl;
+import com.salesmanager.core.model.common.Delivery;
+import com.salesmanager.core.model.reference.country.Country;
+import com.salesmanager.core.model.reference.zone.Zone;
+import com.salesmanager.core.model.shipping.PackageDetails;
+import com.salesmanager.core.model.shipping.ShippingQuote;
+import com.salesmanager.core.model.system.IntegrationModule;
+
+
+
+@Ignore
+public class ShippingMethodDecisionTest extends com.salesmanager.test.common.AbstractSalesManagerCoreTestCase {
+
+ @Inject
+ ShippingDecisionPreProcessorImpl shippingMethodDecisionProcess;
+
+ //@Test
+ @Ignore
+ public void validateShippingMethod() throws Exception {
+
+ ShippingQuote quote = new ShippingQuote();
+ PackageDetails pDetail = new PackageDetails();
+ pDetail.setShippingHeight(20);
+ pDetail.setShippingLength(10);
+ pDetail.setShippingWeight(70);
+ pDetail.setShippingWidth(78);
+ List<PackageDetails> details = new ArrayList<PackageDetails>();
+ details.add(pDetail);
+
+ Delivery delivery = new Delivery();
+ delivery.setAddress("358 Du Languedoc");
+ delivery.setCity("Boucherville");
+ delivery.setPostalCode("J4B 8J9");
+
+ Country country = new Country();
+ country.setIsoCode("CA");
+ country.setName("Canada");
+
+ //country.setIsoCode("US");
+ //country.setName("United States");
+
+ delivery.setCountry(country);
+
+ Zone zone = new Zone();
+ zone.setCode("QC");
+ zone.setName("Quebec");
+
+ //zone.setCode("NY");
+ //zone.setName("New York");
+
+ delivery.setZone(zone);
+
+ IntegrationModule currentModule = new IntegrationModule();
+ currentModule.setCode("canadapost");
+ quote.setCurrentShippingModule(currentModule);
+ quote.setShippingModuleCode(currentModule.getCode());
+
+ IntegrationModule canadapost = new IntegrationModule();
+ canadapost.setCode("canadapost");
+
+ IntegrationModule ups = new IntegrationModule();
+ ups.setCode("ups");
+
+ IntegrationModule inhouse = new IntegrationModule();
+ inhouse.setCode("customQuotesRules");
+
+ List<IntegrationModule> allModules = new ArrayList<IntegrationModule>();
+ allModules.add(canadapost);
+ allModules.add(ups);
+ allModules.add(inhouse);
+
+ shippingMethodDecisionProcess.prePostProcessShippingQuotes(quote, details, null, delivery, null, null, null, currentModule, null, allModules, Locale.CANADA);
+
+ System.out.println("Done : " + quote.getCurrentShippingModule()!=null ? quote.getCurrentShippingModule().getCode() : currentModule.getCode());
+
+ }
+}
diff --git a/sm-core/src/test/java/com/salesmanager/test/shipping/ShippingQuoteByWeightTest.java b/sm-core/src/test/java/com/salesmanager/test/shipping/ShippingQuoteByWeightTest.java
new file mode 100644
index 0000000..78e1b31
--- /dev/null
+++ b/sm-core/src/test/java/com/salesmanager/test/shipping/ShippingQuoteByWeightTest.java
@@ -0,0 +1,266 @@
+package com.salesmanager.test.shipping;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Set;
+
+import javax.inject.Inject;
+
+import org.junit.Ignore;
+import org.springframework.util.Assert;
+
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.business.services.reference.language.LanguageService;
+import com.salesmanager.core.business.services.shipping.ShippingService;
+import com.salesmanager.core.model.catalog.product.Product;
+import com.salesmanager.core.model.catalog.product.availability.ProductAvailability;
+import com.salesmanager.core.model.catalog.product.description.ProductDescription;
+import com.salesmanager.core.model.catalog.product.price.FinalPrice;
+import com.salesmanager.core.model.catalog.product.price.ProductPrice;
+import com.salesmanager.core.model.catalog.product.price.ProductPriceDescription;
+import com.salesmanager.core.model.catalog.product.type.ProductType;
+import com.salesmanager.core.model.common.Billing;
+import com.salesmanager.core.model.common.Delivery;
+import com.salesmanager.core.model.customer.Customer;
+import com.salesmanager.core.model.customer.CustomerGender;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.reference.country.Country;
+import com.salesmanager.core.model.reference.language.Language;
+import com.salesmanager.core.model.reference.zone.Zone;
+import com.salesmanager.core.model.shipping.ShippingBasisType;
+import com.salesmanager.core.model.shipping.ShippingConfiguration;
+import com.salesmanager.core.model.shipping.ShippingPackageType;
+import com.salesmanager.core.model.shipping.ShippingProduct;
+import com.salesmanager.core.model.shipping.ShippingQuote;
+import com.salesmanager.core.model.shipping.ShippingType;
+import com.salesmanager.core.model.system.Environment;
+import com.salesmanager.core.model.system.IntegrationConfiguration;
+import com.salesmanager.core.modules.integration.shipping.model.CustomShippingQuoteWeightItem;
+import com.salesmanager.core.modules.integration.shipping.model.CustomShippingQuotesConfiguration;
+import com.salesmanager.core.modules.integration.shipping.model.CustomShippingQuotesRegion;
+
+@Ignore
+public class ShippingQuoteByWeightTest extends com.salesmanager.test.common.AbstractSalesManagerCoreTestCase {
+
+ private static final Date date = new Date(System.currentTimeMillis());
+
+ @Inject
+ private ShippingService shippingService;
+
+ @Inject
+ private LanguageService languageService;
+
+
+
+
+ @Ignore
+ //@Test
+ public void testGetCustomShippingQuotesByWeight() throws ServiceException {
+
+ Language en = languageService.getByCode("en");
+ Country country = countryService.getByCode("CA");
+ Zone zone = zoneService.getByCode("QC");
+
+ MerchantStore store = merchantService.getByCode(MerchantStore.DEFAULT_STORE);
+ ProductType generalType = productTypeService.getProductType(ProductType.GENERAL_TYPE);
+
+ //set valid store postal code
+ store.setStorepostalcode("J4B-9J9");
+
+ Product product = new Product();
+ product.setProductHeight(new BigDecimal(4));
+ product.setProductLength(new BigDecimal(3));
+ product.setProductWidth(new BigDecimal(5));
+ product.setProductWeight(new BigDecimal(8));
+ product.setSku("TESTSKU");
+ product.setType(generalType);
+ product.setMerchantStore(store);
+
+ // Product description
+ ProductDescription description = new ProductDescription();
+ description.setName("Product 1");
+ description.setLanguage(en);
+ description.setProduct(product);
+
+ product.getDescriptions().add(description);
+
+ productService.create(product);
+ //productService.saveOrUpdate(product);
+
+
+ // Availability
+ ProductAvailability availability = new ProductAvailability();
+ availability.setProductDateAvailable(new Date());
+ availability.setProductQuantity(100);
+ availability.setRegion("*");
+ availability.setProduct(product);// associate with product
+
+ product.getAvailabilities().add(availability);
+
+ productAvailabilityService.create(availability);
+
+ ProductPrice dprice = new ProductPrice();
+ dprice.setDefaultPrice(true);
+ dprice.setProductPriceAmount(new BigDecimal(29.99));
+ dprice.setProductAvailability(availability);
+
+ ProductPriceDescription dpd = new ProductPriceDescription();
+ dpd.setName("Base price");
+ dpd.setProductPrice(dprice);
+ dpd.setLanguage(en);
+
+ dprice.getDescriptions().add(dpd);
+ availability.getPrices().add(dprice);
+
+ productPriceService.create(dprice);
+
+ //get product
+ product = productService.getByCode("TESTSKU", en);
+
+
+
+
+ //check the product
+ Set<ProductAvailability> avails = product.getAvailabilities();
+ for(ProductAvailability as : avails) {
+ Set<ProductPrice> availabilityPrices = as.getPrices();
+ for(ProductPrice ps : availabilityPrices) {
+ System.out.println(ps.getProductPriceAmount().toString());
+ }
+ }
+
+ //check availability
+ Set<ProductPrice> availabilityPrices = availability.getPrices();
+ for(ProductPrice ps : availabilityPrices) {
+ System.out.println(ps.getProductPriceAmount().toString());
+ }
+
+
+
+ //configure shipping
+ ShippingConfiguration shippingConfiguration = new ShippingConfiguration();
+ shippingConfiguration.setShippingBasisType(ShippingBasisType.SHIPPING);//based on shipping or billing address
+ shippingConfiguration.setShippingType(ShippingType.INTERNATIONAL);
+ shippingConfiguration.setShippingPackageType(ShippingPackageType.ITEM);//individual item pricing or box packaging (see unit test above)
+ //only if package type is package
+ shippingConfiguration.setBoxHeight(5);
+ shippingConfiguration.setBoxLength(5);
+ shippingConfiguration.setBoxWidth(5);
+ shippingConfiguration.setBoxWeight(1);
+ shippingConfiguration.setMaxWeight(10);
+
+ List<String> supportedCountries = new ArrayList<String>();
+ supportedCountries.add("CA");
+ supportedCountries.add("US");
+ supportedCountries.add("UK");
+ supportedCountries.add("FR");
+
+ shippingService.setSupportedCountries(store, supportedCountries);
+
+
+ CustomShippingQuotesConfiguration customConfiguration = new CustomShippingQuotesConfiguration();
+ customConfiguration.setModuleCode("weightBased");
+ customConfiguration.setActive(true);
+
+ CustomShippingQuotesRegion northRegion = new CustomShippingQuotesRegion();
+ northRegion.setCustomRegionName("NORTH");
+
+ List<String> countries = new ArrayList<String>();
+ countries.add("CA");
+ countries.add("US");
+
+ northRegion.setCountries(countries);
+
+ CustomShippingQuoteWeightItem caQuote4 = new CustomShippingQuoteWeightItem();
+ caQuote4.setMaximumWeight(4);
+ caQuote4.setPrice(new BigDecimal(20));
+ CustomShippingQuoteWeightItem caQuote10 = new CustomShippingQuoteWeightItem();
+ caQuote10.setMaximumWeight(10);
+ caQuote10.setPrice(new BigDecimal(50));
+ CustomShippingQuoteWeightItem caQuote100 = new CustomShippingQuoteWeightItem();
+ caQuote100.setMaximumWeight(100);
+ caQuote100.setPrice(new BigDecimal(120));
+ List<CustomShippingQuoteWeightItem> quotes = new ArrayList<CustomShippingQuoteWeightItem>();
+ quotes.add(caQuote4);
+ quotes.add(caQuote10);
+ quotes.add(caQuote100);
+
+ northRegion.setQuoteItems(quotes);
+
+ customConfiguration.getRegions().add(northRegion);
+
+
+ //create an integration configuration - USPS
+
+ IntegrationConfiguration configuration = new IntegrationConfiguration();
+ configuration.setActive(true);
+ configuration.setEnvironment(Environment.TEST.name());
+ configuration.setModuleCode("weightBased");
+
+ //configure module
+
+
+
+ shippingService.saveShippingConfiguration(shippingConfiguration, store);
+ shippingService.saveShippingQuoteModuleConfiguration(configuration, store);//create the basic configuration
+ shippingService.saveCustomShippingConfiguration("weightBased", customConfiguration, store);//and the custom configuration
+
+ //now create ShippingProduct
+ ShippingProduct shippingProduct1 = new ShippingProduct(product);
+ FinalPrice price = pricingService.calculateProductPrice(product);
+ shippingProduct1.setFinalPrice(price);
+
+ List<ShippingProduct> shippingProducts = new ArrayList<ShippingProduct>();
+ shippingProducts.add(shippingProduct1);
+
+ Customer customer = new Customer();
+ customer.setMerchantStore(store);
+ customer.setEmailAddress("test@test.com");
+ customer.setGender(CustomerGender.M);
+ customer.setDefaultLanguage(en);
+
+ customer.setAnonymous(true);
+ customer.setCompany("ifactory");
+ customer.setDateOfBirth(new Date());
+ customer.setNick("My nick");
+ customer.setPassword("123456");
+
+
+ Delivery delivery = new Delivery();
+ delivery.setAddress("Shipping address");
+ delivery.setCity("Boucherville");
+ delivery.setCountry(country);
+ delivery.setZone(zone);
+ delivery.setPostalCode("J5C-6J4");
+
+ //overwrite delivery to US
+/* delivery.setPostalCode("90002");
+ delivery.setCountry(us);
+ Zone california = zoneService.getByCode("CA");
+ delivery.setZone(california);*/
+
+
+ Billing billing = new Billing();
+ billing.setAddress("Billing address");
+ billing.setCountry(country);
+ billing.setZone(zone);
+ billing.setPostalCode("J4B-8J9");
+ billing.setFirstName("Carl");
+ billing.setLastName("Samson");
+
+ customer.setBilling(billing);
+ customer.setDelivery(delivery);
+
+ customerService.create(customer);
+
+ ShippingQuote shippingQuote = shippingService.getShippingQuote(store, delivery, shippingProducts, en);
+
+ Assert.notNull(shippingQuote);
+
+ }
+
+
+
+}
\ No newline at end of file
diff --git a/sm-core/src/test/java/com/salesmanager/test/shoppingcart/ShoppingCartTest.java b/sm-core/src/test/java/com/salesmanager/test/shoppingcart/ShoppingCartTest.java
new file mode 100644
index 0000000..9b56d70
--- /dev/null
+++ b/sm-core/src/test/java/com/salesmanager/test/shoppingcart/ShoppingCartTest.java
@@ -0,0 +1,293 @@
+package com.salesmanager.test.shoppingcart;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Set;
+import java.util.UUID;
+
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.model.catalog.category.Category;
+import com.salesmanager.core.model.catalog.category.CategoryDescription;
+import com.salesmanager.core.model.catalog.product.Product;
+import com.salesmanager.core.model.catalog.product.attribute.ProductAttribute;
+import com.salesmanager.core.model.catalog.product.attribute.ProductOption;
+import com.salesmanager.core.model.catalog.product.attribute.ProductOptionDescription;
+import com.salesmanager.core.model.catalog.product.attribute.ProductOptionType;
+import com.salesmanager.core.model.catalog.product.attribute.ProductOptionValue;
+import com.salesmanager.core.model.catalog.product.attribute.ProductOptionValueDescription;
+import com.salesmanager.core.model.catalog.product.availability.ProductAvailability;
+import com.salesmanager.core.model.catalog.product.description.ProductDescription;
+import com.salesmanager.core.model.catalog.product.manufacturer.Manufacturer;
+import com.salesmanager.core.model.catalog.product.manufacturer.ManufacturerDescription;
+import com.salesmanager.core.model.catalog.product.price.FinalPrice;
+import com.salesmanager.core.model.catalog.product.price.ProductPrice;
+import com.salesmanager.core.model.catalog.product.price.ProductPriceDescription;
+import com.salesmanager.core.model.catalog.product.type.ProductType;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.reference.language.Language;
+import com.salesmanager.core.model.shoppingcart.ShoppingCart;
+import com.salesmanager.core.model.shoppingcart.ShoppingCartAttributeItem;
+import com.salesmanager.core.model.shoppingcart.ShoppingCartItem;
+
+
+
+/**
+ * Test
+ *
+ * - Add a product to persistent shopping cart
+ * - Retrieve an item from the persistent shopping cart
+ * - Rebuild a shopping cart item after the product definition has been modified
+ * @author Carl Samson
+ *
+ */
+@Ignore
+public class ShoppingCartTest extends com.salesmanager.test.common.AbstractSalesManagerCoreTestCase {
+
+
+
+ @Test
+ public void createShoppingCart() throws Exception {
+
+ MerchantStore store = merchantService.getByCode( MerchantStore.DEFAULT_STORE );
+
+
+ Language en = languageService.getByCode("en");
+
+
+ /** CATALOG CREATION **/
+
+ ProductType generalType = productTypeService.getProductType(ProductType.GENERAL_TYPE);
+
+ /**
+ * Create the category
+ */
+ Category shirts = new Category();
+ shirts.setMerchantStore(store);
+ shirts.setCode("shirts");
+
+ CategoryDescription shirtsEnglishDescription = new CategoryDescription();
+ shirtsEnglishDescription.setName("Shirts");
+ shirtsEnglishDescription.setCategory(shirts);
+ shirtsEnglishDescription.setLanguage(en);
+
+ List<CategoryDescription> descriptions = new ArrayList<CategoryDescription>();
+ descriptions.add(shirtsEnglishDescription);
+
+
+ shirts.setDescriptions(descriptions);
+ categoryService.create(shirts);
+
+
+ /**
+ * Create a manufacturer
+ */
+ Manufacturer addidas = new Manufacturer();
+ addidas.setMerchantStore(store);
+ addidas.setCode("addidas");
+
+ ManufacturerDescription addidasDesc = new ManufacturerDescription();
+ addidasDesc.setLanguage(en);
+ addidasDesc.setManufacturer(addidas);
+ addidasDesc.setName("Addidas");
+ addidas.getDescriptions().add(addidasDesc);
+
+ manufacturerService.create(addidas);
+
+ /**
+ * Create an option
+ */
+ ProductOption option = new ProductOption();
+ option.setMerchantStore(store);
+ option.setCode("color");
+ option.setProductOptionType(ProductOptionType.Radio.name());
+
+ ProductOptionDescription optionDescription = new ProductOptionDescription();
+ optionDescription.setLanguage(en);
+ optionDescription.setName("Color");
+ optionDescription.setDescription("Item color");
+ optionDescription.setProductOption(option);
+
+ option.getDescriptions().add(optionDescription);
+
+ productOptionService.saveOrUpdate(option);
+
+
+ /** first option value **/
+ ProductOptionValue white = new ProductOptionValue();
+ white.setMerchantStore(store);
+ white.setCode("white");
+
+ ProductOptionValueDescription whiteDescription = new ProductOptionValueDescription();
+ whiteDescription.setLanguage(en);
+ whiteDescription.setName("White");
+ whiteDescription.setDescription("White color");
+ whiteDescription.setProductOptionValue(white);
+
+ white.getDescriptions().add(whiteDescription);
+
+ productOptionValueService.saveOrUpdate(white);
+
+
+ ProductOptionValue black = new ProductOptionValue();
+ black.setMerchantStore(store);
+ black.setCode("black");
+
+ /** second option value **/
+ ProductOptionValueDescription blackDesc = new ProductOptionValueDescription();
+ blackDesc.setLanguage(en);
+ blackDesc.setName("Black");
+ blackDesc.setDescription("Black color");
+ blackDesc.setProductOptionValue(black);
+
+ black.getDescriptions().add(blackDesc);
+
+ productOptionValueService.saveOrUpdate(black);
+
+
+ /**
+ * Create a complex product
+ */
+ Product product = new Product();
+ product.setProductHeight(new BigDecimal(4));
+ product.setProductLength(new BigDecimal(3));
+ product.setProductWidth(new BigDecimal(1));
+ product.setSku("TB12345");
+ product.setManufacturer(addidas);
+ product.setType(generalType);
+ product.setMerchantStore(store);
+
+ // Product description
+ ProductDescription description = new ProductDescription();
+ description.setName("Short sleeves shirt");
+ description.setLanguage(en);
+ description.setProduct(product);
+
+ product.getDescriptions().add(description);
+ product.getCategories().add(shirts);
+
+
+ //availability
+ ProductAvailability availability = new ProductAvailability();
+ availability.setProductDateAvailable(new Date());
+ availability.setProductQuantity(100);
+ availability.setRegion("*");
+ availability.setProduct(product);// associate with product
+
+ //price
+ ProductPrice dprice = new ProductPrice();
+ dprice.setDefaultPrice(true);
+ dprice.setProductPriceAmount(new BigDecimal(29.99));
+ dprice.setProductAvailability(availability);
+
+
+
+ ProductPriceDescription dpd = new ProductPriceDescription();
+ dpd.setName("Base price");
+ dpd.setProductPrice(dprice);
+ dpd.setLanguage(en);
+
+ dprice.getDescriptions().add(dpd);
+ availability.getPrices().add(dprice);
+ product.getAvailabilities().add(availability);
+
+
+ //attributes
+ //white
+ ProductAttribute whiteAttribute = new ProductAttribute();
+ whiteAttribute.setProduct(product);
+ whiteAttribute.setProductOption(option);
+ whiteAttribute.setAttributeDefault(true);
+ whiteAttribute.setProductAttributePrice(new BigDecimal(0));//no price variation
+ whiteAttribute.setProductAttributeWeight(new BigDecimal(0));//no weight variation
+ whiteAttribute.setProductOption(option);
+ whiteAttribute.setProductOptionValue(white);
+
+ product.getAttributes().add(whiteAttribute);
+ //black
+ ProductAttribute blackAttribute = new ProductAttribute();
+ blackAttribute.setProduct(product);
+ blackAttribute.setProductOption(option);
+ blackAttribute.setProductAttributePrice(new BigDecimal(5));//5 + dollars
+ blackAttribute.setProductAttributeWeight(new BigDecimal(0));//no weight variation
+ blackAttribute.setProductOption(option);
+ blackAttribute.setProductOptionValue(black);
+
+ product.getAttributes().add(blackAttribute);
+
+ productService.saveOrUpdate(product);
+
+ /** Create Shopping cart **/
+
+ ShoppingCart shoppingCart = new ShoppingCart();
+ shoppingCart.setMerchantStore(store);
+
+ UUID cartCode = UUID.randomUUID();
+ shoppingCart.setShoppingCartCode(cartCode.toString());
+
+ ShoppingCartItem item = new ShoppingCartItem(shoppingCart,product);
+ item.setShoppingCart(shoppingCart);
+
+ FinalPrice price = pricingService.calculateProductPrice(product);
+
+ //FinalPrice price = productPriceUtil.getFinalPrice(product);
+
+ item.setItemPrice(price.getFinalPrice());
+ item.setQuantity(1);
+
+ /** user selects black **/
+ ShoppingCartAttributeItem attributeItem = new ShoppingCartAttributeItem(item,blackAttribute);
+ item.getAttributes().add(attributeItem);
+
+ shoppingCart.getLineItems().add(item);
+
+
+ System.out.println("Before create cart");
+
+ shoppingCartService.create(shoppingCart);
+
+
+ /** Now modify product definition **/
+
+ System.out.println("Before getting product");
+
+ Product retrievedProduct = productService.getById(product.getId());
+
+ Set<ProductAttribute> attributes = retrievedProduct.getAttributes();
+
+ Assert.assertNotNull(attributes);
+
+ for(ProductAttribute attr : attributes) {
+ productAttributeService.delete(attr);
+ }
+
+
+
+ /** Retrieve cart **/
+
+ System.out.println("Before getting cart");
+
+ ShoppingCart retrievedCart = shoppingCartService.getByCode(cartCode.toString(), store);
+
+ Assert.assertNotNull(retrievedCart);
+
+
+ Product deletedProduct = productService.getById(product.getId());
+
+ productService.delete(deletedProduct);
+
+
+ //TODO delete product
+ //expect shopping cart to be deleted since no products are attached
+
+
+
+ }
+
+
+}
\ No newline at end of file
diff --git a/sm-core/src/test/java/com/salesmanager/test/utils/ImportIntegrationModule.java b/sm-core/src/test/java/com/salesmanager/test/utils/ImportIntegrationModule.java
old mode 100755
new mode 100644
index 47d9b9f..1cbdd80
--- a/sm-core/src/test/java/com/salesmanager/test/utils/ImportIntegrationModule.java
+++ b/sm-core/src/test/java/com/salesmanager/test/utils/ImportIntegrationModule.java
@@ -5,34 +5,35 @@ import java.io.FileInputStream;
import java.io.InputStream;
import java.util.Map;
+import javax.inject.Inject;
+
import org.codehaus.jackson.map.ObjectMapper;
import org.junit.Ignore;
-import org.junit.Test;
import org.junit.runner.RunWith;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.TestExecutionListeners;
+import org.springframework.boot.test.SpringApplicationConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
-import org.springframework.test.context.support.DependencyInjectionTestExecutionListener;
-import com.salesmanager.core.business.generic.exception.ServiceException;
-import com.salesmanager.core.business.system.model.IntegrationModule;
-import com.salesmanager.core.business.system.service.ModuleConfigurationService;
-import com.salesmanager.core.utils.reference.IntegrationModulesLoader;
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.business.services.reference.loader.IntegrationModulesLoader;
+import com.salesmanager.core.business.services.system.ModuleConfigurationService;
+import com.salesmanager.core.model.system.IntegrationModule;
+import com.salesmanager.test.configuration.ConfigurationTest;
+
+
-@ContextConfiguration( locations = { "classpath:spring/test-spring-context.xml" } )
-@RunWith( SpringJUnit4ClassRunner.class )
-@TestExecutionListeners( { DependencyInjectionTestExecutionListener.class } )
+@RunWith(SpringJUnit4ClassRunner.class)
+@SpringApplicationConfiguration(classes = {ConfigurationTest.class})
+@Ignore
public class ImportIntegrationModule {
- @Autowired
+ @Inject
private IntegrationModulesLoader integrationModulesLoader;
- @Autowired
+ @Inject
private ModuleConfigurationService moduleCongigurationService;
/**
diff --git a/sm-core/src/test/java/com/salesmanager/test/utils/UtilsTestCase.java b/sm-core/src/test/java/com/salesmanager/test/utils/UtilsTestCase.java
old mode 100755
new mode 100644
index 627a142..e3b584f
--- a/sm-core/src/test/java/com/salesmanager/test/utils/UtilsTestCase.java
+++ b/sm-core/src/test/java/com/salesmanager/test/utils/UtilsTestCase.java
@@ -6,52 +6,57 @@ import java.text.NumberFormat;
import java.util.List;
import java.util.Locale;
+import javax.inject.Inject;
+
import org.junit.Assert;
+import org.junit.Ignore;
import org.junit.Test;
-import org.springframework.beans.factory.annotation.Autowired;
+import org.junit.runner.RunWith;
+import org.springframework.boot.test.SpringApplicationConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
-import com.salesmanager.core.business.common.model.Address;
-import com.salesmanager.core.business.reference.country.service.CountryService;
-import com.salesmanager.core.business.reference.currency.model.Currency;
-import com.salesmanager.core.business.reference.currency.service.CurrencyService;
+import com.salesmanager.core.business.services.reference.country.CountryService;
+import com.salesmanager.core.business.services.reference.currency.CurrencyService;
+import com.salesmanager.core.business.utils.CacheUtils;
+import com.salesmanager.core.model.common.Address;
+import com.salesmanager.core.model.reference.currency.Currency;
import com.salesmanager.core.modules.utils.Encryption;
import com.salesmanager.core.modules.utils.GeoLocation;
-import com.salesmanager.core.utils.CacheUtils;
-import com.salesmanager.test.core.AbstractSalesManagerCoreTestCase;
+import com.salesmanager.test.configuration.ConfigurationTest;
+
-public class UtilsTestCase extends AbstractSalesManagerCoreTestCase {
+@RunWith(SpringJUnit4ClassRunner.class)
+@SpringApplicationConfiguration(classes = {ConfigurationTest.class})
+@Ignore
+public class UtilsTestCase {
- @Autowired
+ @Inject
private CountryService countryService;
-
-
- @Autowired
+ @Inject
private CurrencyService currencyService;
- @Autowired
+ @Inject
private Encryption encryption;
- @Autowired
+ @Inject
private CacheUtils cache;
- @Autowired
+ @Inject
private GeoLocation geoLoaction;
- @Test
+ //@Test
+ @Ignore
public void testCache() throws Exception {
@SuppressWarnings("rawtypes")
List countries = countryService.list();
-
-
-
//CacheUtils cache = CacheUtils.getInstance();
cache.putInCache(countries, "COUNTRIES");
@@ -62,7 +67,8 @@ public class UtilsTestCase extends AbstractSalesManagerCoreTestCase {
}
- @Test
+ //@Test
+ @Ignore
public void testCurrency() throws Exception {
Currency currency = currencyService.getByCode("BGN");
sm-core/src/test/resources/database.properties 33(+17 -16)
diff --git a/sm-core/src/test/resources/database.properties b/sm-core/src/test/resources/database.properties
old mode 100755
new mode 100644
index 1526c38..6b65eec
--- a/sm-core/src/test/resources/database.properties
+++ b/sm-core/src/test/resources/database.properties
@@ -2,24 +2,24 @@
## db configuration for test
##
-#db.jdbcUrl=jdbc\:h2\:file\:SALESMANAGER-TEST;AUTOCOMMIT=OFF;INIT\=RUNSCRIPT FROM 'src/test/resources/sql/create_schema.sql'
-#db.user=test
-#db.password=password
-#db.driverClass=org.h2.Driver
-#hibernate.dialect=org.hibernate.dialect.H2Dialect
-
-db.jdbcUrl=jdbc:mysql://localhost:3306/SALESMANAGER?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8
-db.user=carlito
+db.jdbcUrl=jdbc\:h2\:file\:./SALESMANAGER-TEST;AUTOCOMMIT=OFF;mv_store=false;INIT\=RUNSCRIPT FROM 'src/test/resources/sql/create_schema.sql'
+db.user=test
db.password=password
-hibernate.hbm2ddl.auto=create
-db.driverClass=com.mysql.jdbc.Driver
-hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
-db.preferredTestQuery=SELECT 1
+db.driverClass=org.h2.Driver
+hibernate.dialect=org.hibernate.dialect.H2Dialect
+
+#db.jdbcUrl=jdbc:mysql://localhost:3306/SALESMANAGER?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8
+#db.user=carlito
+#db.password=password
+#hibernate.hbm2ddl.auto=create
+#db.driverClass=com.mysql.jdbc.Driver
+#hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
+#db.preferredTestQuery=SELECT 1
db.schema=SALESMANAGER
-hibernate.hbm2ddl.auto=update
+hibernate.hbm2ddl.auto=create
@@ -27,6 +27,7 @@ hibernate.hbm2ddl.auto=update
##
## configuration pooling base de donn�es
##
-db.initialPoolSize=10
-db.minPoolSize=5
-db.maxPoolSize=50
\ No newline at end of file
+db.initialPoolSize=3
+db.minPoolSize=1
+db.maxPoolSize=3
+
diff --git a/sm-core/src/test/resources/hbm2dll.properties b/sm-core/src/test/resources/hbm2dll.properties
old mode 100755
new mode 100644
diff --git a/sm-core/src/test/resources/log4j.properties b/sm-core/src/test/resources/log4j.properties
old mode 100755
new mode 100644
diff --git a/sm-core/src/test/resources/spring/test-datasource.xml b/sm-core/src/test/resources/spring/test-datasource.xml
old mode 100755
new mode 100644
diff --git a/sm-core/src/test/resources/spring/test-shopizer-context.xml b/sm-core/src/test/resources/spring/test-shopizer-context.xml
new file mode 100644
index 0000000..a5e84d6
--- /dev/null
+++ b/sm-core/src/test/resources/spring/test-shopizer-context.xml
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans:beans xmlns:beans="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns="http://www.springframework.org/schema/data/jpa"
+ xmlns:util="http://www.springframework.org/schema/util"
+ xmlns:context="http://www.springframework.org/schema/context"
+ xmlns:aop="http://www.springframework.org/schema/aop"
+ xmlns:tx="http://www.springframework.org/schema/tx"
+ xsi:schemaLocation="http://www.springframework.org/schema/beans
+ http://www.springframework.org/schema/beans/spring-beans.xsd
+ http://www.springframework.org/schema/tx
+ http://www.springframework.org/schema/tx/spring-tx.xsd
+ http://www.springframework.org/schema/aop
+ http://www.springframework.org/schema/aop/spring-aop.xsd
+ http://www.springframework.org/schema/util
+ http://www.springframework.org/schema/util/spring-util.xsd
+ http://www.springframework.org/schema/context
+ http://www.springframework.org/schema/context/spring-context.xsd
+ http://www.springframework.org/schema/data/jpa
+ http://www.springframework.org/schema/data/jpa/spring-jpa.xsd">
+
+
+
+ <beans:import resource="classpath:/spring/shopizer-context.xml" />
+
+
+ <beans:bean id="datasource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
+ <beans:property name="driverClassName" value="${db.driverClass}" />
+ <beans:property name="url" value="${db.jdbcUrl}" />
+ <beans:property name="username" value="${db.user}" />
+ <beans:property name="password" value="${db.password}" />
+ </beans:bean>
+
+
+ <context:component-scan base-package="com.salesmanager.test" />
+
+ <!-- For testing utility classes -->
+ <util:properties id="shopizer-properties">
+ <beans:prop key="MULTIPLE_PRICE_AVAILABILITY">false</beans:prop>
+ <beans:prop key="INDEX_PRODUCTS">false</beans:prop>
+
+ <beans:prop key="SHOP_SCHEME">http</beans:prop>
+ <beans:prop key="CONTEXT_PATH">sm-shop</beans:prop>
+ <!-- Images -->
+ <beans:prop key="PRODUCT_IMAGE_WIDTH_SIZE">350</beans:prop>
+ <beans:prop key="PRODUCT_IMAGE_HEIGHT_SIZE">375</beans:prop>
+ <beans:prop key="CROP_UPLOADED_IMAGES">false</beans:prop>
+
+ <!-- upload image validations -->
+ <beans:prop key="PRODUCT_IMAGE_MAX_HEIGHT_SIZE">2000</beans:prop>
+ <beans:prop key="PRODUCT_IMAGE_MAX_WIDTH_SIZE">4000</beans:prop>
+ <beans:prop key="PRODUCT_IMAGE_MAX_SIZE">9000000</beans:prop>
+ <beans:prop key="IMAGE_FORMATS">jpg|png|gif</beans:prop>
+
+ <beans:prop key="POPULATE_TEST_DATA">true</beans:prop>
+
+ </util:properties>
+
+</beans:beans>
diff --git a/sm-core/src/test/resources/sql/create_schema.sql b/sm-core/src/test/resources/sql/create_schema.sql
old mode 100755
new mode 100644
diff --git a/sm-core/target/classes/cms/infinispan_configuration.xml b/sm-core/target/classes/cms/infinispan_configuration.xml
new file mode 100644
index 0000000..d66608f
--- /dev/null
+++ b/sm-core/target/classes/cms/infinispan_configuration.xml
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<infinispan xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+
+ xsi:schemaLocation="urn:infinispan:config:6.0 http://www.infinispan.org/schemas/infinispan-config-6.0.xsd"
+ xmlns="urn:infinispan:config:6.0">
+
+ <global>
+
+ <globalJmxStatistics enabled="false" jmxDomain="infinispan"/>
+
+ </global>
+
+ <default />
+
+ <namedCache name="StoreRepository">
+ <invocationBatching enabled="true"/>
+ <!-- disable jmx in prod -->
+ <jmxStatistics enabled="false"/>
+ <persistence passivation="false">
+
+ <store class="org.infinispan.persistence.file.SingleFileStore" fetchPersistentState="false"
+ ignoreModifications="false" purgeOnStartup="false" shared="false" preload="false">
+ <properties>
+ <property name="location" value="./files/store"/>
+ </properties>
+ </store>
+
+ </persistence>
+
+ <eviction maxEntries="10" strategy="LRU"/>
+
+ <transaction
+ transactionManagerLookupClass="org.infinispan.transaction.lookup.DummyTransactionManagerLookup"
+ transactionMode="TRANSACTIONAL" lockingMode="OPTIMISTIC" />
+
+ </namedCache>
+
+ <namedCache name="FilesRepository">
+ <invocationBatching enabled="true"/>
+ <!-- disable jmx in prod -->
+ <jmxStatistics enabled="true"/>
+ <persistence passivation="false">
+ <store class="org.infinispan.persistence.file.SingleFileStore" fetchPersistentState="false"
+ ignoreModifications="false" purgeOnStartup="false" shared="false" preload="false">
+ <properties>
+ <property name="location" value="./files/repos"/>
+ </properties>
+ </store>
+ </persistence>
+
+ <transaction
+
+ transactionManagerLookupClass="org.infinispan.transaction.lookup.DummyTransactionManagerLookup"
+ transactionMode="TRANSACTIONAL" lockingMode="OPTIMISTIC" />
+
+ </namedCache>
+
+
+
+</infinispan>
+
sm-core/target/classes/configs.properties 16(+16 -0)
diff --git a/sm-core/target/classes/configs.properties b/sm-core/target/classes/configs.properties
new file mode 100644
index 0000000..65f706b
--- /dev/null
+++ b/sm-core/target/classes/configs.properties
@@ -0,0 +1,16 @@
+#Must be 16 digits (replace with your own creation !)
+secretKey=7070200000000007
+
+
+
+#Elastic Search configurations
+elasticsearch.cluster.name=shopizer
+elasticsearch.mode=remote
+elasticsearch.server.host=http://localhost
+elasticsearch.server.port =9200
+elasticsearch.server.proxy.user=
+elasticsearch.server.proxy.password=
+
+# Infinispan Configuration
+infinispan.cache.location=./infinispan
+
diff --git a/sm-core/target/classes/email.properties b/sm-core/target/classes/email.properties
new file mode 100644
index 0000000..dea22dd
--- /dev/null
+++ b/sm-core/target/classes/email.properties
@@ -0,0 +1,9 @@
+#GMail sample configuration
+#May require a keystore for certificates
+mailSender.protocol=smtps
+mailSender.host=smtp.gmail.com
+mailSender.port=465
+mailSender.username=youremail@gmail.com
+mailSender.password=yourpassword
+mailSender.mail.smtp.auth=true
+mail.smtp.starttls.enable=true
\ No newline at end of file
diff --git a/sm-core/target/classes/META-INF/MANIFEST.MF b/sm-core/target/classes/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..b8b5c4b
--- /dev/null
+++ b/sm-core/target/classes/META-INF/MANIFEST.MF
@@ -0,0 +1,9 @@
+Manifest-Version: 1.0
+Implementation-Title: sm-core
+Implementation-Version: 2.5.0-SNAPSHOT
+Built-By: c.samson
+Implementation-Vendor-Id: com.shopizer
+Build-Jdk: 1.8.0_91
+Created-By: Maven Integration for Eclipse
+Implementation-Vendor: Pivotal Software, Inc.
+
diff --git a/sm-core/target/classes/META-INF/maven/com.shopizer/sm-core/pom.properties b/sm-core/target/classes/META-INF/maven/com.shopizer/sm-core/pom.properties
new file mode 100644
index 0000000..186c061
--- /dev/null
+++ b/sm-core/target/classes/META-INF/maven/com.shopizer/sm-core/pom.properties
@@ -0,0 +1,7 @@
+#Generated by Maven Integration for Eclipse
+#Tue Oct 25 12:34:27 EDT 2016
+version=2.5.0-SNAPSHOT
+groupId=com.shopizer
+m2e.projectName=sm-core
+m2e.projectLocation=C\:\\code\\personal\\shopizer-2.5\\shopizer\\sm-core
+artifactId=sm-core
diff --git a/sm-core/target/classes/META-INF/maven/com.shopizer/sm-core/pom.xml b/sm-core/target/classes/META-INF/maven/com.shopizer/sm-core/pom.xml
new file mode 100644
index 0000000..6f16889
--- /dev/null
+++ b/sm-core/target/classes/META-INF/maven/com.shopizer/sm-core/pom.xml
@@ -0,0 +1,221 @@
+<?xml version="1.0"?>
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>com.shopizer</groupId>
+ <artifactId>shopizer</artifactId>
+ <version>2.5.0-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>sm-core</artifactId>
+ <packaging>jar</packaging>
+
+ <name>sm-core</name>
+ <url>http://www.shopizer.com</url>
+
+ <properties>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+
+ <!-- testing properties -->
+ <!--<dbh2.version>1.4.187</dbh2.version>-->
+ <geoip2.version>2.7.0</geoip2.version>
+ <javax.inject.version>1</javax.inject.version>
+ <javax.el.version>2.2.4</javax.el.version>
+ <drools.version>5.6.0.Final</drools.version>
+ </properties>
+
+ <dependencies>
+
+ <!-- sm-core-model -->
+ <dependency>
+ <groupId>com.shopizer</groupId>
+ <artifactId>sm-core-model</artifactId>
+ <version>${shopizer.version}</version>
+ </dependency>
+
+
+ <!-- sm-core-modules -->
+ <dependency>
+ <groupId>com.shopizer</groupId>
+ <artifactId>sm-core-modules</artifactId>
+ <version>${shopizer.version}</version>
+ </dependency>
+
+ <!-- sm-search -->
+ <dependency>
+ <groupId>com.shopizer</groupId>
+ <artifactId>sm-search</artifactId>
+ <version>${shopizer.search.version}</version>
+ </dependency>
+
+ <!-- shipping rules -->
+ <!-- shipping distance pre-processor -->
+ <dependency>
+ <groupId>com.shopizer</groupId>
+ <artifactId>shopizer-shipping-distance-processor</artifactId>
+ <version>${shopizer-shipping-distance.version}</version>
+ </dependency>
+
+ <!-- canadapost -->
+ <dependency>
+ <groupId>com.shopizer</groupId>
+ <artifactId>shopizer-shipping-canadapost-module</artifactId>
+ <version>${shopizer-canadapost.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>javax.el</groupId>
+ <artifactId>javax.el-api</artifactId>
+ <version>${javax.el.version}</version>
+ </dependency>
+
+ <!-- Rules engine -->
+ <dependency>
+ <groupId>org.drools</groupId>
+ <artifactId>drools-spring</artifactId>
+ <version>${drools.version}</version>
+ </dependency>
+
+
+ <!-- Infinispan -->
+ <dependency>
+ <groupId>org.infinispan</groupId>
+ <artifactId>infinispan-core</artifactId>
+ <version>${infinispan.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.infinispan</groupId>
+ <artifactId>infinispan-cachestore-jdbc</artifactId>
+ <version>${infinispan.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.infinispan</groupId>
+ <artifactId>infinispan-tree</artifactId>
+ <version>${infinispan.version}</version>
+ </dependency>
+
+ <!-- tests dependencies -->
+ <!-- http://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-test -->
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-test</artifactId>
+ </dependency>
+ <!-- H2 DB -->
+ <dependency>
+ <groupId>com.h2database</groupId>
+ <artifactId>h2</artifactId>
+ <!--<version>${dbh2.version}</version>-->
+ </dependency>
+
+ <!-- https://mvnrepository.com/artifact/javax.inject/javax.inject -->
+ <dependency>
+ <groupId>javax.inject</groupId>
+ <artifactId>javax.inject</artifactId>
+ <version>${javax.inject.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>javax.validation</groupId>
+ <artifactId>validation-api</artifactId>
+ <version>1.1.0.Final</version>
+ </dependency>
+
+ <!-- https://mvnrepository.com/artifact/net.sf.ehcache/ehcache -->
+ <dependency>
+ <groupId>net.sf.ehcache</groupId>
+ <artifactId>ehcache</artifactId>
+ </dependency>
+
+
+ <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
+ <dependency>
+ <groupId>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-core</artifactId>
+ </dependency>
+
+ <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-collections4 -->
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-collections4</artifactId>
+ <version>${commons-collections4.version}</version>
+ </dependency>
+
+ <!-- https://mvnrepository.com/artifact/commons-validator/commons-validator -->
+ <dependency>
+ <groupId>commons-validator</groupId>
+ <artifactId>commons-validator</artifactId>
+ <version>${commons-validator.version}</version>
+ </dependency>
+
+
+ <!-- https://mvnrepository.com/artifact/org.freemarker/freemarker -->
+ <dependency>
+ <groupId>org.freemarker</groupId>
+ <artifactId>freemarker</artifactId>
+ </dependency>
+
+ <!-- https://mvnrepository.com/artifact/javax.mail/javax.mail-api -->
+ <dependency>
+ <groupId>javax.mail</groupId>
+ <artifactId>javax.mail-api</artifactId>
+ </dependency>
+
+ <!-- https://mvnrepository.com/artifact/org.springframework/spring-context-support -->
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-context-support</artifactId>
+ </dependency>
+
+ <!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient -->
+ <dependency>
+ <groupId>org.apache.httpcomponents</groupId>
+ <artifactId>httpclient</artifactId>
+ <version>${org.apache.httpcomponent.version}</version>
+ </dependency>
+
+
+ <!-- Payment dependencies -->
+ <dependency>
+ <groupId>com.paypal.sdk</groupId>
+ <artifactId>merchantsdk</artifactId>
+ <version>2.6.109</version>
+ </dependency>
+
+
+ <dependency>
+ <groupId>com.stripe</groupId>
+ <artifactId>stripe-java</artifactId>
+ <version>1.33.0</version>
+ </dependency>
+
+ <!-- Invoices -->
+ <dependency>
+ <groupId>com.itextpdf</groupId>
+ <artifactId>itextpdf</artifactId>
+ <version>5.5.6</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jopendocument</groupId>
+ <artifactId>jOpenDocument</artifactId>
+ <version>1.3b1</version>
+ </dependency>
+
+ <!-- https://mvnrepository.com/artifact/com.maxmind.geoip2/geoip2 -->
+ <dependency>
+ <groupId>com.maxmind.geoip2</groupId>
+ <artifactId>geoip2</artifactId>
+ <version>${geoip2.version}</version>
+ </dependency>
+
+ </dependencies>
+
+
+
+
+
+</project>
diff --git a/sm-core/target/classes/reference/GeoLite2-Country.mmdb b/sm-core/target/classes/reference/GeoLite2-Country.mmdb
new file mode 100644
index 0000000..7c494a6
Binary files /dev/null and b/sm-core/target/classes/reference/GeoLite2-Country.mmdb differ
diff --git a/sm-core/target/classes/reference/integrationmodules.json b/sm-core/target/classes/reference/integrationmodules.json
new file mode 100644
index 0000000..4352c9d
--- /dev/null
+++ b/sm-core/target/classes/reference/integrationmodules.json
@@ -0,0 +1,99 @@
+[
+ {
+ "module": "SHIPPING",
+ "code": "usps",
+ "version":"",
+ "regions": ["US"],
+ "image":"usps.jpg",
+ "configuration":[{"env":"TEST","scheme":"http","host":"testing.shippingapis.com","port":"80","uri":"/ShippingAPI.dll"},{"env":"PROD","scheme":"http","host":"production.shippingapis.com","port":"80","uri":"/ShippingAPI.dll"}]
+
+ },
+ {
+ "module": "SHIPPING",
+ "code": "canadapost",
+ "version":"",
+ "regions": ["CA"],
+ "image":"canadapost.jpg",
+ "configuration":[{"env":"TEST","scheme":"https","host":"ct.soa-gw.canadapost.ca","port":"443","uri":"/rs/ship/price"},{"env":"PROD","scheme":"https","host":"soa-gw.canadapost.ca","port":"443","uri":"/rs/ship/price"}]
+
+ },
+ {
+ "module": "SHIPPING",
+ "code": "ups",
+ "version":"",
+ "regions": ["US","CA","FR","GB"],
+ "image":"ups.jpg",
+ "configuration":[{"env":"TEST","scheme":"https","host":"wwwcie.ups.com","port":"443","uri":"/ups.app/xml/Rate"},{"env":"PROD","scheme":"https","host":"onlinetools.ups.com","port":"443","uri":"/xml/Rate"}],
+ "details":{"01":"UPS Next Day Air","02":"UPS Second Day Air","03":"UPS Ground","07":"UPS Worldwide Express","08":"UPS Worldwide Expedited","11":"UPS Standard","12":"UPS Three-Day Select","13":"UPS Next Day Air Saver","14":"UPS Next Day Air Early A.M.","54":"UPS Worldwide Express Plus","59":"UPS Second Day Air A.M.","69":"UPS Saver"}
+
+ },
+ {
+ "module": "SHIPPING",
+ "code": "weightBased",
+ "customModule":"true",
+ "version":"1.0",
+ "regions": ["*"]
+ },
+ {
+ "module": "SHIPPING",
+ "code": "customQuotesRules",
+ "version":"1.0",
+ "regions": ["*"]
+ },
+ {
+ "module": "SHIPPING",
+ "code": "priceByDistance",
+ "version":"1.0",
+ "regions": ["*"]
+ },
+ {
+ "module": "SHIPPING",
+ "code": "storePickUp",
+ "version":"1.0",
+ "regions": ["*"]
+ },
+ {
+ "module": "PAYMENT",
+ "code": "moneyorder",
+ "type":"moneyorder",
+ "version":"",
+ "regions": ["*"],
+ "image":"moneyorder.gif"
+ },
+ {
+ "module": "PAYMENT",
+ "code": "paypal-express-checkout",
+ "type":"paypal",
+ "version":"104.0",
+ "regions": ["*"],
+ "image":"icon-paypal.png",
+ "configuration":[{"env":"TEST","scheme":"","host":"","port":"","uri":"","config1":"https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token="},{"env":"PROD","scheme":"","host":"","port":"","uri":"","config1":"https://www.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token="}]
+
+ },
+
+
+ {
+ "module": "PAYMENT",
+ "code": "beanstream",
+ "type":"creditcard",
+ "version":"",
+ "regions": ["US","CA","GB"],
+ "image":"beanstream.gif",
+ "configuration":[{"env":"TEST","scheme":"https","host":"www.beanstream.com","port":"443","uri":"/scripts/process_transaction.asp"},{"env":"PROD","scheme":"https","host":"www.beanstream.com","port":"443","uri":"/scripts/process_transaction.asp"}]
+
+ },
+
+
+ {
+ "module": "PAYMENT",
+ "code": "stripe",
+ "type":"creditcard",
+ "version":"",
+ "regions": ["US","CA","GB","AU","FI","DK","IE","NO","SE"],
+ "image":"stripe.png",
+ "configuration":[{"env":"TEST","scheme":"https","host":"www.stripe.com","port":"443","uri":"/"},{"env":"PROD","scheme":"https","host":"www.stripe.com","port":"443","uri":"/"}]
+
+ }
+
+]
+
sm-core/target/classes/reference/zoneconfig.json 1888(+1888 -0)
diff --git a/sm-core/target/classes/reference/zoneconfig.json b/sm-core/target/classes/reference/zoneconfig.json
new file mode 100644
index 0000000..ac8d3a2
--- /dev/null
+++ b/sm-core/target/classes/reference/zoneconfig.json
@@ -0,0 +1,1888 @@
+{
+ "en":[
+ {
+ "zoneCode": "AL",
+ "zoneName": "Alabama",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "AK",
+ "zoneName": "Alaska",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "AS",
+ "zoneName": "American Samoa",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "AZ",
+ "zoneName": "Arizona",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "AR",
+ "zoneName": "Arkansas",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "AF",
+ "zoneName": "Armed Forces Africa",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "AA",
+ "zoneName": "Armed Forces Americas",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "AC",
+ "zoneName": "Armed Forces Canada",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "AE",
+ "zoneName": "Armed Forces Europe",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "AM",
+ "zoneName": "Armed Forces Middle East",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "AP",
+ "zoneName": "Armed Forces Pacific",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "CA",
+ "zoneName": "California",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "CO",
+ "zoneName": "Colorado",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "CT",
+ "zoneName": "Connecticut",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "DE",
+ "zoneName": "Delaware",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "DC",
+ "zoneName": "District of Columbia",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "FM",
+ "zoneName": "Federated States Of Micronesia",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "FL",
+ "zoneName": "Florida",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "GA",
+ "zoneName": "Georgia",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "GU",
+ "zoneName": "Guam",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "HI",
+ "zoneName": "Hawaii",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "ID",
+ "zoneName": "Idaho",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "IL",
+ "zoneName": "Illinois",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "IN",
+ "zoneName": "Indiana",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "IA",
+ "zoneName": "Iowa",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "KS",
+ "zoneName": "Kansas",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "KY",
+ "zoneName": "Kentucky",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "LA",
+ "zoneName": "Louisiana",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "ME",
+ "zoneName": "Maine",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "MH",
+ "zoneName": "Marshall Islands",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "MD",
+ "zoneName": "Maryland",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "MA",
+ "zoneName": "Massachusetts",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "MI",
+ "zoneName": "Michigan",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "MN",
+ "zoneName": "Minnesota",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "MS",
+ "zoneName": "Mississippi",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "MO",
+ "zoneName": "Missouri",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "MT",
+ "zoneName": "Montana",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "NE",
+ "zoneName": "Nebraska",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "NV",
+ "zoneName": "Nevada",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "NH",
+ "zoneName": "New Hampshire",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "NJ",
+ "zoneName": "New Jersey",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "NM",
+ "zoneName": "New Mexico",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "NY",
+ "zoneName": "New York",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "NC",
+ "zoneName": "North Carolina",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "ND",
+ "zoneName": "North Dakota",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "MP",
+ "zoneName": "Northern Mariana Islands",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "OH",
+ "zoneName": "Ohio",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "OK",
+ "zoneName": "Oklahoma",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "OR",
+ "zoneName": "Oregon",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "PA",
+ "zoneName": "Pennsylvania",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "PR",
+ "zoneName": "Puerto Rico",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "RI",
+ "zoneName": "Rhode Island",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "SC",
+ "zoneName": "South Carolina",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "SD",
+ "zoneName": "South Dakota",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "TN",
+ "zoneName": "Tennessee",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "TX",
+ "zoneName": "Texas",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "UT",
+ "zoneName": "Utah",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "VT",
+ "zoneName": "Vermont",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "VI",
+ "zoneName": "Virgin Islands",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "VA",
+ "zoneName": "Virginia",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "WA",
+ "zoneName": "Washington",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "WV",
+ "zoneName": "West Virginia",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "WI",
+ "zoneName": "Wisconsin",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "WY",
+ "zoneName": "Wyoming",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "AB",
+ "zoneName": "Alberta",
+ "countryCode": "CA"
+ },
+ {
+ "zoneCode": "BC",
+ "zoneName": "British Columbia",
+ "countryCode": "CA"
+ },
+ {
+ "zoneCode": "MB",
+ "zoneName": "Manitoba",
+ "countryCode": "CA"
+ },
+ {
+ "zoneCode": "NF",
+ "zoneName": "Newfoundland - Labrador",
+ "countryCode": "CA"
+ },
+ {
+ "zoneCode": "NB",
+ "zoneName": "New Brunswick",
+ "countryCode": "CA"
+ },
+ {
+ "zoneCode": "NS",
+ "zoneName": "Nova Scotia",
+ "countryCode": "CA"
+ },
+ {
+ "zoneCode": "NT",
+ "zoneName": "Northwest Territories",
+ "countryCode": "CA"
+ },
+ {
+ "zoneCode": "NU",
+ "zoneName": "Nunavut",
+ "countryCode": "CA"
+ },
+ {
+ "zoneCode": "ON",
+ "zoneName": "Ontario",
+ "countryCode": "CA"
+ },
+ {
+ "zoneCode": "PE",
+ "zoneName": "Prince Edward Island",
+ "countryCode": "CA"
+ },
+ {
+ "zoneCode": "QC",
+ "zoneName": "Quebec",
+ "countryCode": "CA"
+ },
+ {
+ "zoneCode": "SK",
+ "zoneName": "Saskatchewan",
+ "countryCode": "CA"
+ },
+ {
+ "zoneCode": "YT",
+ "zoneName": "Yukon Territory",
+ "countryCode": "CA"
+ },
+ {
+ "zoneCode": "NDS",
+ "zoneName": "Niedersachsen",
+ "countryCode": "DE"
+ },
+ {
+ "zoneCode": "BAW",
+ "zoneName": "Baden-Wrttemberg",
+ "countryCode": "DE"
+ },
+ {
+ "zoneCode": "BAY",
+ "zoneName": "Bayern",
+ "countryCode": "DE"
+ },
+ {
+ "zoneCode": "BER",
+ "zoneName": "Berlin",
+ "countryCode": "DE"
+ },
+ {
+ "zoneCode": "BRG",
+ "zoneName": "Brandenburg",
+ "countryCode": "DE"
+ },
+ {
+ "zoneCode": "BRE",
+ "zoneName": "Bremen",
+ "countryCode": "DE"
+ },
+ {
+ "zoneCode": "HAM",
+ "zoneName": "Hamburg",
+ "countryCode": "DE"
+ },
+ {
+ "zoneCode": "HES",
+ "zoneName": "Hessen",
+ "countryCode": "DE"
+ },
+ {
+ "zoneCode": "MEC",
+ "zoneName": "Mecklenburg-Vorpommern",
+ "countryCode": "DE"
+ },
+ {
+ "zoneCode": "NRW",
+ "zoneName": "Nordrhein-Westfalen",
+ "countryCode": "DE"
+ },
+ {
+ "zoneCode": "RHE",
+ "zoneName": "Rheinland-Pfalz",
+ "countryCode": "DE"
+ },
+ {
+ "zoneCode": "SAR",
+ "zoneName": "Saarland",
+ "countryCode": "DE"
+ },
+ {
+ "zoneCode": "SAS",
+ "zoneName": "Sachsen",
+ "countryCode": "DE"
+ },
+ {
+ "zoneCode": "SAC",
+ "zoneName": "Sachsen-Anhalt",
+ "countryCode": "DE"
+ },
+ {
+ "zoneCode": "SCN",
+ "zoneName": "Schleswig-Holstein",
+ "countryCode": "DE"
+ },
+ {
+ "zoneCode": "THE",
+ "zoneName": "Thringen",
+ "countryCode": "DE"
+ },
+ {
+ "zoneCode": "WIAT",
+ "zoneName": "Wien",
+ "countryCode": "AT"
+ },
+ {
+ "zoneCode": "NO",
+ "zoneName": "Niederosterreich",
+ "countryCode": "AT"
+ },
+ {
+ "zoneCode": "OO",
+ "zoneName": "Oberosterreich",
+ "countryCode": "AT"
+ },
+ {
+ "zoneCode": "SB",
+ "zoneName": "Salzburg",
+ "countryCode": "AT"
+ },
+ {
+ "zoneCode": "KN",
+ "zoneName": "Katen",
+ "countryCode": "AT"
+ },
+ {
+ "zoneCode": "ST",
+ "zoneName": "Steiermark",
+ "countryCode": "AT"
+ },
+ {
+ "zoneCode": "TIAT",
+ "zoneName": "Tirol",
+ "countryCode": "AT"
+ },
+ {
+ "zoneCode": "BLAT",
+ "zoneName": "Burgenland",
+ "countryCode": "AT"
+ },
+ {
+ "zoneCode": "VB",
+ "zoneName": "Voralberg",
+ "countryCode": "AT"
+ },
+ {
+ "zoneCode": "AG",
+ "zoneName": "Aargau",
+ "countryCode": "CH"
+ },
+ {
+ "zoneCode": "AI",
+ "zoneName": "Appenzell Innerrhoden",
+ "countryCode": "CH"
+ },
+ {
+ "zoneCode": "ARCH",
+ "zoneName": "Appenzell Ausserrhoden",
+ "countryCode": "CH"
+ },
+ {
+ "zoneCode": "BE",
+ "zoneName": "Bern",
+ "countryCode": "CH"
+ },
+ {
+ "zoneCode": "BL",
+ "zoneName": "Basel-Landschaft",
+ "countryCode": "CH"
+ },
+ {
+ "zoneCode": "BS",
+ "zoneName": "Basel-Stadt",
+ "countryCode": "CH"
+ },
+ {
+ "zoneCode": "FR",
+ "zoneName": "Freiburg",
+ "countryCode": "CH"
+ },
+ {
+ "zoneCode": "GE",
+ "zoneName": "Genf",
+ "countryCode": "CH"
+ },
+ {
+ "zoneCode": "GL",
+ "zoneName": "Glarus",
+ "countryCode": "CH"
+ },
+ {
+ "zoneCode": "GR",
+ "zoneName": "Graubnden",
+ "countryCode": "CH"
+ },
+ {
+ "zoneCode": "JU",
+ "zoneName": "Jura",
+ "countryCode": "CH"
+ },
+ {
+ "zoneCode": "LU",
+ "zoneName": "Luzern",
+ "countryCode": "CH"
+ },
+ {
+ "zoneCode": "NECH",
+ "zoneName": "Neuenburg",
+ "countryCode": "CH"
+ },
+ {
+ "zoneCode": "NW",
+ "zoneName": "Nidwalden",
+ "countryCode": "CH"
+ },
+ {
+ "zoneCode": "OW",
+ "zoneName": "Obwalden",
+ "countryCode": "CH"
+ },
+ {
+ "zoneCode": "SG",
+ "zoneName": "St. Gallen",
+ "countryCode": "CH"
+ },
+ {
+ "zoneCode": "SH",
+ "zoneName": "Schaffhausen",
+ "countryCode": "CH"
+ },
+ {
+ "zoneCode": "SO",
+ "zoneName": "Solothurn",
+ "countryCode": "CH"
+ },
+ {
+ "zoneCode": "SZ",
+ "zoneName": "Schwyz",
+ "countryCode": "CH"
+ },
+ {
+ "zoneCode": "TG",
+ "zoneName": "Thurgau",
+ "countryCode": "CH"
+ },
+ {
+ "zoneCode": "TI",
+ "zoneName": "Tessin",
+ "countryCode": "CH"
+ },
+ {
+ "zoneCode": "UR",
+ "zoneName": "Uri",
+ "countryCode": "CH"
+ },
+ {
+ "zoneCode": "VD",
+ "zoneName": "Waadt",
+ "countryCode": "CH"
+ },
+ {
+ "zoneCode": "VS",
+ "zoneName": "Wallis",
+ "countryCode": "CH"
+ },
+ {
+ "zoneCode": "ZG",
+ "zoneName": "Zug",
+ "countryCode": "CH"
+ },
+ {
+ "zoneCode": "ZH",
+ "zoneName": "Zrich",
+ "countryCode": "CH"
+ },
+ {
+ "zoneCode": "ACorua",
+ "zoneName": "A Corua",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Alava",
+ "zoneName": "Alava",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Albacete",
+ "zoneName": "Albacete",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Alicante",
+ "zoneName": "Alicante",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Almeria",
+ "zoneName": "Almeria",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Asturias",
+ "zoneName": "Asturias",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Avila",
+ "zoneName": "Avila",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Badajoz",
+ "zoneName": "Badajoz",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Baleares",
+ "zoneName": "Baleares",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Barcelona",
+ "zoneName": "Barcelona",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Burgos",
+ "zoneName": "Burgos",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Caceres",
+ "zoneName": "Caceres",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Cadiz",
+ "zoneName": "Cadiz",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Cantabria",
+ "zoneName": "Cantabria",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Castellon",
+ "zoneName": "Castellon",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Ceuta",
+ "zoneName": "Ceuta",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "CiudadReal",
+ "zoneName": "Ciudad Real",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Cordoba",
+ "zoneName": "Cordoba",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Cuenca",
+ "zoneName": "Cuenca",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Girona",
+ "zoneName": "Girona",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Granada",
+ "zoneName": "Granada",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Guadalajara",
+ "zoneName": "Guadalajara",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Guipuzcoa",
+ "zoneName": "Guipuzcoa",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Huelva",
+ "zoneName": "Huelva",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Huesca",
+ "zoneName": "Huesca",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Jaen",
+ "zoneName": "Jaen",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "LaRioja",
+ "zoneName": "La Rioja",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "LasPalmas",
+ "zoneName": "Las Palmas",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Leon",
+ "zoneName": "Leon",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Lleida",
+ "zoneName": "Lleida",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Lugo",
+ "zoneName": "Lugo",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Madrid",
+ "zoneName": "Madrid",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Malaga",
+ "zoneName": "Malaga",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Melilla",
+ "zoneName": "Melilla",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Murcia",
+ "zoneName": "Murcia",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Navarra",
+ "zoneName": "Navarra",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Ourense",
+ "zoneName": "Ourense",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Palencia",
+ "zoneName": "Palencia",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Pontevedra",
+ "zoneName": "Pontevedra",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Salamanca",
+ "zoneName": "Salamanca",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "SantaCruzdeTenerife",
+ "zoneName": "Santa Cruz de Tenerife",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Segovia",
+ "zoneName": "Segovia",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Sevilla",
+ "zoneName": "Sevilla",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Soria",
+ "zoneName": "Soria",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Tarragona",
+ "zoneName": "Tarragona",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Teruel",
+ "zoneName": "Teruel",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Toledo",
+ "zoneName": "Toledo",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Valencia",
+ "zoneName": "Valencia",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Valladolid",
+ "zoneName": "Valladolid",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Vizcaya",
+ "zoneName": "Vizcaya",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Zamora",
+ "zoneName": "Zamora",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Zaragoza",
+ "zoneName": "Zaragoza",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "ACT",
+ "zoneName": "Australian Capital Territory",
+ "countryCode": "AU"
+ },
+ {
+ "zoneCode": "NSW",
+ "zoneName": "New South Wales",
+ "countryCode": "AU"
+ },
+ {
+ "zoneCode": "NTAU",
+ "zoneName": "Northern Territory",
+ "countryCode": "AU"
+ },
+ {
+ "zoneCode": "QLD",
+ "zoneName": "Queensland",
+ "countryCode": "AU"
+ },
+ {
+ "zoneCode": "SA",
+ "zoneName": "South Australia",
+ "countryCode": "AU"
+ },
+ {
+ "zoneCode": "TAS",
+ "zoneName": "Tasmania",
+ "countryCode": "AU"
+ },
+ {
+ "zoneCode": "VIC",
+ "zoneName": "Victoria",
+ "countryCode": "AU"
+ },
+ {
+ "zoneCode": "WAAU",
+ "zoneName": "Western Australia",
+ "countryCode": "AU"
+ }
+] ,
+
+ "fr":[
+ {
+ "zoneCode": "AL",
+ "zoneName": "Alabama",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "AK",
+ "zoneName": "Alaska",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "AS",
+ "zoneName": "American Samoa",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "AZ",
+ "zoneName": "Arizona",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "AR",
+ "zoneName": "Arkansas",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "AF",
+ "zoneName": "Armed Forces Africa",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "AA",
+ "zoneName": "Armed Forces Americas",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "AC",
+ "zoneName": "Armed Forces Canada",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "AE",
+ "zoneName": "Armed Forces Europe",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "AM",
+ "zoneName": "Armed Forces Middle East",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "AP",
+ "zoneName": "Armed Forces Pacific",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "CA",
+ "zoneName": "Californie",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "CO",
+ "zoneName": "Colorado",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "CT",
+ "zoneName": "Connecticut",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "DE",
+ "zoneName": "Delaware",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "DC",
+ "zoneName": "District de Columbia",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "FM",
+ "zoneName": "Federated States Of Micronesia",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "FL",
+ "zoneName": "Floride",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "GA",
+ "zoneName": "Georgie",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "GU",
+ "zoneName": "Guam",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "HI",
+ "zoneName": "Hawaii",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "ID",
+ "zoneName": "Idaho",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "IL",
+ "zoneName": "Illinois",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "IN",
+ "zoneName": "Indiana",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "IA",
+ "zoneName": "Iowa",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "KS",
+ "zoneName": "Kansas",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "KY",
+ "zoneName": "Kentucky",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "LA",
+ "zoneName": "Louisiane",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "ME",
+ "zoneName": "Maine",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "MH",
+ "zoneName": "Marshall Islands",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "MD",
+ "zoneName": "Maryland",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "MA",
+ "zoneName": "Massachusetts",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "MI",
+ "zoneName": "Michigan",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "MN",
+ "zoneName": "Minnesota",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "MS",
+ "zoneName": "Mississippi",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "MO",
+ "zoneName": "Missouri",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "MT",
+ "zoneName": "Montana",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "NE",
+ "zoneName": "Nebraska",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "NV",
+ "zoneName": "Nevada",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "NH",
+ "zoneName": "Nouveau Hampshire",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "NJ",
+ "zoneName": "New Jersey",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "NM",
+ "zoneName": "Nouveau Mexique",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "NY",
+ "zoneName": "New York",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "NC",
+ "zoneName": "Caroline du Nord",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "ND",
+ "zoneName": "Dakota du Nord",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "MP",
+ "zoneName": "Northern Mariana Islands",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "OH",
+ "zoneName": "Ohio",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "OK",
+ "zoneName": "Oklahoma",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "OR",
+ "zoneName": "Oregon",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "PA",
+ "zoneName": "Pennsylvanie",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "PR",
+ "zoneName": "Puerto Rico",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "RI",
+ "zoneName": "Rhode Island",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "SC",
+ "zoneName": "Caroline du Sud",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "SD",
+ "zoneName": "Dakota du Sud",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "TN",
+ "zoneName": "Tennessee",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "TX",
+ "zoneName": "Texas",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "UT",
+ "zoneName": "Utah",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "VT",
+ "zoneName": "Vermont",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "VI",
+ "zoneName": "Virgin Islands",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "VA",
+ "zoneName": "Virginie",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "WA",
+ "zoneName": "Washington",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "WV",
+ "zoneName": "West Virginia",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "WI",
+ "zoneName": "Wisconsin",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "WY",
+ "zoneName": "Wyoming",
+ "countryCode": "US"
+ },
+ {
+ "zoneCode": "AB",
+ "zoneName": "Alberta",
+ "countryCode": "CA"
+ },
+ {
+ "zoneCode": "BC",
+ "zoneName": "Columbie Britanique",
+ "countryCode": "CA"
+ },
+ {
+ "zoneCode": "MB",
+ "zoneName": "Manitoba",
+ "countryCode": "CA"
+ },
+ {
+ "zoneCode": "NF",
+ "zoneName": "Terre-Neuve - Labrador",
+ "countryCode": "CA"
+ },
+ {
+ "zoneCode": "NB",
+ "zoneName": "Nouveau Brunswick",
+ "countryCode": "CA"
+ },
+ {
+ "zoneCode": "NS",
+ "zoneName": "Nouvelle Écosse",
+ "countryCode": "CA"
+ },
+ {
+ "zoneCode": "NT",
+ "zoneName": "Territores du Nord-Ouest",
+ "countryCode": "CA"
+ },
+ {
+ "zoneCode": "NU",
+ "zoneName": "Nunavut",
+ "countryCode": "CA"
+ },
+ {
+ "zoneCode": "ON",
+ "zoneName": "Ontario",
+ "countryCode": "CA"
+ },
+ {
+ "zoneCode": "PE",
+ "zoneName": "Île-du-Prince-Édouard",
+ "countryCode": "CA"
+ },
+ {
+ "zoneCode": "QC",
+ "zoneName": "Québec",
+ "countryCode": "CA"
+ },
+ {
+ "zoneCode": "SK",
+ "zoneName": "Saskatchewan",
+ "countryCode": "CA"
+ },
+ {
+ "zoneCode": "YT",
+ "zoneName": "Yukon",
+ "countryCode": "CA"
+ },
+ {
+ "zoneCode": "NDS",
+ "zoneName": "Niedersachsen",
+ "countryCode": "DE"
+ },
+ {
+ "zoneCode": "BAW",
+ "zoneName": "Baden-Wrttemberg",
+ "countryCode": "DE"
+ },
+ {
+ "zoneCode": "BAY",
+ "zoneName": "Bayern",
+ "countryCode": "DE"
+ },
+ {
+ "zoneCode": "BER",
+ "zoneName": "Berlin",
+ "countryCode": "DE"
+ },
+ {
+ "zoneCode": "BRG",
+ "zoneName": "Brandenburg",
+ "countryCode": "DE"
+ },
+ {
+ "zoneCode": "BRE",
+ "zoneName": "Bremen",
+ "countryCode": "DE"
+ },
+ {
+ "zoneCode": "HAM",
+ "zoneName": "Hamburg",
+ "countryCode": "DE"
+ },
+ {
+ "zoneCode": "HES",
+ "zoneName": "Hessen",
+ "countryCode": "DE"
+ },
+ {
+ "zoneCode": "MEC",
+ "zoneName": "Mecklenburg-Vorpommern",
+ "countryCode": "DE"
+ },
+ {
+ "zoneCode": "NRW",
+ "zoneName": "Nordrhein-Westfalen",
+ "countryCode": "DE"
+ },
+ {
+ "zoneCode": "RHE",
+ "zoneName": "Rheinland-Pfalz",
+ "countryCode": "DE"
+ },
+ {
+ "zoneCode": "SAR",
+ "zoneName": "Saarland",
+ "countryCode": "DE"
+ },
+ {
+ "zoneCode": "SAS",
+ "zoneName": "Sachsen",
+ "countryCode": "DE"
+ },
+ {
+ "zoneCode": "SAC",
+ "zoneName": "Sachsen-Anhalt",
+ "countryCode": "DE"
+ },
+ {
+ "zoneCode": "SCN",
+ "zoneName": "Schleswig-Holstein",
+ "countryCode": "DE"
+ },
+ {
+ "zoneCode": "THE",
+ "zoneName": "Thringen",
+ "countryCode": "DE"
+ },
+ {
+ "zoneCode": "WIAT",
+ "zoneName": "Wien",
+ "countryCode": "AT"
+ },
+ {
+ "zoneCode": "NO",
+ "zoneName": "Niederosterreich",
+ "countryCode": "AT"
+ },
+ {
+ "zoneCode": "OO",
+ "zoneName": "Oberosterreich",
+ "countryCode": "AT"
+ },
+ {
+ "zoneCode": "SB",
+ "zoneName": "Salzburg",
+ "countryCode": "AT"
+ },
+ {
+ "zoneCode": "KN",
+ "zoneName": "Karten",
+ "countryCode": "AT"
+ },
+ {
+ "zoneCode": "ST",
+ "zoneName": "Steiermark",
+ "countryCode": "AT"
+ },
+ {
+ "zoneCode": "TIAT",
+ "zoneName": "Tirol",
+ "countryCode": "AT"
+ },
+ {
+ "zoneCode": "BLAT",
+ "zoneName": "Burgenland",
+ "countryCode": "AT"
+ },
+ {
+ "zoneCode": "VB",
+ "zoneName": "Voralberg",
+ "countryCode": "AT"
+ },
+ {
+ "zoneCode": "AG",
+ "zoneName": "Aargau",
+ "countryCode": "CH"
+ },
+ {
+ "zoneCode": "AI",
+ "zoneName": "Appenzell Innerrhoden",
+ "countryCode": "CH"
+ },
+ {
+ "zoneCode": "ARCH",
+ "zoneName": "Appenzell Ausserrhoden",
+ "countryCode": "CH"
+ },
+ {
+ "zoneCode": "BE",
+ "zoneName": "Bern",
+ "countryCode": "CH"
+ },
+ {
+ "zoneCode": "BL",
+ "zoneName": "Basel-Landschaft",
+ "countryCode": "CH"
+ },
+ {
+ "zoneCode": "BS",
+ "zoneName": "Basel-Stadt",
+ "countryCode": "CH"
+ },
+ {
+ "zoneCode": "FR",
+ "zoneName": "Freiburg",
+ "countryCode": "CH"
+ },
+ {
+ "zoneCode": "GE",
+ "zoneName": "Genf",
+ "countryCode": "CH"
+ },
+ {
+ "zoneCode": "GL",
+ "zoneName": "Glarus",
+ "countryCode": "CH"
+ },
+ {
+ "zoneCode": "GR",
+ "zoneName": "Graubnden",
+ "countryCode": "CH"
+ },
+ {
+ "zoneCode": "JU",
+ "zoneName": "Jura",
+ "countryCode": "CH"
+ },
+ {
+ "zoneCode": "LU",
+ "zoneName": "Luzern",
+ "countryCode": "CH"
+ },
+ {
+ "zoneCode": "NECH",
+ "zoneName": "Neuenburg",
+ "countryCode": "CH"
+ },
+ {
+ "zoneCode": "NW",
+ "zoneName": "Nidwalden",
+ "countryCode": "CH"
+ },
+ {
+ "zoneCode": "OW",
+ "zoneName": "Obwalden",
+ "countryCode": "CH"
+ },
+ {
+ "zoneCode": "SG",
+ "zoneName": "St. Gallen",
+ "countryCode": "CH"
+ },
+ {
+ "zoneCode": "SH",
+ "zoneName": "Schaffhausen",
+ "countryCode": "CH"
+ },
+ {
+ "zoneCode": "SO",
+ "zoneName": "Solothurn",
+ "countryCode": "CH"
+ },
+ {
+ "zoneCode": "SZ",
+ "zoneName": "Schwyz",
+ "countryCode": "CH"
+ },
+ {
+ "zoneCode": "TG",
+ "zoneName": "Thurgau",
+ "countryCode": "CH"
+ },
+ {
+ "zoneCode": "TI",
+ "zoneName": "Tessin",
+ "countryCode": "CH"
+ },
+ {
+ "zoneCode": "UR",
+ "zoneName": "Uri",
+ "countryCode": "CH"
+ },
+ {
+ "zoneCode": "VD",
+ "zoneName": "Waadt",
+ "countryCode": "CH"
+ },
+ {
+ "zoneCode": "VS",
+ "zoneName": "Wallis",
+ "countryCode": "CH"
+ },
+ {
+ "zoneCode": "ZG",
+ "zoneName": "Zug",
+ "countryCode": "CH"
+ },
+ {
+ "zoneCode": "ZH",
+ "zoneName": "Zrich",
+ "countryCode": "CH"
+ },
+ {
+ "zoneCode": "A Corua",
+ "zoneName": "A Corua",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Alava",
+ "zoneName": "Alava",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Albacete",
+ "zoneName": "Albacete",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Alicante",
+ "zoneName": "Alicante",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Almeria",
+ "zoneName": "Almeria",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Asturias",
+ "zoneName": "Asturias",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Avila",
+ "zoneName": "Avila",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Badajoz",
+ "zoneName": "Badajoz",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Baleares",
+ "zoneName": "Baleares",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Barcelona",
+ "zoneName": "Barcelona",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Burgos",
+ "zoneName": "Burgos",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Caceres",
+ "zoneName": "Caceres",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Cadiz",
+ "zoneName": "Cadiz",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Cantabria",
+ "zoneName": "Cantabria",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Castellon",
+ "zoneName": "Castellon",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Ceuta",
+ "zoneName": "Ceuta",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "CiudadReal",
+ "zoneName": "Ciudad Real",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Cordoba",
+ "zoneName": "Cordoba",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Cuenca",
+ "zoneName": "Cuenca",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Girona",
+ "zoneName": "Girona",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Granada",
+ "zoneName": "Granada",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Guadalajara",
+ "zoneName": "Guadalajara",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Guipuzcoa",
+ "zoneName": "Guipuzcoa",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Huelva",
+ "zoneName": "Huelva",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Huesca",
+ "zoneName": "Huesca",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Jaen",
+ "zoneName": "Jaen",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "LaRioja",
+ "zoneName": "La Rioja",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "LasPalmas",
+ "zoneName": "Las Palmas",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Leon",
+ "zoneName": "Leon",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Lleida",
+ "zoneName": "Lleida",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Lugo",
+ "zoneName": "Lugo",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Madrid",
+ "zoneName": "Madrid",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Malaga",
+ "zoneName": "Malaga",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Melilla",
+ "zoneName": "Melilla",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Murcia",
+ "zoneName": "Murcia",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Navarra",
+ "zoneName": "Navarra",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Ourense",
+ "zoneName": "Ourense",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Palencia",
+ "zoneName": "Palencia",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Pontevedra",
+ "zoneName": "Pontevedra",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Salamanca",
+ "zoneName": "Salamanca",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "SantaCruzdeTenerife",
+ "zoneName": "Santa Cruz de Tenerife",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Segovia",
+ "zoneName": "Segovia",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Sevilla",
+ "zoneName": "Sevilla",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Soria",
+ "zoneName": "Soria",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Tarragona",
+ "zoneName": "Tarragona",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Teruel",
+ "zoneName": "Teruel",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Toledo",
+ "zoneName": "Toledo",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Valencia",
+ "zoneName": "Valencia",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Valladolid",
+ "zoneName": "Valladolid",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Vizcaya",
+ "zoneName": "Vizcaya",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Zamora",
+ "zoneName": "Zamora",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode": "Zaragoza",
+ "zoneName": "Zaragoza",
+ "countryCode": "ES"
+ },
+ {
+ "zoneCode":"ACT",
+ "zoneName":"Territoire de la capitale australienne",
+ "countryCode":"AU"
+ },
+ {
+ "zoneCode":"WAAU",
+ "zoneName":"Australie-Occidentale",
+ "countryCode":"AU"
+ },
+ {
+ "zoneCode":"SA",
+ "zoneName":"Australie-Mridionale",
+ "countryCode":"AU"
+ },
+ {
+ "zoneCode":"NTAU",
+ "zoneName":"Territoire du Nord",
+ "countryCode":"AU"
+ },
+ {
+ "zoneCode":"VIC",
+ "zoneName":"Victoria",
+ "countryCode":"AU"
+ },
+ {
+ "zoneCode":"TAS",
+ "zoneName":"Tasmanie",
+ "countryCode":"AU"
+ },
+ {
+ "zoneCode":"QLD",
+ "zoneName":"Queensland",
+ "countryCode":"AU"
+ },
+ {
+ "zoneCode":"NSW",
+ "zoneName":"Nouvelle-Galles du Sud",
+ "countryCode":"AU"
+ }
+
+]
+}
\ No newline at end of file
diff --git a/sm-core/target/classes/rules/shipping-custom-rules.xls b/sm-core/target/classes/rules/shipping-custom-rules.xls
new file mode 100644
index 0000000..5d8d5eb
Binary files /dev/null and b/sm-core/target/classes/rules/shipping-custom-rules.xls differ
diff --git a/sm-core/target/classes/rules/shipping-decision-rules.xls b/sm-core/target/classes/rules/shipping-decision-rules.xls
new file mode 100644
index 0000000..cd792da
Binary files /dev/null and b/sm-core/target/classes/rules/shipping-decision-rules.xls differ
sm-core/target/classes/search/keyword.json 11(+11 -0)
diff --git a/sm-core/target/classes/search/keyword.json b/sm-core/target/classes/search/keyword.json
new file mode 100644
index 0000000..4dd1fdc
--- /dev/null
+++ b/sm-core/target/classes/search/keyword.json
@@ -0,0 +1,11 @@
+{
+ "keyword_en": {
+ "properties": {
+ "keyword": {
+ "type": "string",
+ "analyzer": "autocomplete",
+ "search_analyzer": "standard"
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/sm-core/target/classes/search/keyword_fr.json b/sm-core/target/classes/search/keyword_fr.json
new file mode 100644
index 0000000..a03b835
--- /dev/null
+++ b/sm-core/target/classes/search/keyword_fr.json
@@ -0,0 +1,11 @@
+{
+ "keyword_fr": {
+ "properties": {
+ "keyword": {
+ "type": "string",
+ "analyzer": "autocomplete",
+ "search_analyzer": "standard"
+ }
+ }
+ }
+}
\ No newline at end of file
sm-core/target/classes/search/product.json 15(+15 -0)
diff --git a/sm-core/target/classes/search/product.json b/sm-core/target/classes/search/product.json
new file mode 100644
index 0000000..4305699
--- /dev/null
+++ b/sm-core/target/classes/search/product.json
@@ -0,0 +1,15 @@
+{"product_en": {
+ "properties" : {
+ "name": {"type": "String","analyzer":"folding_en"},
+ "price" : {"type":"String","index":"not_analyzed"},
+ "categories" : {"type":"String","index":"not_analyzed"},
+ "lang" : {"type":"String","index":"not_analyzed"},
+ "store" : {"type":"String","index":"not_analyzed"},
+ "availability" : {"type":"String","index":"not_analyzed"},
+ "available" : {"type":"String","index":"not_analyzed"},
+ "description" : {"type":"String","analyzer":"folding_en"},
+ "tags" : {"type":"String","analyzer":"folding_en"}
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/sm-core/target/classes/search/product_fr.json b/sm-core/target/classes/search/product_fr.json
new file mode 100644
index 0000000..9cbc80c
--- /dev/null
+++ b/sm-core/target/classes/search/product_fr.json
@@ -0,0 +1,14 @@
+{"product_fr": {
+ "properties" : {
+ "name": {"type": "String","analyzer":"folding_fr"},
+ "price" : {"type":"String","index":"not_analyzed"},
+ "categories" : {"type":"String","index":"not_analyzed"},
+ "lang" : {"type":"String","index":"not_analyzed"},
+ "store" : {"type":"String","index":"not_analyzed"},
+ "availability" : {"type":"String","index":"not_analyzed"},
+ "available" : {"type":"String","index":"not_analyzed"},
+ "description" : {"type":"String","analyzer":"folding_fr"},
+ "tags" : {"type":"String","analyzer":"folding_fr"}
+ }
+ }
+}
\ No newline at end of file
diff --git a/sm-core/target/classes/search/settings_keyword.json b/sm-core/target/classes/search/settings_keyword.json
new file mode 100644
index 0000000..3d8750e
--- /dev/null
+++ b/sm-core/target/classes/search/settings_keyword.json
@@ -0,0 +1,22 @@
+ {
+ "analysis": {
+ "filter": {
+ "autocomplete_filter": {
+ "type": "edge_ngram",
+ "min_gram": 1,
+ "max_gram": 20
+ }
+ },
+ "analyzer": {
+ "autocomplete": {
+ "type": "custom",
+ "tokenizer": "standard",
+ "filter": [
+ "lowercase",
+ "asciifolding",
+ "autocomplete_filter"
+ ]
+ }
+ }
+ }
+ }
\ No newline at end of file
diff --git a/sm-core/target/classes/search/settings_product.json b/sm-core/target/classes/search/settings_product.json
new file mode 100644
index 0000000..175715a
--- /dev/null
+++ b/sm-core/target/classes/search/settings_product.json
@@ -0,0 +1,32 @@
+{
+ "index": {
+ "analysis": {
+ "filter": {
+ "english_stop": {
+ "type": "stop",
+ "stopwords": "_english_"
+ },
+ "english_stemmer": {
+ "type": "stemmer",
+ "language": "english"
+ },
+ "english_possessive_stemmer": {
+ "type": "stemmer",
+ "language": "possessive_english"
+ }
+ },
+ "analyzer": {
+ "folding_en": {
+ "tokenizer": "standard",
+ "filter": [
+ "english_possessive_stemmer",
+ "asciifolding",
+ "lowercase",
+ "english_stop",
+ "english_stemmer"
+ ]
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/sm-core/target/classes/search/settings_product_fr.json b/sm-core/target/classes/search/settings_product_fr.json
new file mode 100644
index 0000000..6c4e9e9
--- /dev/null
+++ b/sm-core/target/classes/search/settings_product_fr.json
@@ -0,0 +1,38 @@
+
+{
+ "index": {
+ "analysis": {
+ "filter": {
+ "french_elision": {
+ "type":"elision",
+ "articles_case": true,
+ "articles": [
+ "l", "m", "t", "qu", "n", "s",
+ "j", "d", "c", "jusqu", "quoiqu",
+ "lorsqu", "puisqu"
+ ]
+ },
+ "french_stop": {
+ "type": "stop",
+ "stopwords": "_french_"
+ },
+ "french_stemmer": {
+ "type": "stemmer",
+ "language": "light_french"
+ }
+ },
+ "analyzer": {
+ "folding_fr": {
+ "tokenizer": "standard",
+ "filter": [
+ "lowercase",
+ "asciifolding",
+ "french_elision",
+ "french_stop",
+ "french_stemmer"
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/sm-core/target/classes/spring/datasource-c3p0.xml b/sm-core/target/classes/spring/datasource-c3p0.xml
new file mode 100644
index 0000000..50ac670
--- /dev/null
+++ b/sm-core/target/classes/spring/datasource-c3p0.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
+ xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
+
+ <bean id="datasource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
+ p:driverClass="${db.driverClass}" p:jdbcUrl="${db.jdbcUrl}" p:user="${db.user}"
+ p:password="${db.password}" p:initialPoolSize="${db.initialPoolSize}"
+ p:minPoolSize="${db.minPoolSize}" p:maxPoolSize="${db.maxPoolSize}"
+ p:preferredTestQuery="${db.preferredTestQuery}" p:testConnectionOnCheckin="true"
+ p:idleConnectionTestPeriod="300" destroy-method="close" />
+
+</beans>
sm-core/target/classes/spring/ehcache.xml 27(+27 -0)
diff --git a/sm-core/target/classes/spring/ehcache.xml b/sm-core/target/classes/spring/ehcache.xml
new file mode 100644
index 0000000..4a78203
--- /dev/null
+++ b/sm-core/target/classes/spring/ehcache.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ehcache name="com.shopizer.core.cache"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd">
+
+ <defaultCache
+ maxElementsInMemory="10000"
+ eternal="false"
+ timeToIdleSeconds="120"
+ timeToLiveSeconds="120"
+ overflowToDisk="false"
+ diskSpoolBufferSizeMB="30"
+ maxElementsOnDisk="10000000"
+ diskPersistent="false"
+ diskExpiryThreadIntervalSeconds="120"
+ memoryStoreEvictionPolicy="LRU" />
+
+
+ <cache name="com.shopizer.OBJECT_CACHE"
+ maxElementsInMemory="10000"
+ eternal="false"
+ overflowToDisk="false"
+ timeToIdleSeconds="1200"
+ timeToLiveSeconds="1200"
+ memoryStoreEvictionPolicy="LFU" />
+
+</ehcache>
\ No newline at end of file
diff --git a/sm-core/target/classes/spring/processors/shopizer-core-shipping-processors.xml b/sm-core/target/classes/spring/processors/shopizer-core-shipping-processors.xml
new file mode 100644
index 0000000..2da13b2
--- /dev/null
+++ b/sm-core/target/classes/spring/processors/shopizer-core-shipping-processors.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:util="http://www.springframework.org/schema/util"
+ xsi:schemaLocation="
+ http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+ http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">
+
+ <!-- Shipping pre-processors -->
+ <util:list id="shippingModulePreProcessors" value-type="com.salesmanager.core.business.modules.integration.shipping.model.ShippingQuotePrePostProcessModule">
+ <ref bean="shippingDistancePreProcessor"/>
+ <!-- From rules -->
+ <ref bean="shippingMethodDecisionProcess"/>
+ </util:list>
+
+ <!-- Calculates the distance between the origin and destination -->
+ <!-- shipping-distance-processor project -->
+ <bean id="shippingDistancePreProcessor"
+ class="com.shopizer.modules.shipping.distance.ShippingDistancePreProcessorImpl">
+ <!-- Google API key -->
+ <property name="apiKey" value="YOUR_KEY_HERE"/>
+ <property name="allowedZonesCodes" ref="acceptedZones"/>
+ </bean>
+
+
+ <!-- Decides dynamicaly which method is used based on a decision table-->
+ <bean id="shippingMethodDecisionProcess"
+ class="com.salesmanager.core.business.modules.integration.shipping.impl.ShippingDecisionPreProcessorImpl">
+ </bean>
+
+ <!-- Any post process required after getting a quote -->
+ <!-- Shipping post-processors -->
+ <util:list id="shippingModulePostProcessors" value-type="com.salesmanager.core.business.modules.integration.shipping.model.ShippingQuotePrePostProcessModule">
+ <ref bean="storePickUp"/><!-- defined in core-modules -->
+ </util:list>
+
+ <!-- List of accepted zones for using shipping distance pre processor -->
+ <util:list id="acceptedZones" value-type="java.lang.String">
+ <value>NY</value>
+ <value>NJ</value>
+ </util:list>
+
+</beans>
\ No newline at end of file
diff --git a/sm-core/target/classes/spring/shopizer-context.xml b/sm-core/target/classes/spring/shopizer-context.xml
new file mode 100644
index 0000000..7fe2ac8
--- /dev/null
+++ b/sm-core/target/classes/spring/shopizer-context.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans:beans xmlns:beans="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns="http://www.springframework.org/schema/data/jpa"
+ xmlns:util="http://www.springframework.org/schema/util"
+ xmlns:context="http://www.springframework.org/schema/context"
+ xmlns:aop="http://www.springframework.org/schema/aop"
+ xmlns:tx="http://www.springframework.org/schema/tx"
+ xsi:schemaLocation="http://www.springframework.org/schema/beans
+ http://www.springframework.org/schema/beans/spring-beans.xsd
+ http://www.springframework.org/schema/tx
+ http://www.springframework.org/schema/tx/spring-tx.xsd
+ http://www.springframework.org/schema/aop
+ http://www.springframework.org/schema/aop/spring-aop.xsd
+ http://www.springframework.org/schema/util
+ http://www.springframework.org/schema/util/spring-util.xsd
+ http://www.springframework.org/schema/context
+ http://www.springframework.org/schema/context/spring-context.xsd
+ http://www.springframework.org/schema/data/jpa
+ http://www.springframework.org/schema/data/jpa/spring-jpa.xsd">
+
+ <!-- This is the entry XML point -->
+
+
+ <!-- datasource -->
+ <beans:import resource="classpath:/spring/datasource-c3p0.xml" />
+ <!-- cache -->
+ <beans:import resource="classpath:/spring/shopizer-core-ehcache.xml" />
+ <!-- DB, TX and properties -->
+ <beans:import resource="classpath:/spring/shopizer-core-config.xml" />
+ <!-- modules -->
+ <beans:import resource="classpath:/spring/shopizer-core-modules.xml" />
+ <!-- shipping pre processors -->
+ <beans:import resource="classpath:/spring/processors/shopizer-core-shipping-processors.xml" />
+ <!-- rules -->
+ <beans:import resource="classpath:/spring/shopizer-core-rules.xml" />
+ <!-- search -->
+ <beans:import resource="classpath:/spring/shopizer-search.xml" />
+
+
+
+
+</beans:beans>
\ No newline at end of file
diff --git a/sm-core/target/classes/spring/shopizer-core-config.xml b/sm-core/target/classes/spring/shopizer-core-config.xml
new file mode 100644
index 0000000..654ecf3
--- /dev/null
+++ b/sm-core/target/classes/spring/shopizer-core-config.xml
@@ -0,0 +1,127 @@
+<beans:beans xmlns:beans="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns="http://www.springframework.org/schema/data/jpa"
+ xmlns:util="http://www.springframework.org/schema/util"
+ xmlns:context="http://www.springframework.org/schema/context"
+ xmlns:aop="http://www.springframework.org/schema/aop"
+ xmlns:tx="http://www.springframework.org/schema/tx"
+ xsi:schemaLocation="http://www.springframework.org/schema/beans
+ http://www.springframework.org/schema/beans/spring-beans.xsd
+ http://www.springframework.org/schema/tx
+ http://www.springframework.org/schema/tx/spring-tx.xsd
+ http://www.springframework.org/schema/aop
+ http://www.springframework.org/schema/aop/spring-aop.xsd
+ http://www.springframework.org/schema/util
+ http://www.springframework.org/schema/util/spring-util.xsd
+ http://www.springframework.org/schema/context
+ http://www.springframework.org/schema/context/spring-context.xsd
+ http://www.springframework.org/schema/data/jpa
+ http://www.springframework.org/schema/data/jpa/spring-jpa.xsd">
+
+
+ <context:annotation-config />
+ <!-- services -->
+ <context:component-scan base-package="com.salesmanager.core.business.services" />
+ <!-- utils - components -->
+ <context:component-scan base-package="com.salesmanager.core.business.utils" />
+ <!-- repositories -->
+ <repositories base-package="com.salesmanager.core.business.repositories"/>
+
+ <!-- JPA and transactions -->
+ <tx:annotation-driven />
+
+ <beans:bean id="entityManagerFactory" name="shopizerContainer" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
+
+ <beans:property name="dataSource" ref="datasource" />
+
+ <beans:property name="jpaVendorAdapter">
+ <beans:bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
+ <beans:property name="showSql" value="true" />
+ <beans:property name="generateDdl" value="false" />
+ <beans:property name="databasePlatform" value="${hibernate.dialect}" />
+ </beans:bean>
+ </beans:property>
+ <beans:property name="jpaProperties">
+ <util:map>
+ <beans:entry key="hibernate.default_schema" value="${db.schema}" />
+ <beans:entry key="hibernate.hbm2ddl.auto" value="${hibernate.hbm2ddl.auto}" />
+ <beans:entry key="hibernate.show_sql" value="true" />
+ <beans:entry key="hibernate.cache.provider_class" value="org.hibernate.cache.EhCacheProvider" />
+ <beans:entry key="hibernate.cache.use_second_level_cache" value="true" />
+
+ <!-- Uncomment the following 2 lines to generate shopizer sql schema when the application is built. Remove the schema.sql file once generated, otherwise it will try to create it twice in the test database (table already exist... -->
+ <!--
+ <beans:entry key="javax.persistence.schema-generation.scripts.action" value="create" />
+ <beans:entry key="javax.persistence.schema-generation.scripts.create-target" value="src/test/resources/schema.sql" />
+ -->
+ </util:map>
+ </beans:property>
+
+ <beans:property name="loadTimeWeaver">
+ <beans:bean class="org.springframework.instrument.classloading.InstrumentationLoadTimeWeaver" />
+ </beans:property>
+ </beans:bean>
+
+ <!-- Configure the transaction manager bean -->
+ <beans:bean id="transactionManager"
+ class="org.springframework.orm.jpa.JpaTransactionManager">
+ <beans:property name="entityManagerFactory" ref="entityManagerFactory"/>
+ </beans:bean>
+
+ <!-- Enable annotation driven transaction management -->
+ <tx:annotation-driven/>
+
+ <aop:config>
+ <aop:pointcut id="txPointCutDef" expression="this(com.salesmanager.core.business.services.common.generic.TransactionalAspectAwareService)" />
+ <aop:advisor advice-ref="txAdvice" pointcut-ref="txPointCutDef" />
+ </aop:config>
+
+ <tx:advice id="txAdvice" transaction-manager="transactionManager">
+ <tx:attributes>
+ <tx:method name="get*" read-only="true" />
+ <tx:method name="list*" read-only="true" />
+ <tx:method name="search*" read-only="true" />
+ <tx:method name="*" read-only="false" rollback-for="com.salesmanager.core.business.exception.ServiceException" />
+ </tx:attributes>
+ </tx:advice>
+
+ <beans:bean id="persistenceExceptionTranslationPostProcessor"
+ class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor" />
+
+
+ <!-- properties files -->
+ <beans:bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
+ <beans:property name="ignoreUnresolvablePlaceholders" value="false"/>
+ <beans:property name="locations">
+ <beans:list>
+ <beans:value>classpath:database.properties</beans:value>
+ <beans:value>classpath:email.properties</beans:value>
+ <beans:value>classpath:configs.properties</beans:value>
+ </beans:list>
+ </beans:property>
+ </beans:bean>
+
+
+ <!-- in sm-shop -->
+ <beans:bean id="coreConfiguration" class="com.salesmanager.core.business.utils.CoreConfiguration">
+ <beans:property name="properties" ref="shopizer-properties"/>
+ </beans:bean>
+
+ <beans:bean id="secretKey" class="java.lang.String">
+ <beans:constructor-arg value="${secretKey}"/>
+ </beans:bean>
+
+ <!--Get the secret key from JNDI-->
+
+ <!-- don't need the secret key out of the box, unless you decide to have the key stored in a remote jndi context
+ <jee:jndi-lookup id="secretKey"
+ jndi-name="java:comp/env/secretKey" />
+ -->
+
+ <!-- JDBC User -->
+ <!--
+ <beans:bean id="userService" class="com.salesmanager.core.business.user.service.UserServiceImpl"/>
+ <beans:bean id="applicationContextListenerUtils" class="com.salesmanager.core.utils.ApplicationContextListenerUtils" />
+ -->
+
+</beans:beans>
\ No newline at end of file
diff --git a/sm-core/target/classes/spring/shopizer-core-ehcache.xml b/sm-core/target/classes/spring/shopizer-core-ehcache.xml
new file mode 100644
index 0000000..cc1fce0
--- /dev/null
+++ b/sm-core/target/classes/spring/shopizer-core-ehcache.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:aop="http://www.springframework.org/schema/aop"
+ xmlns:context="http://www.springframework.org/schema/context" xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:task="http://www.springframework.org/schema/task"
+ xmlns:util="http://www.springframework.org/schema/util"
+ xsi:schemaLocation="
+ http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
+ http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+ http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
+ http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee.xsd
+ http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
+ http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task.xsd
+ http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd
+ http://ehcache-spring-annotations.googlecode.com/svn/schema/ehcache-spring http://ehcache-spring-annotations.googlecode.com/svn/schema/ehcache-spring/ehcache-spring.xsd">
+
+
+ <bean id="springCacheManager" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">
+ <property name="configLocation" value="classpath:/spring/ehcache.xml" />
+ <property name="shared" value="false" />
+ </bean>
+
+ <bean id="serviceCacheManager" class="org.springframework.cache.ehcache.EhCacheCacheManager">
+ <property name="cacheManager">
+ <ref bean="springCacheManager" />
+ </property>
+ </bean>
+
+ <bean id="serviceCache" factory-bean="serviceCacheManager" factory-method="getCache">
+ <constructor-arg value="com.shopizer.OBJECT_CACHE" />
+ </bean>
+
+</beans>
\ No newline at end of file
diff --git a/sm-core/target/classes/spring/shopizer-core-modules.xml b/sm-core/target/classes/spring/shopizer-core-modules.xml
new file mode 100644
index 0000000..412392c
--- /dev/null
+++ b/sm-core/target/classes/spring/shopizer-core-modules.xml
@@ -0,0 +1,269 @@
+<beans:beans xmlns:beans="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns="http://www.springframework.org/schema/data/jpa"
+ xmlns:util="http://www.springframework.org/schema/util"
+ xmlns:context="http://www.springframework.org/schema/context"
+ xmlns:aop="http://www.springframework.org/schema/aop"
+ xmlns:tx="http://www.springframework.org/schema/tx"
+ xsi:schemaLocation="http://www.springframework.org/schema/beans
+ http://www.springframework.org/schema/beans/spring-beans.xsd
+ http://www.springframework.org/schema/tx
+ http://www.springframework.org/schema/tx/spring-tx.xsd
+ http://www.springframework.org/schema/aop
+ http://www.springframework.org/schema/aop/spring-aop.xsd
+ http://www.springframework.org/schema/util
+ http://www.springframework.org/schema/util/spring-util.xsd
+ http://www.springframework.org/schema/context
+ http://www.springframework.org/schema/context/spring-context.xsd
+ http://www.springframework.org/schema/data/jpa
+ http://www.springframework.org/schema/data/jpa/spring-jpa.xsd">
+
+ <!-- Shipping integration modules -->
+
+ <util:map id="shippingModules" map-class="java.util.HashMap" key-type="java.lang.String" value-type="com.salesmanager.core.business.modules.integration.shipping.model.ShippingQuoteModule">
+ <beans:entry key="canadapost" value-ref="canadapost"/>
+ <beans:entry key="usps" value-ref="usps"/>
+ <beans:entry key="ups" value-ref="ups"/>
+ <beans:entry key="weightBased" value-ref="weightBased"/>
+ <beans:entry key="priceByDistance" value-ref="priceByDistance"/>
+ <beans:entry key="storePickUp" value-ref="storePickUp"/>
+ <beans:entry key="customQuotesRules" value-ref="customShippingPriceModule"/><!--as defined in shopizer-core-rules-->
+ </util:map>
+
+ <!-- Payment integration modules -->
+ <util:map id="paymentModules" map-class="java.util.HashMap" key-type="java.lang.String" value-type="com.salesmanager.core.business.modules.integration.payment.model.PaymentModule">
+ <beans:entry key="beanstream" value-ref="beanstream"/>
+ <beans:entry key="paypal-express-checkout" value-ref="paypal-ec"/>
+ <beans:entry key="moneyorder" value-ref="moneyorder"/>
+ <beans:entry key="stripe" value-ref="stripe"/>
+ </util:map>
+
+ <!-- Shipping -->
+ <beans:bean id="canadapost"
+ class="com.shopizer.modules.shipping.canadapost.CanadaPostQuoteModule"/><!--shopizer-shipping-canadapost-module-->
+ <beans:bean id="usps"
+ class="com.salesmanager.core.business.modules.integration.shipping.impl.USPSShippingQuote"/>
+ <beans:bean id="ups"
+ class="com.salesmanager.core.business.modules.integration.shipping.impl.UPSShippingQuote"/>
+ <beans:bean id="weightBased"
+ class="com.salesmanager.core.business.modules.integration.shipping.impl.CustomWeightBasedShippingQuote"/>
+ <beans:bean id="priceByDistance"
+ class="com.salesmanager.core.business.modules.integration.shipping.impl.PriceByDistanceShippingQuoteRules"/>
+ <beans:bean id="storePickUp"
+ class="com.salesmanager.core.business.modules.integration.shipping.impl.StorePickupShippingQuote"/>
+ <beans:bean id="customShippingPriceModule"
+ class="com.salesmanager.core.business.modules.integration.shipping.impl.CustomShippingQuoteRules"/>
+
+
+ <!--Default packaging-->
+ <beans:bean id="boxPackaging"
+ class="com.salesmanager.core.business.modules.integration.shipping.impl.DefaultPackagingImpl"/>
+
+ <!--
+ Payment -->
+ <beans:bean id="beanstream"
+ class="com.salesmanager.core.business.modules.integration.payment.impl.BeanStreamPayment"/>
+ <beans:bean id="moneyorder"
+ class="com.salesmanager.core.business.modules.integration.payment.impl.MoneyOrderPayment"/>
+ <beans:bean id="paypal-ec"
+ class="com.salesmanager.core.business.modules.integration.payment.impl.PayPalExpressCheckoutPayment"/>
+ <beans:bean id="stripe"
+ class="com.salesmanager.core.business.modules.integration.payment.impl.StripePayment"/>
+
+
+
+
+ <!--
+ ********************
+ CMS
+ ********************
+ -->
+
+
+ <!-- Product images manager -->
+ <beans:bean id="productFileManager"
+ class="com.salesmanager.core.business.modules.cms.product.ProductFileManagerImpl">
+ <beans:property name="uploadImage">
+ <beans:ref bean="cmsProductImage" />
+ </beans:property>
+ <beans:property name="getImage">
+ <beans:ref bean="cmsProductImage" />
+ </beans:property>
+ <beans:property name="removeImage">
+ <beans:ref bean="cmsProductImage" />
+ </beans:property>
+ <beans:property name="configuration">
+ <beans:ref bean="coreConfiguration" />
+ </beans:property>
+ </beans:bean>
+
+ <!-- CMS implementation for product images -->
+ <beans:bean id="cmsProductImage"
+ class="com.salesmanager.core.business.modules.cms.product.infinispan.CmsImageFileManagerImpl" factory-method="getInstance" >
+ <beans:property name="cacheManager">
+ <beans:ref bean="storeCacheManager" />
+ </beans:property>
+ <beans:property name="rootName" value="product-merchant"/>
+ <!--<beans:property name="rootName" value="/Applications/AMPPS/www/shop-images"/>-->
+ </beans:bean>
+
+
+
+ <!-- Content images manager (logo, other store artifacts) -->
+ <beans:bean id="contentFileManager"
+ class="com.salesmanager.core.business.modules.cms.content.StaticContentFileManagerImpl">
+ <beans:property name="uploadFile">
+ <beans:ref bean="cmsStoreFile" />
+ </beans:property>
+ <beans:property name="getFile">
+ <beans:ref bean="cmsStoreFile" />
+ </beans:property>
+ <beans:property name="removeFile">
+ <beans:ref bean="cmsStoreFile" />
+ </beans:property>
+ </beans:bean>
+
+ <!-- logo, store artifacts -->
+ <beans:bean id="cmsStoreFile"
+ class="com.salesmanager.core.business.modules.cms.content.infinispan.CmsStaticContentFileManagerImpl" factory-method="getInstance" >
+ <beans:property name="cacheManager">
+ <beans:ref bean="storeCacheManager" />
+ </beans:property>
+ <beans:property name="rootName" value="store-merchant"/>
+ <!-- <beans:property name="rootName" value="/Applications/AMPPS/www/shop-images"/> -->
+ </beans:bean>
+
+
+
+
+ <!-- Static content files manager (images, pdf...) -->
+ <beans:bean id="staticContentFileManager" class="com.salesmanager.core.business.modules.cms.content.StaticContentFileManagerImpl">
+ <beans:property name="uploadFile">
+ <beans:ref bean="cmsStaticFile" />
+ </beans:property>
+ <beans:property name="getFile">
+ <beans:ref bean="cmsStaticFile" />
+ </beans:property>
+ <beans:property name="removeFile">
+ <beans:ref bean="cmsStaticFile" />
+ </beans:property>
+ </beans:bean>
+ <!-- end of CMS implementation for static content data -->
+
+
+ <!-- CMS implementation for static content data -->
+ <beans:bean id="cmsStaticFile" class="com.salesmanager.core.business.modules.cms.content.infinispan.CmsStaticContentFileManagerImpl" factory-method="getInstance">
+ <beans:property name="cacheManager">
+ <beans:ref bean="filesCacheManager" />
+ </beans:property>
+ <beans:property name="rootName" value="store-merchant"/>
+ <!-- <beans:property name="rootName" value="/Applications/AMPPS/www/shop-images/"/> -->
+ </beans:bean>
+
+
+
+
+ <!-- product downloads -->
+ <beans:bean id="productDownloadsFileManager" class="com.salesmanager.core.business.modules.cms.content.StaticContentFileManagerImpl">
+ <beans:property name="uploadFile">
+ <beans:ref bean="cmsProductFile" />
+ </beans:property>
+ <beans:property name="getFile">
+ <beans:ref bean="cmsProductFile" />
+ </beans:property>
+ <beans:property name="removeFile">
+ <beans:ref bean="cmsProductFile" />
+ </beans:property>
+ </beans:bean>
+ <!-- end of CMS implementation for static content data -->
+
+
+ <!-- CMS implementation for static content data -->
+ <beans:bean id="cmsProductFile" class="com.salesmanager.core.business.modules.cms.content.infinispan.CmsStaticContentFileManagerImpl" factory-method="getInstance">
+ <beans:property name="cacheManager">
+ <beans:ref bean="storeCacheManager" />
+ </beans:property>
+ <beans:property name="rootName" value="product-file"/>
+ <!-- <beans:property name="rootName" value="/Applications/AMPPS/www/shop-images"/> -->
+ </beans:bean>
+
+
+ <!-- Store Cache Manager (infinispan) -->
+ <beans:bean id="storeCacheManager"
+ class="com.salesmanager.core.business.modules.cms.impl.StoreCacheManagerImpl" factory-method="getInstance" >
+ </beans:bean>
+
+
+ <!-- Local cache manager (for apache httpd)
+ <beans:bean id="localCacheManager"
+ class="com.salesmanager.core.business.modules.cms.impl.LocalCacheManagerImpl" factory-method="getInstance" >
+ </beans:bean>
+ -->
+
+
+
+
+
+ <!-- Cache manager to handle static content data which includes
+ 1. CSS Files
+ 2. JS Files
+ 2. Digital data -->
+
+ <beans:bean id="filesCacheManager"
+ class="com.salesmanager.core.business.modules.cms.impl.StaticContentCacheManagerImpl" factory-method="getInstance" >
+ </beans:bean>
+
+ <!--Encryption-->
+ <beans:bean id="encryption"
+ class="com.salesmanager.core.business.modules.utils.EncryptionImpl">
+ <beans:property name="secretKey" ref="secretKey"/>
+ </beans:bean>
+
+ <!--Geo Location-->
+ <beans:bean id="geoLocation"
+ class="com.salesmanager.core.business.modules.utils.GeoLocationImpl">
+ </beans:bean>
+
+ <!-- Invoices -->
+ <beans:bean id="invoiceModule"
+ class="com.salesmanager.core.business.modules.order.ODSInvoiceModule" >
+ </beans:bean>
+
+ <!-- Email -->
+ <beans:bean id="freemarkerMailConfiguration" class="org.springframework.ui.freemarker.FreeMarkerConfigurationFactoryBean">
+ <!-- Uses HTML with templates and freemarker template engine -->
+ <beans:property name="templateLoaderPath" value="/templates/email"/>
+ </beans:bean>
+
+
+ <beans:bean id="mailSender"
+ class="org.springframework.mail.javamail.JavaMailSenderImpl">
+
+ <!-- configured in systems.properties -->
+ <beans:property name="protocol" value="${mailSender.protocol}" />
+ <beans:property name="host" value="${mailSender.host}" />
+ <beans:property name="port" value="${mailSender.port}" />
+
+ <beans:property name="username">
+ <beans:value>${mailSender.username}</beans:value>
+ </beans:property>
+
+ <beans:property name="password">
+ <beans:value>${mailSender.password}</beans:value>
+ </beans:property>
+
+ <beans:property name="javaMailProperties">
+ <beans:props>
+ <beans:prop key="mail.smtp.auth">${mailSender.mail.smtp.auth}</beans:prop>
+ <beans:prop key="mail.smtp.starttls.enable">${mail.smtp.starttls.enable}</beans:prop>
+ </beans:props>
+ </beans:property>
+ </beans:bean>
+
+ <beans:bean id="htmlEmailSender" class="com.salesmanager.core.business.modules.email.HtmlEmailSenderImpl" >
+ <beans:property name="mailSender" ref="mailSender"/>
+ <beans:property name="freemarkerMailConfiguration" ref="freemarkerMailConfiguration"/>
+ </beans:bean>
+
+
+</beans:beans>
\ No newline at end of file
diff --git a/sm-core/target/classes/spring/shopizer-core-rules.xml b/sm-core/target/classes/spring/shopizer-core-rules.xml
new file mode 100644
index 0000000..025f103
--- /dev/null
+++ b/sm-core/target/classes/spring/shopizer-core-rules.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans:beans xmlns:beans="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:drools="http://drools.org/schema/drools-spring"
+ xmlns:util="http://www.springframework.org/schema/util"
+ xsi:schemaLocation="
+ http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+ http://drools.org/schema/drools-spring http://drools.org/schema/drools-spring.xsd
+ http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">
+
+ <!-- Decision table for the the selection of a shipping method -->
+ <!-- from shopizer-shipping-decision-table-module -->
+ <drools:kbase id="shippingMethodDecisionBase">
+ <drools:resources>
+ <drools:resource type="DTABLE" source="classpath:rules/shipping-decision-rules.xls"/>
+ </drools:resources>
+ </drools:kbase>
+
+ <drools:ksession id="shippingMethodDecision" name="shippingMethodDecision" type="stateless" kbase="shippingMethodDecisionBase"/>
+
+ <!-- concrete module for the above kbase -->
+ <beans:bean id="shippingMethodDecisionProcess" class="com.salesmanager.core.business.modules.integration.shipping.impl.ShippingDecisionPreProcessorImpl">
+ <beans:property name="shippingMethodDecision" ref="shippingMethodDecision" />
+ <beans:property name="kbase" ref="shippingMethodDecisionBase" />
+ </beans:bean>
+
+ <!-- Custom shipping price based on drool rules -->
+ <!-- Basic custom shipping rules -->
+ <drools:kbase id="shippingPriceDecisionBase">
+ <drools:resources>
+ <drools:resource type="DTABLE" source="classpath:rules/shipping-custom-rules.xls"/>
+ </drools:resources>
+ </drools:kbase>
+
+ <drools:ksession id="shippingPriceRule" name="shippingPriceRule" type="stateless" kbase="shippingPriceDecisionBase"/>
+
+ <!-- concrete module for the above kbase -->
+ <beans:bean id="customShippingPriceModule" class="com.salesmanager.core.business.modules.integration.shipping.impl.CustomShippingQuoteRules">
+ <beans:property name="shippingPriceRule" ref="shippingPriceRule" />
+ <beans:property name="kbase" ref="shippingPriceDecisionBase" />
+ </beans:bean>
+
+</beans:beans>
\ No newline at end of file
sm-core/target/classes/spring/shopizer-search.xml 204(+204 -0)
diff --git a/sm-core/target/classes/spring/shopizer-search.xml b/sm-core/target/classes/spring/shopizer-search.xml
new file mode 100644
index 0000000..4f0099c
--- /dev/null
+++ b/sm-core/target/classes/spring/shopizer-search.xml
@@ -0,0 +1,204 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:util="http://www.springframework.org/schema/util"
+ xsi:schemaLocation="
+ http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+ http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd
+ ">
+
+ <!-- can have different search client for indexing & searching -->
+ <bean id="searchClient" class="com.shopizer.search.utils.SearchClient">
+ <property name="serverConfiguration">
+ <ref bean="serverConfiguration" />
+ </property>
+ </bean>
+
+ <!-- Server configuration -->
+ <bean id="serverConfiguration" class="com.shopizer.search.utils.ServerConfiguration">
+ <property name="clusterName" value="${elasticsearch.cluster.name}"/>
+ <!-- local (embedded version, will create new indexes in the working directory) or remote (requires existing server) -->
+ <property name="mode" value="${elasticsearch.mode}"/>
+ <!-- http interface to ES server -->
+ <property name="clusterHost" value="${elasticsearch.server.host}"/>
+ <property name="clusterPort" value="${elasticsearch.server.port}"/>
+
+ <property name="proxyUser" value="${elasticsearch.server.proxy.user}"/>
+ <property name="proxyPassword" value="${elasticsearch.server.proxy.password}"/>
+ </bean>
+
+ <util:list id="facetTermsList" value-type="java.lang.String">
+ <value>categories</value>
+ <value>manufacturer</value>
+ </util:list>
+
+ <bean id="searchDelegate" class="com.shopizer.search.services.impl.SearchDelegateImpl">
+ <property name="searchClient">
+ <ref bean="searchClient" />
+ </property>
+ </bean>
+
+ <!-- Main service -->
+ <bean id="searchService" class="com.shopizer.search.services.SearchService"></bean>
+
+
+ <!--
+ Flow definitions for indexing and searching
+ -->
+
+
+ <bean id="searchWorkflow" class="com.shopizer.search.services.workflow.SearchWorkflow">
+ <property name="searchFlow">
+ <list>
+ <bean id="search" class="com.shopizer.search.services.worker.SearchWorkerImpl"/>
+ </list>
+ </property>
+ <property name="searchKeywordWorkflow">
+ <list>
+ <bean id="searchKeyword" class="com.shopizer.search.services.worker.KeywordSearchWorkerImpl"/>
+ </list>
+ </property>
+ <property name="searchClient">
+ <ref bean="searchClient" />
+ </property>
+ </bean>
+
+ <bean id="indexWorkflow" class="com.shopizer.search.services.workflow.IndexWorkflow">
+ <property name="indexWorkflow">
+ <list>
+ <ref bean="index" />
+ <ref bean="keyword" />
+ </list>
+ </property>
+ <property name="searchClient">
+ <ref bean="searchClient" />
+ </property>
+ </bean>
+
+ <bean id="deleteWorkflow" class="com.shopizer.search.services.workflow.DeleteObjectWorkflow">
+ <property name="deleteObjectWorkflow">
+ <list>
+ <bean id="deleteObject" class="com.shopizer.search.services.worker.DeleteObjectImpl"/>
+ <ref bean="deleteKeywords" />
+ </list>
+ </property>
+ <property name="searchClient">
+ <ref bean="searchClient" />
+ </property>
+ </bean>
+
+
+ <bean id="getWorkflow" class="com.shopizer.search.services.workflow.GetWorkflow">
+ <property name="searchClient">
+ <ref bean="searchClient" />
+ </property>
+ </bean>
+
+ <bean id="deleteKeywords" class="com.shopizer.search.services.worker.DeleteKeywordsImpl">
+ <property name="indexConfigurations">
+ <list>
+ <ref bean="keywordindex_en_defaultstore" />
+ <ref bean="keywordindex_fr_defaultstore" />
+ </list>
+ </property>
+ </bean>
+
+ <bean id="index" class="com.shopizer.search.services.worker.ObjectIndexerImpl">
+ <property name="indexConfigurations">
+ <list>
+ <ref bean="productindex_en_defaultstore" />
+ <ref bean="productindex_fr_defaultstore" />
+ </list>
+ </property>
+ </bean>
+
+
+
+ <!-- The presence of those properties will allow the creation of mapping files -->
+ <bean id="productindex_en_defaultstore" class="com.shopizer.search.utils.IndexConfiguration">
+ <property name="collectionName" value="product_en_default"/>
+ <property name="indexName" value="product_en"/>
+ <property name="mappingFileName" value="search/product.json"/>
+ <!-- not necessary, only to define index and search rules -->
+ <property name="settingsFileName" value="search/settings_product.json"/>
+ </bean>
+
+ <bean id="productindex_fr_defaultstore" class="com.shopizer.search.utils.IndexConfiguration">
+ <property name="collectionName" value="product_fr_default"/>
+ <property name="indexName" value="product_fr"/>
+ <property name="mappingFileName" value="search/product_fr.json"/>
+ <!-- not necessary, only to define index and search rules -->
+ <property name="settingsFileName" value="search/settings_product_fr.json"/>
+ </bean>
+
+ <bean id="keyword" class="com.shopizer.search.services.worker.KeywordIndexerImpl">
+ <property name="indexConfigurations">
+ <list>
+ <ref bean="keywordindex_en_defaultstore" />
+ <ref bean="keywordindex_fr_defaultstore" />
+ </list>
+ </property>
+ </bean>
+
+ <bean id="keywordindex_en_defaultstore" class="com.shopizer.search.utils.CustomIndexConfiguration">
+ <property name="collectionName" value="keyword_en_default"/>
+ <property name="indexName" value="keyword_en"/>
+ <property name="createOnIndexName" value="product_en"/>
+ <property name="mappingFileName" value="search/keyword.json"/>
+ <property name="settingsFileName" value="search/settings_keyword.json"/>
+ <property name="fields">
+ <list>
+ <ref bean="field1" />
+ <ref bean="field2" />
+ </list>
+ </property>
+ <!-- NO FILTERS
+ <property name="filters">
+ <list>
+ <ref bean="filter1" />
+ </list>
+ </property>
+ -->
+ </bean>
+
+
+ <bean id="keywordindex_fr_defaultstore" class="com.shopizer.search.utils.CustomIndexConfiguration">
+ <property name="collectionName" value="keyword_fr_default"/>
+ <property name="indexName" value="keyword_fr"/>
+ <property name="createOnIndexName" value="product_fr"/>
+ <property name="mappingFileName" value="search/keyword_fr.json"/>
+ <property name="settingsFileName" value="search/settings_keyword.json"/>
+ <property name="fields">
+ <list>
+ <ref bean="field1" />
+ <ref bean="field2" />
+ </list>
+ </property>
+ <!-- NO FILTERS
+ <property name="filters">
+ <list>
+ <ref bean="filter1" />
+ </list>
+ </property>
+ -->
+ </bean>
+
+
+ <!-- supported field types List, Integer, Double, Boolean, String -->
+ <bean id="field1" class="com.shopizer.search.utils.CustomIndexFieldConfiguration">
+ <property name="fieldName" value="tags"/>
+ <property name="fieldType" value="List"/>
+ </bean>
+ <bean id="field2" class="com.shopizer.search.utils.CustomIndexFieldConfiguration">
+ <property name="fieldName" value="name"/>
+ <property name="fieldType" value="String"/>
+ </bean>
+ <!--
+ <bean id="filter1" class="com.shopizer.search.utils.CustomIndexFieldConfiguration">
+ <property name="fieldName" value="price"/>
+ <property name="fieldType" value="Double"/>
+ </bean>
+ -->
+
+</beans>
\ No newline at end of file
diff --git a/sm-core/target/classes/templates/email/email_template_checkout.ftl b/sm-core/target/classes/templates/email/email_template_checkout.ftl
new file mode 100644
index 0000000..0a17d7f
--- /dev/null
+++ b/sm-core/target/classes/templates/email/email_template_checkout.ftl
@@ -0,0 +1,417 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+<head>
+<!-- If you delete this meta tag, Earth will fall into the sun. -->
+<meta name="viewport" content="width=device-width" />
+
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+<title></title>
+
+<style type="text/css">
+
+/* -------------------------------------
+ GLOBAL
+------------------------------------- */
+* {
+ margin:0;
+ padding:0;
+}
+* { font-family: "Helvetica Neue", "Helvetica", Helvetica, Arial, sans-serif; }
+
+img {
+ max-width: 100%;
+}
+.collapse {
+ margin:0;
+ padding:0;
+}
+body {
+ -webkit-font-smoothing:antialiased;
+ -webkit-text-size-adjust:none;
+ width: 100%!important;
+ height: 100%;
+}
+
+
+/* -------------------------------------
+ ELEMENTS
+------------------------------------- */
+a { color: #2BA6CB;}
+
+.btn {
+ text-decoration:none;
+ color: #FFF;
+ background-color: #666;
+ padding:10px 16px;
+ font-weight:bold;
+ margin-right:10px;
+ text-align:center;
+ cursor:pointer;
+ display: inline-block;
+}
+
+p.callout {
+ padding:15px;
+ background-color:#ECF8FF;
+ margin-bottom: 15px;
+}
+.callout a {
+ font-weight:bold;
+ color: #2BA6CB;
+}
+
+table.social {
+/* padding:15px; */
+ background-color: #ebebeb;
+
+}
+.social .soc-btn {
+ padding: 3px 7px;
+ font-size:12px;
+ margin-bottom:10px;
+ text-decoration:none;
+ color: #FFF;font-weight:bold;
+ display:block;
+ text-align:center;
+}
+a.fb { background-color: #3B5998!important; }
+a.tw { background-color: #1daced!important; }
+a.gp { background-color: #DB4A39!important; }
+a.ms { background-color: #000!important; }
+
+.sidebar .soc-btn {
+ display:block;
+ width:100%;
+}
+
+/* -------------------------------------
+ HEADER
+------------------------------------- */
+table.head-wrap { width: 100%;}
+
+.header.container table td.logo { padding: 2px; }
+.header.container table td.label { padding: 10fpx; padding-left:0px;}
+
+
+/* -------------------------------------
+ BODY
+------------------------------------- */
+table.body-wrap { width: 100%;}
+
+
+/* -------------------------------------
+ FOOTER
+------------------------------------- */
+table.footer-wrap { width: 100%; clear:both!important;
+}
+.footer-wrap .container td.content p { border-top: 1px solid rgb(215,215,215); padding-top:15px;}
+.footer-wrap .container td.content p {
+ font-size:10px;
+ font-weight: bold;
+
+}
+
+
+/* -------------------------------------
+ TYPOGRAPHY
+------------------------------------- */
+h1,h2,h3,h4,h5,h6 {
+font-family: "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif; line-height: 1.1; margin-bottom:15px; color:#000;
+}
+h1 small, h2 small, h3 small, h4 small, h5 small, h6 small { font-size: 60%; color: #6f6f6f; line-height: 0; text-transform: none; }
+
+h1 { font-weight:200; font-size: 44px;}
+h2 { font-weight:200; font-size: 37px;}
+h3 { font-weight:500; font-size: 27px;}
+h4 { font-weight:500; font-size: 23px;}
+h5 { font-weight:900; font-size: 17px;}
+h6 { font-weight:900; font-size: 14px; text-transform: uppercase; color:#444;}
+
+.collapse { margin:0!important;}
+
+p, ul {
+ margin-bottom: 10px;
+ font-weight: normal;
+ font-size:14px;
+ line-height:1.6;
+}
+p.lead { font-size:17px; }
+p.last { margin-bottom:0px;}
+
+ul li {
+ margin-left:5px;
+ list-style-position: inside;
+}
+
+/* -------------------------------------
+ SIDEBAR
+------------------------------------- */
+ul.sidebar {
+ display:block;
+ list-style-type: none;
+}
+ul.sidebar li { display: block; margin:0;}
+ul.sidebar li a {
+ text-decoration:none;
+ color: #666;
+ padding:10px 16px;
+/* font-weight:bold; */
+ margin-right:10px;
+/* text-align:center; */
+ cursor:pointer;
+/** border-bottom: 1px solid #777777;**/
+/** border-top: 1px solid #FFFFFF;**/
+ display:block;
+ margin:0;
+}
+ul.sidebar li a.last { border-bottom-width:0px;}
+ul.sidebar li a h1,ul.sidebar li a h2,ul.sidebar li a h3,ul.sidebar li a h4,ul.sidebar li a h5,ul.sidebar li a h6,ul.sidebar li a p { margin-bottom:0!important;}
+
+
+
+/* ---------------------------------------------------
+ RESPONSIVENESS
+ Nuke it from orbit. It's the only way to be sure.
+------------------------------------------------------ */
+
+/* Set a max-width, and make it display as block so it will automatically stretch to that width, but will also shrink down on a phone or something */
+.container {
+ display:block!important;
+ max-width:600px!important;
+ margin:0 auto!important; /* makes it centered */
+ clear:both!important;
+}
+
+/* This should also be a block element, so that it will fill 100% of the .container */
+.content {
+ padding:15px;
+ max-width:600px;
+ margin:0 auto;
+ display:block;
+}
+
+/* Let's make sure tables in the content area are 100% wide */
+.content table { width: 100%; }
+
+
+/* Odds and ends */
+.column {
+ width: 300px;
+ float:left;
+}
+.column tr td { padding: 15px; }
+.column-wrap {
+ padding:0!important;
+ margin:0 auto;
+ max-width:600px!important;
+}
+.column table { width:100%;}
+.social .column {
+ width: 280px;
+ min-width: 279px;
+ float:left;
+}
+
+/* Be sure to place a .clear element after each set of columns, just to be safe */
+.clear { display: block; clear: both; }
+
+.border {border:1px solid}
+
+/* -------------------------------------------
+ PHONE
+ For clients that support media queries.
+ Nothing fancy.
+-------------------------------------------- */
+@media only screen and (max-width: 600px) {
+
+ a[class="btn"] { display:block!important; margin-bottom:10px!important; background-image:none!important; margin-right:0!important;}
+
+ div[class="column"] { width: auto!important; float:none!important;}
+
+ table.social div[class="column"] {
+ width:auto!important;
+ }
+
+}
+
+</style>
+
+</head>
+
+<body bgcolor="#FFFFFF" topmargin="0" leftmargin="0" marginheight="0" marginwidth="0">
+
+<!-- HEADER -->
+<table class="head-wrap">
+ <tr>
+ <td></td>
+ <td class="header container" >
+
+ <p>
+ <table>
+ <tr>
+ <td>
+ ${LOGOPATH}
+ </td>
+ </tr>
+ </table>
+ </p>
+
+ </td>
+ <td></td>
+ </tr>
+</table>
+<!-- /HEADER -->
+
+<!-- BODY -->
+<table class="body-wrap">
+
+ <tr>
+ <td colspan="2">
+ <div class="content">
+ <table>
+ <tr>
+ <td>
+ <h4>${LABEL_HI} ${EMAIL_CUSTOMER_FIRSTNAME} ${EMAIL_CUSTOMER_LASTNAME}<br/></h4>
+ <p class="lead">
+ ${EMAIL_ORDER_NUMBER}
+ </p>
+ <br>
+ <p>
+ ${EMAIL_ORDER_DATE}<br/>
+ ${EMAIL_ORDER_THANKS}
+ </p>
+ </td>
+ </tr>
+ </table>
+ </div><!-- /content -->
+ </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="container" bgcolor="#FFFFFF">
+
+
+ <p>
+ <h4>${EMAIL_ORDER_DETAILS_TITLE}</h4>
+ </p>
+ <p>
+ ${ORDER_PRODUCTS_DETAILS}
+ </p>
+ </td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="container" bgcolor="#FFFFFF">
+
+ <table>
+ <tr>
+ <td valign="top">
+ <ul class="sidebar">
+ <li>
+ <a>
+ <h5>${ADDRESS_BILLING_TITLE} »</h5>
+ <p>
+ ${ADDRESS_BILLING}
+ </p>
+ </a>
+ </li>
+ </ul>
+ </td>
+ <td valign="top">
+ <ul class="sidebar">
+ <li>
+ <a>
+ <h5>${ADDRESS_DELIVERY_TITLE} »</h5>
+ <p>
+ ${ADDRESS_DELIVERY}
+ </p>
+ </a>
+ </li>
+ </ul>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <ul class="sidebar">
+ <li>
+ <a>
+ <strong>${PAYMENT_METHOD_TITLE}</strong><br>
+ ${PAYMENT_METHOD_DETAILS}
+ </a>
+ </li>
+
+ </ul>
+ </td>
+ <td>
+ <ul class="sidebar">
+ <li>
+ <a>
+ <strong>${SHIPPING_METHOD_TITLE}</strong><br>
+ ${SHIPPING_METHOD_DETAILS}
+ </a>
+ </li>
+ </ul>
+ </td>
+ </tr>
+ </table>
+ <div class="clear"></div>
+
+ </td>
+ <td></td>
+ </tr>
+</table><!-- /BODY -->
+
+<table class="body-wrap">
+ <tr>
+ <td></td>
+ <td class="container" bgcolor="#FFFFFF">
+ <div class="content">
+ <!-- Callout Panel -->
+ <p class="callout">
+ ${ORDER_STATUS}
+ </p><!-- /Callout Panel -->
+ </div>
+ </td>
+ <td></td>
+ </tr>
+</table>
+
+<!-- FOOTER -->
+<table class="footer-wrap">
+ <tr>
+ <td></td>
+ <td class="container">
+
+ <!-- content -->
+ <div class="content">
+ <p>
+ <table>
+ <tr>
+ <td align="center">
+ <p>
+ ${EMAIL_DISCLAIMER}
+ </p>
+ <p>
+ ${EMAIL_SPAM_DISCLAIMER}
+ </p>
+ <p>
+ ${EMAIL_FOOTER_COPYRIGHT}
+ </p>
+ </td>
+ </tr>
+ </table>
+ </p>
+ </div><!-- /content -->
+
+ </td>
+ <td></td>
+ </tr>
+</table><!-- /FOOTER -->
+
+</body>
+</html>
+
+
+
+
diff --git a/sm-core/target/classes/templates/email/email_template_checkout_download.ftl b/sm-core/target/classes/templates/email/email_template_checkout_download.ftl
new file mode 100644
index 0000000..69de9d4
--- /dev/null
+++ b/sm-core/target/classes/templates/email/email_template_checkout_download.ftl
@@ -0,0 +1,329 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<!-- If you delete this meta tag, Half Life 3 will never be released. -->
+<meta name="viewport" content="width=device-width" />
+
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+<title></title>
+
+<style type="text/css">
+
+
+/* -------------------------------------
+ GLOBAL
+------------------------------------- */
+* {
+ margin:0;
+ padding:0;
+}
+* { font-family: "Helvetica Neue", "Helvetica", Helvetica, Arial, sans-serif; }
+
+img {
+ max-width: 100%;
+}
+.collapse {
+ margin:0;
+ padding:0;
+}
+body {
+ -webkit-font-smoothing:antialiased;
+ -webkit-text-size-adjust:none;
+ width: 100%!important;
+ height: 100%;
+}
+
+
+/* -------------------------------------
+ ELEMENTS
+------------------------------------- */
+a { color: #2BA6CB;}
+
+.btn {
+ text-decoration:none;
+ color: #FFF;
+ background-color: #666;
+ padding:10px 16px;
+ font-weight:bold;
+ margin-right:10px;
+ text-align:center;
+ cursor:pointer;
+ display: inline-block;
+}
+
+p.callout {
+ padding:15px;
+ background-color:#ECF8FF;
+ margin-bottom: 15px;
+}
+.callout a {
+ font-weight:bold;
+ color: #2BA6CB;
+}
+
+table.social {
+/* padding:15px; */
+ background-color: #ebebeb;
+
+}
+.social .soc-btn {
+ padding: 3px 7px;
+ font-size:12px;
+ margin-bottom:10px;
+ text-decoration:none;
+ color: #FFF;font-weight:bold;
+ display:block;
+ text-align:center;
+}
+a.fb { background-color: #3B5998!important; }
+a.tw { background-color: #1daced!important; }
+a.gp { background-color: #DB4A39!important; }
+a.ms { background-color: #000!important; }
+
+.sidebar .soc-btn {
+ display:block;
+ width:100%;
+}
+
+/* -------------------------------------
+ HEADER
+------------------------------------- */
+table.head-wrap { width: 100%;}
+
+.header.container table td.logo { padding: 15px; }
+.header.container table td.label { padding: 15px; padding-left:0px;}
+
+
+/* -------------------------------------
+ BODY
+------------------------------------- */
+table.body-wrap { width: 100%;}
+
+
+/* -------------------------------------
+ FOOTER
+------------------------------------- */
+table.footer-wrap { width: 100%; clear:both!important;
+}
+.footer-wrap .container td.content p { border-top: 1px solid rgb(215,215,215); padding-top:15px;}
+.footer-wrap .container td.content p {
+ font-size:10px;
+ font-weight: bold;
+
+}
+
+
+/* -------------------------------------
+ TYPOGRAPHY
+------------------------------------- */
+h1,h2,h3,h4,h5,h6 {
+font-family: "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif; line-height: 1.1; margin-bottom:15px; color:#000;
+}
+h1 small, h2 small, h3 small, h4 small, h5 small, h6 small { font-size: 60%; color: #6f6f6f; line-height: 0; text-transform: none; }
+
+h1 { font-weight:200; font-size: 44px;}
+h2 { font-weight:200; font-size: 37px;}
+h3 { font-weight:500; font-size: 27px;}
+h4 { font-weight:500; font-size: 23px;}
+h5 { font-weight:900; font-size: 17px;}
+h6 { font-weight:900; font-size: 14px; text-transform: uppercase; color:#444;}
+
+.collapse { margin:0!important;}
+
+p, ul {
+ margin-bottom: 10px;
+ font-weight: normal;
+ font-size:14px;
+ line-height:1.6;
+}
+p.lead { font-size:17px; }
+p.last { margin-bottom:0px;}
+
+ul li {
+ margin-left:5px;
+ list-style-position: inside;
+}
+
+/* -------------------------------------
+ SIDEBAR
+------------------------------------- */
+ul.sidebar {
+ background:#ebebeb;
+ display:block;
+ list-style-type: none;
+}
+ul.sidebar li { display: block; margin:0;}
+ul.sidebar li a {
+ text-decoration:none;
+ color: #666;
+ padding:10px 16px;
+/* font-weight:bold; */
+ margin-right:10px;
+/* text-align:center; */
+ cursor:pointer;
+ border-bottom: 1px solid #777777;
+ border-top: 1px solid #FFFFFF;
+ display:block;
+ margin:0;
+}
+ul.sidebar li a.last { border-bottom-width:0px;}
+ul.sidebar li a h1,ul.sidebar li a h2,ul.sidebar li a h3,ul.sidebar li a h4,ul.sidebar li a h5,ul.sidebar li a h6,ul.sidebar li a p { margin-bottom:0!important;}
+
+
+
+/* ---------------------------------------------------
+ RESPONSIVENESS
+ Nuke it from orbit. It's the only way to be sure.
+------------------------------------------------------ */
+
+/* Set a max-width, and make it display as block so it will automatically stretch to that width, but will also shrink down on a phone or something */
+.container {
+ display:block!important;
+ max-width:600px!important;
+ margin:0 auto!important; /* makes it centered */
+ clear:both!important;
+}
+
+/* This should also be a block element, so that it will fill 100% of the .container */
+.content {
+ padding:15px;
+ max-width:600px;
+ margin:0 auto;
+ display:block;
+}
+
+/* Let's make sure tables in the content area are 100% wide */
+.content table { width: 100%; }
+
+
+/* Odds and ends */
+.column {
+ width: 300px;
+ float:left;
+}
+.column tr td { padding: 15px; }
+.column-wrap {
+ padding:0!important;
+ margin:0 auto;
+ max-width:600px!important;
+}
+.column table { width:100%;}
+.social .column {
+ width: 280px;
+ min-width: 279px;
+ float:left;
+}
+
+/* Be sure to place a .clear element after each set of columns, just to be safe */
+.clear { display: block; clear: both; }
+
+
+/* -------------------------------------------
+ PHONE
+ For clients that support media queries.
+ Nothing fancy.
+-------------------------------------------- */
+@media only screen and (max-width: 600px) {
+
+ a[class="btn"] { display:block!important; margin-bottom:10px!important; background-image:none!important; margin-right:0!important;}
+
+ div[class="column"] { width: auto!important; float:none!important;}
+
+ table.social div[class="column"] {
+ width:auto!important;
+ }
+
+}
+
+</style>
+
+</head>
+<body bgcolor="#FFFFFF">
+
+<!-- HEADER -->
+<table class="head-wrap">
+ <tr>
+ <td></td>
+ <td class="header container" >
+
+ <p>
+ <table>
+ <tr>
+ <td>
+ <h3>${LOGOPATH}</h3>
+ </td>
+ </tr>
+ </table>
+ </p>
+
+ </td>
+ <td></td>
+ </tr>
+</table>
+<!-- /HEADER -->
+
+
+<!-- BODY -->
+<table class="body-wrap">
+ <tr>
+ <td></td>
+ <td class="container" bgcolor="#FFFFFF">
+
+ <div class="content">
+ <table>
+ <tr>
+ <td>
+ <h4>${LABEL_HI} ${EMAIL_CUSTOMER_FIRSTNAME} ${EMAIL_CUSTOMER_LASTNAME}<br/></h4>
+ <p class="lead">
+ ${EMAIL_ORDER_DOWNLOAD}
+ </p>
+ <!-- Callout Panel -->
+ <p class="callout">
+ ${CUSTOMER_ACCESS_LABEL} <a href="${CUSTOMER_ACCESS_URL}">${ACCESS_NOW_LABEL} »</a>
+ </p><!-- /Callout Panel -->
+
+
+ </td>
+ </tr>
+ </table>
+ </div><!-- /content -->
+
+ </td>
+ <td></td>
+ </tr>
+</table><!-- /BODY -->
+
+<!-- FOOTER -->
+<table class="footer-wrap">
+ <tr>
+ <td></td>
+ <td class="container">
+
+ <!-- content -->
+ <div class="content">
+ <p>
+ <table>
+ <tr>
+ <td align="center">
+ <p>
+ ${EMAIL_DISCLAIMER}
+ </p>
+ <p>
+ ${EMAIL_SPAM_DISCLAIMER}
+ </p>
+ <p>
+ ${EMAIL_FOOTER_COPYRIGHT}
+ </p>
+ </td>
+ </tr>
+ </table>
+ </p>
+ </div><!-- /content -->
+
+ </td>
+ <td></td>
+ </tr>
+</table><!-- /FOOTER -->
+
+</body>
+</html>
diff --git a/sm-core/target/classes/templates/email/email_template_contact.ftl b/sm-core/target/classes/templates/email/email_template_contact.ftl
new file mode 100644
index 0000000..816b793
--- /dev/null
+++ b/sm-core/target/classes/templates/email/email_template_contact.ftl
@@ -0,0 +1,333 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<!-- If you delete this meta tag, Half Life 3 will never be released. -->
+<meta name="viewport" content="width=device-width" />
+
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+<title></title>
+
+<style type="text/css">
+
+
+/* -------------------------------------
+ GLOBAL
+------------------------------------- */
+* {
+ margin:0;
+ padding:0;
+}
+* { font-family: "Helvetica Neue", "Helvetica", Helvetica, Arial, sans-serif; }
+
+img {
+ max-width: 100%;
+}
+.collapse {
+ margin:0;
+ padding:0;
+}
+body {
+ -webkit-font-smoothing:antialiased;
+ -webkit-text-size-adjust:none;
+ width: 100%!important;
+ height: 100%;
+}
+
+
+/* -------------------------------------
+ ELEMENTS
+------------------------------------- */
+a { color: #2BA6CB;}
+
+.btn {
+ text-decoration:none;
+ color: #FFF;
+ background-color: #666;
+ padding:10px 16px;
+ font-weight:bold;
+ margin-right:10px;
+ text-align:center;
+ cursor:pointer;
+ display: inline-block;
+}
+
+p.callout {
+ padding:15px;
+ background-color:#ECF8FF;
+ margin-bottom: 15px;
+}
+.callout a {
+ font-weight:bold;
+ color: #2BA6CB;
+}
+
+table.social {
+/* padding:15px; */
+ background-color: #ebebeb;
+
+}
+.social .soc-btn {
+ padding: 3px 7px;
+ font-size:12px;
+ margin-bottom:10px;
+ text-decoration:none;
+ color: #FFF;font-weight:bold;
+ display:block;
+ text-align:center;
+}
+a.fb { background-color: #3B5998!important; }
+a.tw { background-color: #1daced!important; }
+a.gp { background-color: #DB4A39!important; }
+a.ms { background-color: #000!important; }
+
+.sidebar .soc-btn {
+ display:block;
+ width:100%;
+}
+
+/* -------------------------------------
+ HEADER
+------------------------------------- */
+table.head-wrap { width: 100%;}
+
+.header.container table td.logo { padding: 15px; }
+.header.container table td.label { padding: 15px; padding-left:0px;}
+
+
+/* -------------------------------------
+ BODY
+------------------------------------- */
+table.body-wrap { width: 100%;}
+
+
+/* -------------------------------------
+ FOOTER
+------------------------------------- */
+table.footer-wrap { width: 100%; clear:both!important;
+}
+.footer-wrap .container td.content p { border-top: 1px solid rgb(215,215,215); padding-top:15px;}
+.footer-wrap .container td.content p {
+ font-size:10px;
+ font-weight: bold;
+
+}
+
+
+/* -------------------------------------
+ TYPOGRAPHY
+------------------------------------- */
+h1,h2,h3,h4,h5,h6 {
+font-family: "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif; line-height: 1.1; margin-bottom:15px; color:#000;
+}
+h1 small, h2 small, h3 small, h4 small, h5 small, h6 small { font-size: 60%; color: #6f6f6f; line-height: 0; text-transform: none; }
+
+h1 { font-weight:200; font-size: 44px;}
+h2 { font-weight:200; font-size: 37px;}
+h3 { font-weight:500; font-size: 27px;}
+h4 { font-weight:500; font-size: 23px;}
+h5 { font-weight:900; font-size: 17px;}
+h6 { font-weight:900; font-size: 14px; text-transform: uppercase; color:#444;}
+
+.collapse { margin:0!important;}
+
+p, ul {
+ margin-bottom: 10px;
+ font-weight: normal;
+ font-size:14px;
+ line-height:1.6;
+}
+p.lead { font-size:17px; }
+p.last { margin-bottom:0px;}
+
+ul li {
+ margin-left:5px;
+ list-style-position: inside;
+}
+
+/* -------------------------------------
+ SIDEBAR
+------------------------------------- */
+ul.sidebar {
+ background:#ebebeb;
+ display:block;
+ list-style-type: none;
+}
+ul.sidebar li { display: block; margin:0;}
+ul.sidebar li a {
+ text-decoration:none;
+ color: #666;
+ padding:10px 16px;
+/* font-weight:bold; */
+ margin-right:10px;
+/* text-align:center; */
+ cursor:pointer;
+ border-bottom: 1px solid #777777;
+ border-top: 1px solid #FFFFFF;
+ display:block;
+ margin:0;
+}
+ul.sidebar li a.last { border-bottom-width:0px;}
+ul.sidebar li a h1,ul.sidebar li a h2,ul.sidebar li a h3,ul.sidebar li a h4,ul.sidebar li a h5,ul.sidebar li a h6,ul.sidebar li a p { margin-bottom:0!important;}
+
+
+
+/* ---------------------------------------------------
+ RESPONSIVENESS
+ Nuke it from orbit. It's the only way to be sure.
+------------------------------------------------------ */
+
+/* Set a max-width, and make it display as block so it will automatically stretch to that width, but will also shrink down on a phone or something */
+.container {
+ display:block!important;
+ max-width:600px!important;
+ margin:0 auto!important; /* makes it centered */
+ clear:both!important;
+}
+
+/* This should also be a block element, so that it will fill 100% of the .container */
+.content {
+ padding:15px;
+ max-width:600px;
+ margin:0 auto;
+ display:block;
+}
+
+/* Let's make sure tables in the content area are 100% wide */
+.content table { width: 100%; }
+
+
+/* Odds and ends */
+.column {
+ width: 300px;
+ float:left;
+}
+.column tr td { padding: 15px; }
+.column-wrap {
+ padding:0!important;
+ margin:0 auto;
+ max-width:600px!important;
+}
+.column table { width:100%;}
+.social .column {
+ width: 280px;
+ min-width: 279px;
+ float:left;
+}
+
+/* Be sure to place a .clear element after each set of columns, just to be safe */
+.clear { display: block; clear: both; }
+
+
+/* -------------------------------------------
+ PHONE
+ For clients that support media queries.
+ Nothing fancy.
+-------------------------------------------- */
+@media only screen and (max-width: 600px) {
+
+ a[class="btn"] { display:block!important; margin-bottom:10px!important; background-image:none!important; margin-right:0!important;}
+
+ div[class="column"] { width: auto!important; float:none!important;}
+
+ table.social div[class="column"] {
+ width:auto!important;
+ }
+
+}
+
+</style>
+
+</head>
+<body bgcolor="#FFFFFF">
+
+<!-- HEADER -->
+<table class="head-wrap">
+ <tr>
+ <td></td>
+ <td class="header container" >
+
+ <p>
+ <table>
+ <tr>
+ <td>
+ <h3>${LOGOPATH}</h3>
+ </td>
+ </tr>
+ </table>
+ </p>
+
+ </td>
+ <td></td>
+ </tr>
+</table>
+<!-- /HEADER -->
+
+
+<!-- BODY -->
+<table class="body-wrap">
+ <tr>
+ <td></td>
+ <td class="container" bgcolor="#FFFFFF">
+
+ <div class="content">
+ <table>
+ <tr>
+ <td>
+ <p class="lead">
+ ${EMAIL_CUSTOMER_CONTACT}
+ </p>
+ <p>
+ ${EMAIL_CONTACT_NAME_LABEL}: ${EMAIL_CONTACT_NAME}<br />
+ ${EMAIL_CONTACT_EMAIL_LABEL}: ${EMAIL_CONTACT_EMAIL}<br />
+
+ </p>
+ <!-- Callout Panel -->
+ <p class="callout">
+ ${EMAIL_CONTACT_CONTENT}
+ </p><!-- /Callout Panel -->
+
+
+ </td>
+ </tr>
+ </table>
+ </div><!-- /content -->
+
+ </td>
+ <td></td>
+ </tr>
+</table><!-- /BODY -->
+
+<!-- FOOTER -->
+<table class="footer-wrap">
+ <tr>
+ <td></td>
+ <td class="container">
+
+ <!-- content -->
+ <div class="content">
+ <p>
+ <table>
+ <tr>
+ <td align="center">
+ <p>
+ ${EMAIL_DISCLAIMER}
+ </p>
+ <p>
+ ${EMAIL_SPAM_DISCLAIMER}
+ </p>
+ <p>
+ ${EMAIL_FOOTER_COPYRIGHT}
+ </p>
+ </td>
+ </tr>
+ </table>
+ </p>
+ </div><!-- /content -->
+
+ </td>
+ <td></td>
+ </tr>
+</table><!-- /FOOTER -->
+
+</body>
+</html>
diff --git a/sm-core/target/classes/templates/email/email_template_customer.ftl b/sm-core/target/classes/templates/email/email_template_customer.ftl
new file mode 100644
index 0000000..d87d27c
--- /dev/null
+++ b/sm-core/target/classes/templates/email/email_template_customer.ftl
@@ -0,0 +1,334 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<!-- If you delete this meta tag, Half Life 3 will never be released. -->
+<meta name="viewport" content="width=device-width" />
+
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+<title></title>
+
+<style type="text/css">
+
+
+/* -------------------------------------
+ GLOBAL
+------------------------------------- */
+* {
+ margin:0;
+ padding:0;
+}
+* { font-family: "Helvetica Neue", "Helvetica", Helvetica, Arial, sans-serif; }
+
+img {
+ max-width: 100%;
+}
+.collapse {
+ margin:0;
+ padding:0;
+}
+body {
+ -webkit-font-smoothing:antialiased;
+ -webkit-text-size-adjust:none;
+ width: 100%!important;
+ height: 100%;
+}
+
+
+/* -------------------------------------
+ ELEMENTS
+------------------------------------- */
+a { color: #2BA6CB;}
+
+.btn {
+ text-decoration:none;
+ color: #FFF;
+ background-color: #666;
+ padding:10px 16px;
+ font-weight:bold;
+ margin-right:10px;
+ text-align:center;
+ cursor:pointer;
+ display: inline-block;
+}
+
+p.callout {
+ padding:15px;
+ background-color:#ECF8FF;
+ margin-bottom: 15px;
+}
+.callout a {
+ font-weight:bold;
+ color: #2BA6CB;
+}
+
+table.social {
+/* padding:15px; */
+ background-color: #ebebeb;
+
+}
+.social .soc-btn {
+ padding: 3px 7px;
+ font-size:12px;
+ margin-bottom:10px;
+ text-decoration:none;
+ color: #FFF;font-weight:bold;
+ display:block;
+ text-align:center;
+}
+a.fb { background-color: #3B5998!important; }
+a.tw { background-color: #1daced!important; }
+a.gp { background-color: #DB4A39!important; }
+a.ms { background-color: #000!important; }
+
+.sidebar .soc-btn {
+ display:block;
+ width:100%;
+}
+
+/* -------------------------------------
+ HEADER
+------------------------------------- */
+table.head-wrap { width: 100%;}
+
+.header.container table td.logo { padding: 15px; }
+.header.container table td.label { padding: 15px; padding-left:0px;}
+
+
+/* -------------------------------------
+ BODY
+------------------------------------- */
+table.body-wrap { width: 100%;}
+
+
+/* -------------------------------------
+ FOOTER
+------------------------------------- */
+table.footer-wrap { width: 100%; clear:both!important;
+}
+.footer-wrap .container td.content p { border-top: 1px solid rgb(215,215,215); padding-top:15px;}
+.footer-wrap .container td.content p {
+ font-size:10px;
+ font-weight: bold;
+
+}
+
+
+/* -------------------------------------
+ TYPOGRAPHY
+------------------------------------- */
+h1,h2,h3,h4,h5,h6 {
+font-family: "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif; line-height: 1.1; margin-bottom:15px; color:#000;
+}
+h1 small, h2 small, h3 small, h4 small, h5 small, h6 small { font-size: 60%; color: #6f6f6f; line-height: 0; text-transform: none; }
+
+h1 { font-weight:200; font-size: 44px;}
+h2 { font-weight:200; font-size: 37px;}
+h3 { font-weight:500; font-size: 27px;}
+h4 { font-weight:500; font-size: 23px;}
+h5 { font-weight:900; font-size: 17px;}
+h6 { font-weight:900; font-size: 14px; text-transform: uppercase; color:#444;}
+
+.collapse { margin:0!important;}
+
+p, ul {
+ margin-bottom: 10px;
+ font-weight: normal;
+ font-size:14px;
+ line-height:1.6;
+}
+p.lead { font-size:17px; }
+p.last { margin-bottom:0px;}
+
+ul li {
+ margin-left:5px;
+ list-style-position: inside;
+}
+
+/* -------------------------------------
+ SIDEBAR
+------------------------------------- */
+ul.sidebar {
+ background:#ebebeb;
+ display:block;
+ list-style-type: none;
+}
+ul.sidebar li { display: block; margin:0;}
+ul.sidebar li a {
+ text-decoration:none;
+ color: #666;
+ padding:10px 16px;
+/* font-weight:bold; */
+ margin-right:10px;
+/* text-align:center; */
+ cursor:pointer;
+ border-bottom: 1px solid #777777;
+ border-top: 1px solid #FFFFFF;
+ display:block;
+ margin:0;
+}
+ul.sidebar li a.last { border-bottom-width:0px;}
+ul.sidebar li a h1,ul.sidebar li a h2,ul.sidebar li a h3,ul.sidebar li a h4,ul.sidebar li a h5,ul.sidebar li a h6,ul.sidebar li a p { margin-bottom:0!important;}
+
+
+
+/* ---------------------------------------------------
+ RESPONSIVENESS
+ Nuke it from orbit. It's the only way to be sure.
+------------------------------------------------------ */
+
+/* Set a max-width, and make it display as block so it will automatically stretch to that width, but will also shrink down on a phone or something */
+.container {
+ display:block!important;
+ max-width:600px!important;
+ margin:0 auto!important; /* makes it centered */
+ clear:both!important;
+}
+
+/* This should also be a block element, so that it will fill 100% of the .container */
+.content {
+ padding:15px;
+ max-width:600px;
+ margin:0 auto;
+ display:block;
+}
+
+/* Let's make sure tables in the content area are 100% wide */
+.content table { width: 100%; }
+
+
+/* Odds and ends */
+.column {
+ width: 300px;
+ float:left;
+}
+.column tr td { padding: 15px; }
+.column-wrap {
+ padding:0!important;
+ margin:0 auto;
+ max-width:600px!important;
+}
+.column table { width:100%;}
+.social .column {
+ width: 280px;
+ min-width: 279px;
+ float:left;
+}
+
+/* Be sure to place a .clear element after each set of columns, just to be safe */
+.clear { display: block; clear: both; }
+
+
+/* -------------------------------------------
+ PHONE
+ For clients that support media queries.
+ Nothing fancy.
+-------------------------------------------- */
+@media only screen and (max-width: 600px) {
+
+ a[class="btn"] { display:block!important; margin-bottom:10px!important; background-image:none!important; margin-right:0!important;}
+
+ div[class="column"] { width: auto!important; float:none!important;}
+
+ table.social div[class="column"] {
+ width:auto!important;
+ }
+
+}
+
+</style>
+
+</head>
+<body bgcolor="#FFFFFF">
+
+<!-- HEADER -->
+<table class="head-wrap">
+ <tr>
+ <td></td>
+ <td class="header container" >
+
+ <p>
+ <table>
+ <tr>
+ <td>
+ <h3>${LOGOPATH}</h3>
+ </td>
+ </tr>
+ </table>
+ </p>
+
+ </td>
+ <td></td>
+ </tr>
+</table>
+<!-- /HEADER -->
+
+
+<!-- BODY -->
+<table class="body-wrap">
+ <tr>
+ <td></td>
+ <td class="container" bgcolor="#FFFFFF">
+
+ <div class="content">
+ <table>
+ <tr>
+ <td>
+ <h4>${LABEL_HI} ${EMAIL_CUSTOMER_FIRSTNAME} ${EMAIL_CUSTOMER_LASTNAME}<br/></h4>
+ <p class="lead">
+ ${EMAIL_CUSTOMER_GREETING}
+ </p>
+ <p>
+ ${EMAIL_USERNAME_LABEL}: ${EMAIL_USER_NAME}<br />
+ ${EMAIL_PASSWORD_LABEL}: ${EMAIL_CUSTOMER_PASSWORD}<br />
+
+ </p>
+ <!-- Callout Panel -->
+ <p class="callout">
+ ${CUSTOMER_ACCESS_LABEL} <a href="${CUSTOMER_ACCESS_URL}">${ACCESS_NOW_LABEL} »</a>
+ </p><!-- /Callout Panel -->
+
+
+ </td>
+ </tr>
+ </table>
+ </div><!-- /content -->
+
+ </td>
+ <td></td>
+ </tr>
+</table><!-- /BODY -->
+
+<!-- FOOTER -->
+<table class="footer-wrap">
+ <tr>
+ <td></td>
+ <td class="container">
+
+ <!-- content -->
+ <div class="content">
+ <p>
+ <table>
+ <tr>
+ <td align="center">
+ <p>
+ ${EMAIL_DISCLAIMER}
+ </p>
+ <p>
+ ${EMAIL_SPAM_DISCLAIMER}
+ </p>
+ <p>
+ ${EMAIL_FOOTER_COPYRIGHT}
+ </p>
+ </td>
+ </tr>
+ </table>
+ </p>
+ </div><!-- /content -->
+
+ </td>
+ <td></td>
+ </tr>
+</table><!-- /FOOTER -->
+
+</body>
+</html>
diff --git a/sm-core/target/classes/templates/email/email_template_lowstock.ftl b/sm-core/target/classes/templates/email/email_template_lowstock.ftl
new file mode 100644
index 0000000..e0924e3
--- /dev/null
+++ b/sm-core/target/classes/templates/email/email_template_lowstock.ftl
@@ -0,0 +1,50 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+
+
+
+<style type="text/css">
+body {background-color:#ffffff; color:#000000; font-family:Verdana, Arial, Helvetica, sans-serif; text-align:center;}
+a:link {color:#0066cc;}
+a:hover {background-color:#eeeecc; color:#0066cc;}
+a:visited {color:#0066cc;}
+.holder {background-color:#f9f9f9; border:1px solid #9a9a9a; font-size:9px; text-align:left; width:550px;}
+.header {font-size:10px; padding:0px; width:550px;}
+.content {font-size:10px; padding:5px; width:550px;}
+.footer {font-size:9px; margin-top:10px; text-align:center; width:550px;}
+.disclaimer {background-color:#f9f9f9; border:1px solid #cccccc; font-size:10px; margin-top:10px; padding:5px; width:550px;}
+.disclaimer1 {color:#666666; padding:5px;}
+.disclaimer1 a:link {color:#666666;}
+.disclaimer1 a:visited {color:#666666;}
+.disclaimer2 {color:#666666; padding:5px;}
+.copyright {border-bottom:0px solid #9a9a9a; padding:5px;}
+</style>
+
+</head>
+
+<body>
+<div class="holder">
+
+
+ <!-- Content Section -->
+ <div class="content">
+ <div class="content-line">
+ ${EMAIL_STORE_NAME}<br /><br />
+ ${EMAIL_PRODUCT_TEXT}<br/>
+ </div>
+</div>
+
+</div>
+
+ <!-- Footer Section -->
+ <div class="footer">
+ <div class="copyright">${EMAIL_FOOTER_COPYRIGHT}</div>
+ </div>
+
+<div class="disclaimer">
+ <div class="disclaimer1">${EMAIL_DISCLAIMER}</div>
+ <div class="disclaimer2">${EMAIL_SPAM_DISCLAIMER}</div>
+</div>
+</body>
+</html>
diff --git a/sm-core/target/classes/templates/email/email_template_new_review.ftl b/sm-core/target/classes/templates/email/email_template_new_review.ftl
new file mode 100644
index 0000000..32ba63f
--- /dev/null
+++ b/sm-core/target/classes/templates/email/email_template_new_review.ftl
@@ -0,0 +1,52 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+
+
+<style type="text/css">
+body {background-color:#ffffff; color:#000000; font-family:Verdana, Arial, Helvetica, sans-serif; text-align:center;}
+a:link {color:#0066cc;}
+a:hover {background-color:#eeeecc; color:#0066cc;}
+a:visited {color:#0066cc;}
+.holder {background-color:#f9f9f9; border:1px solid #9a9a9a; font-size:9px; text-align:left; width:550px;}
+.header {font-size:10px; padding:0px; width:550px;}
+.content {font-size:10px; padding:5px; width:550px;}
+.footer {font-size:9px; margin-top:10px; text-align:center; width:550px;}
+.disclaimer {background-color:#f9f9f9; border:1px solid #cccccc; font-size:10px; margin-top:10px; padding:5px; width:550px;}
+.disclaimer1 {color:#666666; padding:5px;}
+.disclaimer1 a:link {color:#666666;}
+.disclaimer1 a:visited {color:#666666;}
+.disclaimer2 {color:#666666; padding:5px;}
+.copyright {border-bottom:0px solid #9a9a9a; padding:5px;}
+</style>
+
+</head>
+
+<body>
+<div class="holder">
+
+
+ <!-- Content Section -->
+ <div class="content">
+ <div class="content-line">
+ ${EMAIL_STORE_NAME}<br /><br /><br/>
+ ${EMAIL_SUBJECT} - ${EMAIL_PRODUCT_NAME}<br/>
+ ${EMAIL_CUSTOMER_REVIEW}<br/><br />
+ ${EMAIL_REVIEW_RATING}<br/><br/>
+ ${EMAIL_REVIEW_TEXT}<br/>
+ </div>
+</div>
+
+</div>
+
+ <!-- Footer Section -->
+ <div class="footer">
+ <div class="copyright">${EMAIL_FOOTER_COPYRIGHT}</div>
+ </div>
+
+<div class="disclaimer">
+ <div class="disclaimer1">${EMAIL_DISCLAIMER}</div>
+ <div class="disclaimer2">${EMAIL_SPAM_DISCLAIMER}</div>
+</div>
+</body>
+</html>
diff --git a/sm-core/target/classes/templates/email/email_template_new_store.ftl b/sm-core/target/classes/templates/email/email_template_new_store.ftl
new file mode 100644
index 0000000..c1c8f29
--- /dev/null
+++ b/sm-core/target/classes/templates/email/email_template_new_store.ftl
@@ -0,0 +1,50 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+
+
+<style type="text/css">
+body {background-color:#ffffff; color:#000000; font-family:Verdana, Arial, Helvetica, sans-serif; text-align:center;}
+a:link {color:#0066cc;}
+a:hover {background-color:#eeeecc; color:#0066cc;}
+a:visited {color:#0066cc;}
+.holder {background-color:#f9f9f9; border:1px solid #9a9a9a; font-size:9px; text-align:left; width:550px;}
+.header {font-size:10px; padding:0px; width:550px;}
+.content {font-size:10px; padding:5px; width:550px;}
+.footer {font-size:9px; margin-top:10px; text-align:center; width:550px;}
+.disclaimer {background-color:#f9f9f9; border:1px solid #cccccc; font-size:10px; margin-top:10px; padding:5px; width:550px;}
+.disclaimer1 {color:#666666; padding:5px;}
+.disclaimer1 a:link {color:#666666;}
+.disclaimer1 a:visited {color:#666666;}
+.disclaimer2 {color:#666666; padding:5px;}
+.copyright {border-bottom:0px solid #9a9a9a; padding:5px;}
+</style>
+
+</head>
+
+<body>
+<div class="holder">
+
+ <!-- Content Section -->
+ <div class="content">
+ <div class="content-line">
+ ${EMAIL_NEW_STORE_TEXT}<br /><br /><br />
+ ${EMAIL_STORE_NAME}<br /><br />
+ ${EMAIL_ADMIN_STORE_INFO_LABEL}<br/>
+ ${EMAIL_ADMIN_URL_LABEL}<br /><br />
+ </div>
+</div>
+
+</div>
+
+ <!-- Footer Section -->
+ <div class="footer">
+ <div class="copyright">${EMAIL_FOOTER_COPYRIGHT}</div>
+ </div>
+
+<div class="disclaimer">
+ <div class="disclaimer1">${EMAIL_DISCLAIMER}</div>
+ <div class="disclaimer2">${EMAIL_SPAM_DISCLAIMER}</div>
+</div>
+</body>
+</html>
diff --git a/sm-core/target/classes/templates/email/email_template_new_user.ftl b/sm-core/target/classes/templates/email/email_template_new_user.ftl
new file mode 100644
index 0000000..bda8dab
--- /dev/null
+++ b/sm-core/target/classes/templates/email/email_template_new_user.ftl
@@ -0,0 +1,52 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+
+
+<style type="text/css">
+body {background-color:#ffffff; color:#000000; font-family:Verdana, Arial, Helvetica, sans-serif; text-align:center;}
+a:link {color:#0066cc;}
+a:hover {background-color:#eeeecc; color:#0066cc;}
+a:visited {color:#0066cc;}
+.holder {background-color:#f9f9f9; border:1px solid #9a9a9a; font-size:9px; text-align:left; width:550px;}
+.header {font-size:10px; padding:0px; width:550px;}
+.content {font-size:10px; padding:5px; width:550px;}
+.footer {font-size:9px; margin-top:10px; text-align:center; width:550px;}
+.disclaimer {background-color:#f9f9f9; border:1px solid #cccccc; font-size:10px; margin-top:10px; padding:5px; width:550px;}
+.disclaimer1 {color:#666666; padding:5px;}
+.disclaimer1 a:link {color:#666666;}
+.disclaimer1 a:visited {color:#666666;}
+.disclaimer2 {color:#666666; padding:5px;}
+.copyright {border-bottom:0px solid #9a9a9a; padding:5px;}
+</style>
+
+</head>
+
+<body>
+<div class="holder">
+
+ <!-- Content Section -->
+ <div class="content">
+ <div class="content-line">
+ ${EMAIL_NEW_USER_TEXT}<br /><br />
+ ${EMAIL_STORE_NAME}<br /><br />
+ ${EMAIL_TEXT_NEW_USER_CREATED}<br/>
+ ${EMAIL_ADMIN_USERNAME_LABEL}: ${EMAIL_ADMIN_NAME}<br />
+ ${EMAIL_ADMIN_PASSWORD_LABEL}: ${EMAIL_ADMIN_PASSWORD}</br>
+ ${EMAIL_ADMIN_URL_LABEL}: ${EMAIL_ADMIN_URL}<br /><br />
+ </div>
+</div>
+
+</div>
+
+ <!-- Footer Section -->
+ <div class="footer">
+ <div class="copyright">${EMAIL_FOOTER_COPYRIGHT}</div>
+ </div>
+
+<div class="disclaimer">
+ <div class="disclaimer1">${EMAIL_DISCLAIMER}</div>
+ <div class="disclaimer2">${EMAIL_SPAM_DISCLAIMER}</div>
+</div>
+</body>
+</html>
diff --git a/sm-core/target/classes/templates/email/email_template_notification.ftl b/sm-core/target/classes/templates/email/email_template_notification.ftl
new file mode 100644
index 0000000..939f97a
--- /dev/null
+++ b/sm-core/target/classes/templates/email/email_template_notification.ftl
@@ -0,0 +1,326 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<!-- If you delete this meta tag, Half Life 3 will never be released. -->
+<meta name="viewport" content="width=device-width" />
+
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+<title></title>
+
+<style type="text/css">
+
+
+/* -------------------------------------
+ GLOBAL
+------------------------------------- */
+* {
+ margin:0;
+ padding:0;
+}
+* { font-family: "Helvetica Neue", "Helvetica", Helvetica, Arial, sans-serif; }
+
+img {
+ max-width: 100%;
+}
+.collapse {
+ margin:0;
+ padding:0;
+}
+body {
+ -webkit-font-smoothing:antialiased;
+ -webkit-text-size-adjust:none;
+ width: 100%!important;
+ height: 100%;
+}
+
+
+/* -------------------------------------
+ ELEMENTS
+------------------------------------- */
+a { color: #2BA6CB;}
+
+.btn {
+ text-decoration:none;
+ color: #FFF;
+ background-color: #666;
+ padding:10px 16px;
+ font-weight:bold;
+ margin-right:10px;
+ text-align:center;
+ cursor:pointer;
+ display: inline-block;
+}
+
+p.callout {
+ padding:15px;
+ background-color:#ECF8FF;
+ margin-bottom: 15px;
+}
+.callout a {
+ font-weight:bold;
+ color: #2BA6CB;
+}
+
+table.social {
+/* padding:15px; */
+ background-color: #ebebeb;
+
+}
+.social .soc-btn {
+ padding: 3px 7px;
+ font-size:12px;
+ margin-bottom:10px;
+ text-decoration:none;
+ color: #FFF;font-weight:bold;
+ display:block;
+ text-align:center;
+}
+a.fb { background-color: #3B5998!important; }
+a.tw { background-color: #1daced!important; }
+a.gp { background-color: #DB4A39!important; }
+a.ms { background-color: #000!important; }
+
+.sidebar .soc-btn {
+ display:block;
+ width:100%;
+}
+
+/* -------------------------------------
+ HEADER
+------------------------------------- */
+table.head-wrap { width: 100%;}
+
+.header.container table td.logo { padding: 15px; }
+.header.container table td.label { padding: 15px; padding-left:0px;}
+
+
+/* -------------------------------------
+ BODY
+------------------------------------- */
+table.body-wrap { width: 100%;}
+
+
+/* -------------------------------------
+ FOOTER
+------------------------------------- */
+table.footer-wrap { width: 100%; clear:both!important;
+}
+.footer-wrap .container td.content p { border-top: 1px solid rgb(215,215,215); padding-top:15px;}
+.footer-wrap .container td.content p {
+ font-size:10px;
+ font-weight: bold;
+
+}
+
+
+/* -------------------------------------
+ TYPOGRAPHY
+------------------------------------- */
+h1,h2,h3,h4,h5,h6 {
+font-family: "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif; line-height: 1.1; margin-bottom:15px; color:#000;
+}
+h1 small, h2 small, h3 small, h4 small, h5 small, h6 small { font-size: 60%; color: #6f6f6f; line-height: 0; text-transform: none; }
+
+h1 { font-weight:200; font-size: 44px;}
+h2 { font-weight:200; font-size: 37px;}
+h3 { font-weight:500; font-size: 27px;}
+h4 { font-weight:500; font-size: 23px;}
+h5 { font-weight:900; font-size: 17px;}
+h6 { font-weight:900; font-size: 14px; text-transform: uppercase; color:#444;}
+
+.collapse { margin:0!important;}
+
+p, ul {
+ margin-bottom: 10px;
+ font-weight: normal;
+ font-size:14px;
+ line-height:1.6;
+}
+p.lead { font-size:17px; }
+p.last { margin-bottom:0px;}
+
+ul li {
+ margin-left:5px;
+ list-style-position: inside;
+}
+
+/* -------------------------------------
+ SIDEBAR
+------------------------------------- */
+ul.sidebar {
+ background:#ebebeb;
+ display:block;
+ list-style-type: none;
+}
+ul.sidebar li { display: block; margin:0;}
+ul.sidebar li a {
+ text-decoration:none;
+ color: #666;
+ padding:10px 16px;
+/* font-weight:bold; */
+ margin-right:10px;
+/* text-align:center; */
+ cursor:pointer;
+ border-bottom: 1px solid #777777;
+ border-top: 1px solid #FFFFFF;
+ display:block;
+ margin:0;
+}
+ul.sidebar li a.last { border-bottom-width:0px;}
+ul.sidebar li a h1,ul.sidebar li a h2,ul.sidebar li a h3,ul.sidebar li a h4,ul.sidebar li a h5,ul.sidebar li a h6,ul.sidebar li a p { margin-bottom:0!important;}
+
+
+
+/* ---------------------------------------------------
+ RESPONSIVENESS
+ Nuke it from orbit. It's the only way to be sure.
+------------------------------------------------------ */
+
+/* Set a max-width, and make it display as block so it will automatically stretch to that width, but will also shrink down on a phone or something */
+.container {
+ display:block!important;
+ max-width:600px!important;
+ margin:0 auto!important; /* makes it centered */
+ clear:both!important;
+}
+
+/* This should also be a block element, so that it will fill 100% of the .container */
+.content {
+ padding:15px;
+ max-width:600px;
+ margin:0 auto;
+ display:block;
+}
+
+/* Let's make sure tables in the content area are 100% wide */
+.content table { width: 100%; }
+
+
+/* Odds and ends */
+.column {
+ width: 300px;
+ float:left;
+}
+.column tr td { padding: 15px; }
+.column-wrap {
+ padding:0!important;
+ margin:0 auto;
+ max-width:600px!important;
+}
+.column table { width:100%;}
+.social .column {
+ width: 280px;
+ min-width: 279px;
+ float:left;
+}
+
+/* Be sure to place a .clear element after each set of columns, just to be safe */
+.clear { display: block; clear: both; }
+
+
+/* -------------------------------------------
+ PHONE
+ For clients that support media queries.
+ Nothing fancy.
+-------------------------------------------- */
+@media only screen and (max-width: 600px) {
+
+ a[class="btn"] { display:block!important; margin-bottom:10px!important; background-image:none!important; margin-right:0!important;}
+
+ div[class="column"] { width: auto!important; float:none!important;}
+
+ table.social div[class="column"] {
+ width:auto!important;
+ }
+
+}
+
+</style>
+
+</head>
+<body bgcolor="#FFFFFF">
+
+<!-- HEADER -->
+<table class="head-wrap">
+ <tr>
+ <td></td>
+ <td class="header container" >
+
+ <p>
+ <table>
+ <tr>
+ <td>
+ <h3>${LOGOPATH}</h3>
+ </td>
+ </tr>
+ </table>
+ </p>
+
+ </td>
+ <td></td>
+ </tr>
+</table>
+<!-- /HEADER -->
+
+
+<!-- BODY -->
+<table class="body-wrap">
+ <tr>
+ <td></td>
+ <td class="container" bgcolor="#FFFFFF">
+
+ <div class="content">
+ <table>
+ <tr>
+ <td>
+ <p class="lead">
+ <h4>${LABEL_HI} ${EMAIL_CUSTOMER_FIRSTNAME} ${EMAIL_CUSTOMER_LASTNAME}<br/></h4>
+ </p>
+ <p>
+ ${EMAIL_NOTIFICATION_MESSAGE}<br />
+
+ </p>
+ </td>
+ </tr>
+ </table>
+ </div><!-- /content -->
+
+ </td>
+ <td></td>
+ </tr>
+</table><!-- /BODY -->
+
+<!-- FOOTER -->
+<table class="footer-wrap">
+ <tr>
+ <td></td>
+ <td class="container">
+
+ <!-- content -->
+ <div class="content">
+ <p>
+ <table>
+ <tr>
+ <td align="center">
+ <p>
+ ${EMAIL_DISCLAIMER}
+ </p>
+ <p>
+ ${EMAIL_SPAM_DISCLAIMER}
+ </p>
+ <p>
+ ${EMAIL_FOOTER_COPYRIGHT}
+ </p>
+ </td>
+ </tr>
+ </table>
+ </p>
+ </div><!-- /content -->
+
+ </td>
+ <td></td>
+ </tr>
+</table><!-- /FOOTER -->
+
+</body>
+</html>
diff --git a/sm-core/target/classes/templates/email/email_template_order_status.ftl b/sm-core/target/classes/templates/email/email_template_order_status.ftl
new file mode 100644
index 0000000..27dc2a8
--- /dev/null
+++ b/sm-core/target/classes/templates/email/email_template_order_status.ftl
@@ -0,0 +1,332 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<!-- If you delete this meta tag, Half Life 3 will never be released. -->
+<meta name="viewport" content="width=device-width" />
+
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+<title></title>
+
+<style type="text/css">
+
+
+/* -------------------------------------
+ GLOBAL
+------------------------------------- */
+* {
+ margin:0;
+ padding:0;
+}
+* { font-family: "Helvetica Neue", "Helvetica", Helvetica, Arial, sans-serif; }
+
+img {
+ max-width: 100%;
+}
+.collapse {
+ margin:0;
+ padding:0;
+}
+body {
+ -webkit-font-smoothing:antialiased;
+ -webkit-text-size-adjust:none;
+ width: 100%!important;
+ height: 100%;
+}
+
+
+/* -------------------------------------
+ ELEMENTS
+------------------------------------- */
+a { color: #2BA6CB;}
+
+.btn {
+ text-decoration:none;
+ color: #FFF;
+ background-color: #666;
+ padding:10px 16px;
+ font-weight:bold;
+ margin-right:10px;
+ text-align:center;
+ cursor:pointer;
+ display: inline-block;
+}
+
+p.callout {
+ padding:15px;
+ background-color:#ECF8FF;
+ margin-bottom: 15px;
+}
+.callout a {
+ font-weight:bold;
+ color: #2BA6CB;
+}
+
+table.social {
+/* padding:15px; */
+ background-color: #ebebeb;
+
+}
+.social .soc-btn {
+ padding: 3px 7px;
+ font-size:12px;
+ margin-bottom:10px;
+ text-decoration:none;
+ color: #FFF;font-weight:bold;
+ display:block;
+ text-align:center;
+}
+a.fb { background-color: #3B5998!important; }
+a.tw { background-color: #1daced!important; }
+a.gp { background-color: #DB4A39!important; }
+a.ms { background-color: #000!important; }
+
+.sidebar .soc-btn {
+ display:block;
+ width:100%;
+}
+
+/* -------------------------------------
+ HEADER
+------------------------------------- */
+table.head-wrap { width: 100%;}
+
+.header.container table td.logo { padding: 15px; }
+.header.container table td.label { padding: 15px; padding-left:0px;}
+
+
+/* -------------------------------------
+ BODY
+------------------------------------- */
+table.body-wrap { width: 100%;}
+
+
+/* -------------------------------------
+ FOOTER
+------------------------------------- */
+table.footer-wrap { width: 100%; clear:both!important;
+}
+.footer-wrap .container td.content p { border-top: 1px solid rgb(215,215,215); padding-top:15px;}
+.footer-wrap .container td.content p {
+ font-size:10px;
+ font-weight: bold;
+
+}
+
+
+/* -------------------------------------
+ TYPOGRAPHY
+------------------------------------- */
+h1,h2,h3,h4,h5,h6 {
+font-family: "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif; line-height: 1.1; margin-bottom:15px; color:#000;
+}
+h1 small, h2 small, h3 small, h4 small, h5 small, h6 small { font-size: 60%; color: #6f6f6f; line-height: 0; text-transform: none; }
+
+h1 { font-weight:200; font-size: 44px;}
+h2 { font-weight:200; font-size: 37px;}
+h3 { font-weight:500; font-size: 27px;}
+h4 { font-weight:500; font-size: 23px;}
+h5 { font-weight:900; font-size: 17px;}
+h6 { font-weight:900; font-size: 14px; text-transform: uppercase; color:#444;}
+
+.collapse { margin:0!important;}
+
+p, ul {
+ margin-bottom: 10px;
+ font-weight: normal;
+ font-size:14px;
+ line-height:1.6;
+}
+p.lead { font-size:17px; }
+p.last { margin-bottom:0px;}
+
+ul li {
+ margin-left:5px;
+ list-style-position: inside;
+}
+
+/* -------------------------------------
+ SIDEBAR
+------------------------------------- */
+ul.sidebar {
+ background:#ebebeb;
+ display:block;
+ list-style-type: none;
+}
+ul.sidebar li { display: block; margin:0;}
+ul.sidebar li a {
+ text-decoration:none;
+ color: #666;
+ padding:10px 16px;
+/* font-weight:bold; */
+ margin-right:10px;
+/* text-align:center; */
+ cursor:pointer;
+ border-bottom: 1px solid #777777;
+ border-top: 1px solid #FFFFFF;
+ display:block;
+ margin:0;
+}
+ul.sidebar li a.last { border-bottom-width:0px;}
+ul.sidebar li a h1,ul.sidebar li a h2,ul.sidebar li a h3,ul.sidebar li a h4,ul.sidebar li a h5,ul.sidebar li a h6,ul.sidebar li a p { margin-bottom:0!important;}
+
+
+
+/* ---------------------------------------------------
+ RESPONSIVENESS
+ Nuke it from orbit. It's the only way to be sure.
+------------------------------------------------------ */
+
+/* Set a max-width, and make it display as block so it will automatically stretch to that width, but will also shrink down on a phone or something */
+.container {
+ display:block!important;
+ max-width:600px!important;
+ margin:0 auto!important; /* makes it centered */
+ clear:both!important;
+}
+
+/* This should also be a block element, so that it will fill 100% of the .container */
+.content {
+ padding:15px;
+ max-width:600px;
+ margin:0 auto;
+ display:block;
+}
+
+/* Let's make sure tables in the content area are 100% wide */
+.content table { width: 100%; }
+
+
+/* Odds and ends */
+.column {
+ width: 300px;
+ float:left;
+}
+.column tr td { padding: 15px; }
+.column-wrap {
+ padding:0!important;
+ margin:0 auto;
+ max-width:600px!important;
+}
+.column table { width:100%;}
+.social .column {
+ width: 280px;
+ min-width: 279px;
+ float:left;
+}
+
+/* Be sure to place a .clear element after each set of columns, just to be safe */
+.clear { display: block; clear: both; }
+
+
+/* -------------------------------------------
+ PHONE
+ For clients that support media queries.
+ Nothing fancy.
+-------------------------------------------- */
+@media only screen and (max-width: 600px) {
+
+ a[class="btn"] { display:block!important; margin-bottom:10px!important; background-image:none!important; margin-right:0!important;}
+
+ div[class="column"] { width: auto!important; float:none!important;}
+
+ table.social div[class="column"] {
+ width:auto!important;
+ }
+
+}
+
+</style>
+
+</head>
+<body bgcolor="#FFFFFF">
+
+<!-- HEADER -->
+<table class="head-wrap">
+ <tr>
+ <td></td>
+ <td class="header container" >
+
+ <p>
+ <table>
+ <tr>
+ <td>
+ <h3>${LOGOPATH}</h3>
+ </td>
+ </tr>
+ </table>
+ </p>
+
+ </td>
+ <td></td>
+ </tr>
+</table>
+<!-- /HEADER -->
+
+
+<!-- BODY -->
+<table class="body-wrap">
+ <tr>
+ <td></td>
+ <td class="container" bgcolor="#FFFFFF">
+
+ <div class="content">
+ <table>
+ <tr>
+ <td>
+ <h4>${LABEL_HI} ${EMAIL_CUSTOMER_FIRSTNAME} ${EMAIL_CUSTOMER_LASTNAME}<br/></h4>
+ <p class="lead">
+ ${EMAIL_ORDER_STATUS_TEXT}
+ </p>
+ <p>
+ ${EMAIL_ORDER_STATUS}
+ </p>
+ <!-- Callout Panel -->
+ <p class="callout">
+ ${EMAIL_TEXT_STATUS_COMMENTS}
+ </p><!-- /Callout Panel -->
+
+
+ </td>
+ </tr>
+ </table>
+ </div><!-- /content -->
+
+ </td>
+ <td></td>
+ </tr>
+</table><!-- /BODY -->
+
+<!-- FOOTER -->
+<table class="footer-wrap">
+ <tr>
+ <td></td>
+ <td class="container">
+
+ <!-- content -->
+ <div class="content">
+ <p>
+ <table>
+ <tr>
+ <td align="center">
+ <p>
+ ${EMAIL_DISCLAIMER}
+ </p>
+ <p>
+ ${EMAIL_SPAM_DISCLAIMER}
+ </p>
+ <p>
+ ${EMAIL_FOOTER_COPYRIGHT}
+ </p>
+ </td>
+ </tr>
+ </table>
+ </p>
+ </div><!-- /content -->
+
+ </td>
+ <td></td>
+ </tr>
+</table><!-- /FOOTER -->
+
+</body>
+</html>
diff --git a/sm-core/target/classes/templates/email/email_template_outofstock.ftl b/sm-core/target/classes/templates/email/email_template_outofstock.ftl
new file mode 100644
index 0000000..bd9957f
--- /dev/null
+++ b/sm-core/target/classes/templates/email/email_template_outofstock.ftl
@@ -0,0 +1,49 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+
+
+<style type="text/css">
+body {background-color:#ffffff; color:#000000; font-family:Verdana, Arial, Helvetica, sans-serif; text-align:center;}
+a:link {color:#0066cc;}
+a:hover {background-color:#eeeecc; color:#0066cc;}
+a:visited {color:#0066cc;}
+.holder {background-color:#f9f9f9; border:1px solid #9a9a9a; font-size:9px; text-align:left; width:550px;}
+.header {font-size:10px; padding:0px; width:550px;}
+.content {font-size:10px; padding:5px; width:550px;}
+.footer {font-size:9px; margin-top:10px; text-align:center; width:550px;}
+.disclaimer {background-color:#f9f9f9; border:1px solid #cccccc; font-size:10px; margin-top:10px; padding:5px; width:550px;}
+.disclaimer1 {color:#666666; padding:5px;}
+.disclaimer1 a:link {color:#666666;}
+.disclaimer1 a:visited {color:#666666;}
+.disclaimer2 {color:#666666; padding:5px;}
+.copyright {border-bottom:0px solid #9a9a9a; padding:5px;}
+</style>
+
+</head>
+
+<body>
+<div class="holder">
+
+
+ <!-- Content Section -->
+ <div class="content">
+ <div class="content-line">
+ ${EMAIL_STORE_NAME}<br /><br />
+ ${EMAIL_PRODUCT_TEXT}<br/>
+ </div>
+</div>
+
+</div>
+
+ <!-- Footer Section -->
+ <div class="footer">
+ <div class="copyright">${EMAIL_FOOTER_COPYRIGHT}</div>
+ </div>
+
+<div class="disclaimer">
+ <div class="disclaimer1">${EMAIL_DISCLAIMER}</div>
+ <div class="disclaimer2">${EMAIL_SPAM_DISCLAIMER}</div>
+</div>
+</body>
+</html>
diff --git a/sm-core/target/classes/templates/email/email_template_password_reset_customer.ftl b/sm-core/target/classes/templates/email/email_template_password_reset_customer.ftl
new file mode 100644
index 0000000..467fdf0
--- /dev/null
+++ b/sm-core/target/classes/templates/email/email_template_password_reset_customer.ftl
@@ -0,0 +1,334 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<!-- If you delete this meta tag, Half Life 3 will never be released. -->
+<meta name="viewport" content="width=device-width" />
+
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+<title></title>
+
+<style type="text/css">
+
+
+/* -------------------------------------
+ GLOBAL
+------------------------------------- */
+* {
+ margin:0;
+ padding:0;
+}
+* { font-family: "Helvetica Neue", "Helvetica", Helvetica, Arial, sans-serif; }
+
+img {
+ max-width: 100%;
+}
+.collapse {
+ margin:0;
+ padding:0;
+}
+body {
+ -webkit-font-smoothing:antialiased;
+ -webkit-text-size-adjust:none;
+ width: 100%!important;
+ height: 100%;
+}
+
+
+/* -------------------------------------
+ ELEMENTS
+------------------------------------- */
+a { color: #2BA6CB;}
+
+.btn {
+ text-decoration:none;
+ color: #FFF;
+ background-color: #666;
+ padding:10px 16px;
+ font-weight:bold;
+ margin-right:10px;
+ text-align:center;
+ cursor:pointer;
+ display: inline-block;
+}
+
+p.callout {
+ padding:15px;
+ background-color:#ECF8FF;
+ margin-bottom: 15px;
+}
+.callout a {
+ font-weight:bold;
+ color: #2BA6CB;
+}
+
+table.social {
+/* padding:15px; */
+ background-color: #ebebeb;
+
+}
+.social .soc-btn {
+ padding: 3px 7px;
+ font-size:12px;
+ margin-bottom:10px;
+ text-decoration:none;
+ color: #FFF;font-weight:bold;
+ display:block;
+ text-align:center;
+}
+a.fb { background-color: #3B5998!important; }
+a.tw { background-color: #1daced!important; }
+a.gp { background-color: #DB4A39!important; }
+a.ms { background-color: #000!important; }
+
+.sidebar .soc-btn {
+ display:block;
+ width:100%;
+}
+
+/* -------------------------------------
+ HEADER
+------------------------------------- */
+table.head-wrap { width: 100%;}
+
+.header.container table td.logo { padding: 15px; }
+.header.container table td.label { padding: 15px; padding-left:0px;}
+
+
+/* -------------------------------------
+ BODY
+------------------------------------- */
+table.body-wrap { width: 100%;}
+
+
+/* -------------------------------------
+ FOOTER
+------------------------------------- */
+table.footer-wrap { width: 100%; clear:both!important;
+}
+.footer-wrap .container td.content p { border-top: 1px solid rgb(215,215,215); padding-top:15px;}
+.footer-wrap .container td.content p {
+ font-size:10px;
+ font-weight: bold;
+
+}
+
+
+/* -------------------------------------
+ TYPOGRAPHY
+------------------------------------- */
+h1,h2,h3,h4,h5,h6 {
+font-family: "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif; line-height: 1.1; margin-bottom:15px; color:#000;
+}
+h1 small, h2 small, h3 small, h4 small, h5 small, h6 small { font-size: 60%; color: #6f6f6f; line-height: 0; text-transform: none; }
+
+h1 { font-weight:200; font-size: 44px;}
+h2 { font-weight:200; font-size: 37px;}
+h3 { font-weight:500; font-size: 27px;}
+h4 { font-weight:500; font-size: 23px;}
+h5 { font-weight:900; font-size: 17px;}
+h6 { font-weight:900; font-size: 14px; text-transform: uppercase; color:#444;}
+
+.collapse { margin:0!important;}
+
+p, ul {
+ margin-bottom: 10px;
+ font-weight: normal;
+ font-size:14px;
+ line-height:1.6;
+}
+p.lead { font-size:17px; }
+p.last { margin-bottom:0px;}
+
+ul li {
+ margin-left:5px;
+ list-style-position: inside;
+}
+
+/* -------------------------------------
+ SIDEBAR
+------------------------------------- */
+ul.sidebar {
+ background:#ebebeb;
+ display:block;
+ list-style-type: none;
+}
+ul.sidebar li { display: block; margin:0;}
+ul.sidebar li a {
+ text-decoration:none;
+ color: #666;
+ padding:10px 16px;
+/* font-weight:bold; */
+ margin-right:10px;
+/* text-align:center; */
+ cursor:pointer;
+ border-bottom: 1px solid #777777;
+ border-top: 1px solid #FFFFFF;
+ display:block;
+ margin:0;
+}
+ul.sidebar li a.last { border-bottom-width:0px;}
+ul.sidebar li a h1,ul.sidebar li a h2,ul.sidebar li a h3,ul.sidebar li a h4,ul.sidebar li a h5,ul.sidebar li a h6,ul.sidebar li a p { margin-bottom:0!important;}
+
+
+
+/* ---------------------------------------------------
+ RESPONSIVENESS
+ Nuke it from orbit. It's the only way to be sure.
+------------------------------------------------------ */
+
+/* Set a max-width, and make it display as block so it will automatically stretch to that width, but will also shrink down on a phone or something */
+.container {
+ display:block!important;
+ max-width:600px!important;
+ margin:0 auto!important; /* makes it centered */
+ clear:both!important;
+}
+
+/* This should also be a block element, so that it will fill 100% of the .container */
+.content {
+ padding:15px;
+ max-width:600px;
+ margin:0 auto;
+ display:block;
+}
+
+/* Let's make sure tables in the content area are 100% wide */
+.content table { width: 100%; }
+
+
+/* Odds and ends */
+.column {
+ width: 300px;
+ float:left;
+}
+.column tr td { padding: 15px; }
+.column-wrap {
+ padding:0!important;
+ margin:0 auto;
+ max-width:600px!important;
+}
+.column table { width:100%;}
+.social .column {
+ width: 280px;
+ min-width: 279px;
+ float:left;
+}
+
+/* Be sure to place a .clear element after each set of columns, just to be safe */
+.clear { display: block; clear: both; }
+
+
+/* -------------------------------------------
+ PHONE
+ For clients that support media queries.
+ Nothing fancy.
+-------------------------------------------- */
+@media only screen and (max-width: 600px) {
+
+ a[class="btn"] { display:block!important; margin-bottom:10px!important; background-image:none!important; margin-right:0!important;}
+
+ div[class="column"] { width: auto!important; float:none!important;}
+
+ table.social div[class="column"] {
+ width:auto!important;
+ }
+
+}
+
+</style>
+
+</head>
+
+
+<body bgcolor="#FFFFFF">
+
+<!-- HEADER -->
+<table class="head-wrap">
+ <tr>
+ <td></td>
+ <td class="header container" >
+
+ <p>
+ <table>
+ <tr>
+ <td>
+ ${LOGOPATH}
+ </td>
+ </tr>
+ </table>
+ </p>
+
+ </td>
+ <td></td>
+ </tr>
+</table>
+<!-- /HEADER -->
+
+<!-- BODY -->
+<table class="body-wrap">
+ <tr>
+ <td></td>
+ <td class="container" bgcolor="#FFFFFF">
+
+ <div class="content">
+ <table>
+ <tr>
+ <td>
+ <h4>${LABEL_HI} ${EMAIL_CUSTOMER_FIRSTNAME} ${EMAIL_CUSTOMER_LASTNAME}<br/></h4>
+ <p class="lead">
+ ${EMAIL_RESET_PASSWORD_TXT}
+ </p>
+ <p>
+ ${EMAIL_PASSWORD_LABEL}: ${EMAIL_CUSTOMER_PASSWORD}<br />
+
+ </p>
+ <!-- Callout Panel -->
+ <p class="callout">
+ ${EMAIL_CONTACT_OWNER}
+ </p><!-- /Callout Panel -->
+
+
+ </td>
+ </tr>
+ </table>
+ </div><!-- /content -->
+
+ </td>
+ <td></td>
+ </tr>
+</table><!-- /BODY -->
+
+<!-- FOOTER -->
+<table class="footer-wrap">
+ <tr>
+ <td></td>
+ <td class="container">
+
+ <!-- content -->
+ <div class="content">
+ <p>
+ <table>
+ <tr>
+ <td align="center">
+ <p>
+ ${EMAIL_DISCLAIMER}
+ </p>
+ <p>
+ ${EMAIL_SPAM_DISCLAIMER}
+ </p>
+ <p>
+ ${EMAIL_FOOTER_COPYRIGHT}
+ </p>
+ </td>
+ </tr>
+ </table>
+ </p>
+ </div><!-- /content -->
+
+ </td>
+ <td></td>
+ </tr>
+</table><!-- /FOOTER -->
+
+</body>
+</html>
\ No newline at end of file
diff --git a/sm-core/target/classes/templates/email/email_template_password_reset_user.ftl b/sm-core/target/classes/templates/email/email_template_password_reset_user.ftl
new file mode 100644
index 0000000..57cfaa3
--- /dev/null
+++ b/sm-core/target/classes/templates/email/email_template_password_reset_user.ftl
@@ -0,0 +1,54 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+
+
+<style type="text/css">
+body {background-color:#ffffff; color:#000000; font-family:Verdana, Arial, Helvetica, sans-serif; text-align:center;}
+a:link {color:#0066cc;}
+a:hover {background-color:#eeeecc; color:#0066cc;}
+a:visited {color:#0066cc;}
+.holder {background-color:#f9f9f9; border:1px solid #9a9a9a; font-size:9px; text-align:left; width:550px;}
+.header {font-size:10px; padding:0px; width:550px;}
+.content {font-size:10px; padding:5px; width:550px;}
+.footer {font-size:9px; margin-top:10px; text-align:center; width:550px;}
+.disclaimer {background-color:#f9f9f9; border:1px solid #cccccc; font-size:10px; margin-top:10px; padding:5px; width:550px;}
+.disclaimer1 {color:#666666; padding:5px;}
+.disclaimer1 a:link {color:#666666;}
+.disclaimer1 a:visited {color:#666666;}
+.disclaimer2 {color:#666666; padding:5px;}
+.copyright {border-bottom:0px solid #9a9a9a; padding:5px;}
+</style>
+
+</head>
+
+<body>
+<div class="holder">
+
+ <!-- Header Section -->
+ ${LOGOPATH}
+
+
+ <!-- Content Section -->
+ <div class="content">
+ <div class="content-line">
+ ${EMAIL_STORE_NAME}<br /><br />
+ <p>${EMAIL_RESET_PASSWORD_TXT}</p><br/>
+ ${EMAIL_PASSWORD_LABEL}: ${EMAIL_USER_PASSWORD}<br /><br />
+ ${EMAIL_CONTACT_OWNER}
+ </div>
+</div>
+
+</div>
+
+ <!-- Footer Section -->
+ <div class="footer">
+ <div class="copyright">${EMAIL_FOOTER_COPYRIGHT}</div>
+ </div>
+
+<div class="disclaimer">
+ <div class="disclaimer1">${EMAIL_DISCLAIMER}</div>
+ <div class="disclaimer2">${EMAIL_SPAM_DISCLAIMER}</div>
+</div>
+</body>
+</html>
diff --git a/sm-core/target/classes/templates/email/email_template_sentinvoice.ftl b/sm-core/target/classes/templates/email/email_template_sentinvoice.ftl
new file mode 100644
index 0000000..ba563a3
--- /dev/null
+++ b/sm-core/target/classes/templates/email/email_template_sentinvoice.ftl
@@ -0,0 +1,55 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+
+
+<style type="text/css">
+body {background-color:#ffffff; color:#000000; font-family:Verdana, Arial, Helvetica, sans-serif; text-align:center;}
+a:link {color:#0066cc;}
+a:hover {background-color:#eeeecc; color:#0066cc;}
+a:visited {color:#0066cc;}
+.holder {background-color:#f9f9f9; border:1px solid #9a9a9a; font-size:9px; text-align:left; width:550px;}
+.header {font-size:10px; padding:0px; width:550px;}
+.content {font-size:10px; padding:5px; width:550px;}
+.footer {font-size:9px; margin-top:10px; text-align:center; width:550px;}
+.disclaimer {background-color:#f9f9f9; border:1px solid #cccccc; font-size:10px; margin-top:10px; padding:5px; width:550px;}
+.disclaimer1 {color:#666666; padding:5px;}
+.disclaimer1 a:link {color:#666666;}
+.disclaimer1 a:visited {color:#666666;}
+.disclaimer2 {color:#666666; padding:5px;}
+.copyright {border-bottom:0px solid #9a9a9a; padding:5px;}
+</style>
+
+</head>
+
+<body>
+<div class="holder">
+
+ <!-- Header Section -->
+ ${LOGOPATH}
+
+
+ <!-- Content Section -->
+ <div class="content">
+ <div class="content-line">
+ ${EMAIL_STORE_NAME}<br /><br />
+ ${EMAIL_GREETING} ${EMAIL_CUSTOMER_NAME}<br/><br/>
+ ${EMAIL_INVOICE_MESSAGE}<br /><br />
+ ${EMAIL_INVOICE_PAYMENT_URL}<br /><br />
+ ${EMAIL_CONTACT_OWNER}
+ </div>
+</div>
+
+</div>
+
+ <!-- Footer Section -->
+ <div class="footer">
+ <div class="copyright">${EMAIL_FOOTER_COPYRIGHT}</div>
+ </div>
+
+<div class="disclaimer">
+ <div class="disclaimer1">${EMAIL_DISCLAIMER}</div>
+ <div class="disclaimer2">${EMAIL_SPAM_DISCLAIMER}</div>
+</div>
+</body>
+</html>
diff --git a/sm-core/target/classes/templates/email/email_template_user_password_link.ftl b/sm-core/target/classes/templates/email/email_template_user_password_link.ftl
new file mode 100644
index 0000000..02cef50
--- /dev/null
+++ b/sm-core/target/classes/templates/email/email_template_user_password_link.ftl
@@ -0,0 +1,49 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+
+
+<style type="text/css">
+body {background-color:#ffffff; color:#000000; font-family:Verdana, Arial, Helvetica, sans-serif; text-align:center;}
+a:link {color:#0066cc;}
+a:hover {background-color:#eeeecc; color:#0066cc;}
+a:visited {color:#0066cc;}
+.holder {background-color:#f9f9f9; border:1px solid #9a9a9a; font-size:9px; text-align:left; width:550px;}
+.header {font-size:10px; padding:0px; width:550px;}
+.content {font-size:10px; padding:5px; width:550px;}
+.footer {font-size:9px; margin-top:10px; text-align:center; width:550px;}
+.disclaimer {background-color:#f9f9f9; border:1px solid #cccccc; font-size:10px; margin-top:10px; padding:5px; width:550px;}
+.disclaimer1 {color:#666666; padding:5px;}
+.disclaimer1 a:link {color:#666666;}
+.disclaimer1 a:visited {color:#666666;}
+.disclaimer2 {color:#666666; padding:5px;}
+.copyright {border-bottom:0px solid #9a9a9a; padding:5px;}
+</style>
+
+</head>
+
+<body>
+<div class="holder">
+
+ <!-- Content Section -->
+ <div class="content">
+ <div class="content-line">
+ ${EMAIL_PASSWORD_TEXT}<br /><br /><br />
+ ${EMAIL_PASSWORD_LINK}<br /><br />
+ <br /><br />
+ </div>
+</div>
+
+</div>
+
+ <!-- Footer Section -->
+ <div class="footer">
+ <div class="copyright">${EMAIL_FOOTER_COPYRIGHT}</div>
+ </div>
+
+<div class="disclaimer">
+ <div class="disclaimer1">${EMAIL_DISCLAIMER}</div>
+ <div class="disclaimer2">${EMAIL_SPAM_DISCLAIMER}</div>
+</div>
+</body>
+</html>
diff --git a/sm-core/target/classes/templates/invoice/Invoice.ods b/sm-core/target/classes/templates/invoice/Invoice.ods
new file mode 100644
index 0000000..f936419
Binary files /dev/null and b/sm-core/target/classes/templates/invoice/Invoice.ods differ
diff --git a/sm-core/target/classes/templates/invoice/Invoice_fr.ods b/sm-core/target/classes/templates/invoice/Invoice_fr.ods
new file mode 100644
index 0000000..6c453a5
Binary files /dev/null and b/sm-core/target/classes/templates/invoice/Invoice_fr.ods differ
diff --git a/sm-core/target/test-classes/database.properties b/sm-core/target/test-classes/database.properties
new file mode 100644
index 0000000..6b65eec
--- /dev/null
+++ b/sm-core/target/test-classes/database.properties
@@ -0,0 +1,33 @@
+##
+## db configuration for test
+##
+
+db.jdbcUrl=jdbc\:h2\:file\:./SALESMANAGER-TEST;AUTOCOMMIT=OFF;mv_store=false;INIT\=RUNSCRIPT FROM 'src/test/resources/sql/create_schema.sql'
+db.user=test
+db.password=password
+db.driverClass=org.h2.Driver
+hibernate.dialect=org.hibernate.dialect.H2Dialect
+
+#db.jdbcUrl=jdbc:mysql://localhost:3306/SALESMANAGER?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8
+#db.user=carlito
+#db.password=password
+#hibernate.hbm2ddl.auto=create
+#db.driverClass=com.mysql.jdbc.Driver
+#hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
+#db.preferredTestQuery=SELECT 1
+
+
+
+db.schema=SALESMANAGER
+hibernate.hbm2ddl.auto=create
+
+
+
+
+##
+## configuration pooling base de donn�es
+##
+db.initialPoolSize=3
+db.minPoolSize=1
+db.maxPoolSize=3
+
diff --git a/sm-core/target/test-classes/hbm2dll.properties b/sm-core/target/test-classes/hbm2dll.properties
new file mode 100644
index 0000000..13a3da4
--- /dev/null
+++ b/sm-core/target/test-classes/hbm2dll.properties
@@ -0,0 +1 @@
+hibernate.dialect=org.hibernate.dialect.Oracle10gDialect
\ No newline at end of file
sm-core/target/test-classes/log4j.properties 14(+14 -0)
diff --git a/sm-core/target/test-classes/log4j.properties b/sm-core/target/test-classes/log4j.properties
new file mode 100644
index 0000000..38d6d36
--- /dev/null
+++ b/sm-core/target/test-classes/log4j.properties
@@ -0,0 +1,14 @@
+log4j.appender.Stdout=org.apache.log4j.ConsoleAppender
+log4j.appender.Stdout.layout=org.apache.log4j.PatternLayout
+log4j.appender.Stdout.layout.ConversionPattern=[%d{ISO8601}] %-5p - %-26.26c{1} - %m\n
+
+log4j.rootLogger=WARN,Stdout
+
+# hibernate queries
+log4j.logger.org.hibernate.SQL=DEBUG
+log4j.logger.org.hibernate.type=INFO
+
+# schema initialization
+log4j.logger.org.hibernate.tool.hbm2ddl=DEBUG
+
+log4j.logger.org.springframework.transaction=DEBUG
diff --git a/sm-core/target/test-classes/spring/test-datasource.xml b/sm-core/target/test-classes/spring/test-datasource.xml
new file mode 100644
index 0000000..55dbe6a
--- /dev/null
+++ b/sm-core/target/test-classes/spring/test-datasource.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
+ xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
+
+ <bean id="datasource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
+ <property name="driverClassName" value="${db.driverClass}" />
+ <property name="url" value="${db.jdbcUrl}" />
+ <property name="username" value="${db.user}" />
+ <property name="password" value="${db.password}" />
+ </bean>
+
+</beans>
diff --git a/sm-core/target/test-classes/spring/test-shopizer-context.xml b/sm-core/target/test-classes/spring/test-shopizer-context.xml
new file mode 100644
index 0000000..a5e84d6
--- /dev/null
+++ b/sm-core/target/test-classes/spring/test-shopizer-context.xml
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans:beans xmlns:beans="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns="http://www.springframework.org/schema/data/jpa"
+ xmlns:util="http://www.springframework.org/schema/util"
+ xmlns:context="http://www.springframework.org/schema/context"
+ xmlns:aop="http://www.springframework.org/schema/aop"
+ xmlns:tx="http://www.springframework.org/schema/tx"
+ xsi:schemaLocation="http://www.springframework.org/schema/beans
+ http://www.springframework.org/schema/beans/spring-beans.xsd
+ http://www.springframework.org/schema/tx
+ http://www.springframework.org/schema/tx/spring-tx.xsd
+ http://www.springframework.org/schema/aop
+ http://www.springframework.org/schema/aop/spring-aop.xsd
+ http://www.springframework.org/schema/util
+ http://www.springframework.org/schema/util/spring-util.xsd
+ http://www.springframework.org/schema/context
+ http://www.springframework.org/schema/context/spring-context.xsd
+ http://www.springframework.org/schema/data/jpa
+ http://www.springframework.org/schema/data/jpa/spring-jpa.xsd">
+
+
+
+ <beans:import resource="classpath:/spring/shopizer-context.xml" />
+
+
+ <beans:bean id="datasource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
+ <beans:property name="driverClassName" value="${db.driverClass}" />
+ <beans:property name="url" value="${db.jdbcUrl}" />
+ <beans:property name="username" value="${db.user}" />
+ <beans:property name="password" value="${db.password}" />
+ </beans:bean>
+
+
+ <context:component-scan base-package="com.salesmanager.test" />
+
+ <!-- For testing utility classes -->
+ <util:properties id="shopizer-properties">
+ <beans:prop key="MULTIPLE_PRICE_AVAILABILITY">false</beans:prop>
+ <beans:prop key="INDEX_PRODUCTS">false</beans:prop>
+
+ <beans:prop key="SHOP_SCHEME">http</beans:prop>
+ <beans:prop key="CONTEXT_PATH">sm-shop</beans:prop>
+ <!-- Images -->
+ <beans:prop key="PRODUCT_IMAGE_WIDTH_SIZE">350</beans:prop>
+ <beans:prop key="PRODUCT_IMAGE_HEIGHT_SIZE">375</beans:prop>
+ <beans:prop key="CROP_UPLOADED_IMAGES">false</beans:prop>
+
+ <!-- upload image validations -->
+ <beans:prop key="PRODUCT_IMAGE_MAX_HEIGHT_SIZE">2000</beans:prop>
+ <beans:prop key="PRODUCT_IMAGE_MAX_WIDTH_SIZE">4000</beans:prop>
+ <beans:prop key="PRODUCT_IMAGE_MAX_SIZE">9000000</beans:prop>
+ <beans:prop key="IMAGE_FORMATS">jpg|png|gif</beans:prop>
+
+ <beans:prop key="POPULATE_TEST_DATA">true</beans:prop>
+
+ </util:properties>
+
+</beans:beans>
diff --git a/sm-core/target/test-classes/sql/create_schema.sql b/sm-core/target/test-classes/sql/create_schema.sql
new file mode 100644
index 0000000..a450d11
--- /dev/null
+++ b/sm-core/target/test-classes/sql/create_schema.sql
@@ -0,0 +1 @@
+create schema IF NOT EXISTS SALESMANAGER;
\ No newline at end of file
sm-core-model/.classpath 27(+27 -0)
diff --git a/sm-core-model/.classpath b/sm-core-model/.classpath
new file mode 100644
index 0000000..6cd5836
--- /dev/null
+++ b/sm-core-model/.classpath
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" output="target/classes" path="src/main/java">
+ <attributes>
+ <attribute name="optional" value="true"/>
+ <attribute name="maven.pomderived" value="true"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="src" output="target/test-classes" path="src/test/java">
+ <attributes>
+ <attribute name="optional" value="true"/>
+ <attribute name="maven.pomderived" value="true"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
+ <attributes>
+ <attribute name="maven.pomderived" value="true"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
+ <attributes>
+ <attribute name="maven.pomderived" value="true"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
+ <classpathentry kind="output" path="target/classes"/>
+</classpath>
sm-core-model/.project 36(+36 -0)
diff --git a/sm-core-model/.project b/sm-core-model/.project
new file mode 100644
index 0000000..bc8bb2b
--- /dev/null
+++ b/sm-core-model/.project
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>sm-core-model</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.wst.common.project.facet.core.builder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.wst.validation.validationbuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.m2e.core.maven2Builder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
+ <nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.m2e.core.maven2Nature</nature>
+ <nature>org.eclipse.wst.common.project.facet.core.nature</nature>
+ </natures>
+</projectDescription>
diff --git a/sm-core-model/.settings/org.eclipse.core.resources.prefs b/sm-core-model/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..4c28b1a
--- /dev/null
+++ b/sm-core-model/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,4 @@
+eclipse.preferences.version=1
+encoding//src/main/java=UTF-8
+encoding//src/test/java=UTF-8
+encoding/<project>=UTF-8
diff --git a/sm-core-model/.settings/org.eclipse.jdt.core.prefs b/sm-core-model/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..1ab2bb5
--- /dev/null
+++ b/sm-core-model/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,8 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/sm-core-model/.settings/org.eclipse.m2e.core.prefs b/sm-core-model/.settings/org.eclipse.m2e.core.prefs
new file mode 100644
index 0000000..14b697b
--- /dev/null
+++ b/sm-core-model/.settings/org.eclipse.m2e.core.prefs
@@ -0,0 +1,4 @@
+activeProfiles=
+eclipse.preferences.version=1
+resolveWorkspaceProjects=true
+version=1
diff --git a/sm-core-model/.settings/org.eclipse.wst.common.component b/sm-core-model/.settings/org.eclipse.wst.common.component
new file mode 100644
index 0000000..2d1ee8b
--- /dev/null
+++ b/sm-core-model/.settings/org.eclipse.wst.common.component
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
+ <wb-module deploy-name="sm-core-model">
+ <wb-resource deploy-path="/" source-path="/connectorModule" tag="defaultRootSource"/>
+ <wb-resource deploy-path="/" source-path="/src/main/java"/>
+ <wb-resource deploy-path="/" source-path="/src/test/java"/>
+ <property name="java-output-path" value="/sm-core-model/target/classes"/>
+ </wb-module>
+</project-modules>
diff --git a/sm-core-model/.settings/org.eclipse.wst.common.project.facet.core.xml b/sm-core-model/.settings/org.eclipse.wst.common.project.facet.core.xml
new file mode 100644
index 0000000..704e970
--- /dev/null
+++ b/sm-core-model/.settings/org.eclipse.wst.common.project.facet.core.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<faceted-project>
+ <installed facet="java" version="1.8"/>
+ <installed facet="jst.connector" version="1.6"/>
+</faceted-project>
diff --git a/sm-core-model/connectorModule/META-INF/MANIFEST.MF b/sm-core-model/connectorModule/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..5e94951
--- /dev/null
+++ b/sm-core-model/connectorModule/META-INF/MANIFEST.MF
@@ -0,0 +1,3 @@
+Manifest-Version: 1.0
+Class-Path:
+
sm-core-model/pom.xml 547(+50 -497)
diff --git a/sm-core-model/pom.xml b/sm-core-model/pom.xml
old mode 100755
new mode 100644
index 96e609d..300b417
--- a/sm-core-model/pom.xml
+++ b/sm-core-model/pom.xml
@@ -7,9 +7,10 @@
<parent>
<groupId>com.shopizer</groupId>
<artifactId>shopizer</artifactId>
- <version>2.0.3-SNAPSHOT</version>
+ <version>2.5.0-SNAPSHOT</version>
</parent>
+
<artifactId>sm-core-model</artifactId>
<packaging>jar</packaging>
@@ -17,526 +18,78 @@
<url>http://www.shopizer.com</url>
<properties>
-
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-
- <jackson-version>1.9.13</jackson-version>
- <axis-version>1.4</axis-version>
- <jaxws.api.version>2.1</jaxws.api.version>
- <jaxws.version>2.1.4</jaxws.version>
- <jsr181.version>1.0-MR1</jsr181.version>
- <jsr250.version>1.0</jsr250.version>
- <org.elasticsearch-version>0.90.2</org.elasticsearch-version>
- <jasperreports-version>3.7.4</jasperreports-version>
-
- <freemarker.version>2.3.19</freemarker.version>
- <org.slf4j-version>1.6.6</org.slf4j-version>
- <hibernate.ehcache.version>3.5.1-Final</hibernate.ehcache.version>
- <sm-core.hibernate-entitymanager-version>4.1.2</sm-core.hibernate-entitymanager-version>
- <sm-core.hibernate-jpamodelgen.version>4.3.0.Final</sm-core.hibernate-jpamodelgen.version>
- <sm-core.aspectj.version>1.5.4</sm-core.aspectj.version>
- <sm-core.mysql-connector-java>5.1.31</sm-core.mysql-connector-java>
- <sm-core.junit.version>4.9</sm-core.junit.version>
- <sm-core.org.springframework.version>3.2.16.RELEASE</sm-core.org.springframework.version>
- <sm-core.c3p0.version>0.9.1.2</sm-core.c3p0.version>
- <sm-core.querydsl.version>3.7.1</sm-core.querydsl.version>
- <sm-core.jodatime.version>2.0</sm-core.jodatime.version>
- <sm-core.jodatime-hibernate.version>1.3</sm-core.jodatime-hibernate.version>
- <sm-core.javassist.version>3.3</sm-core.javassist.version>
-
+ <hibernate-validator-version>5.1.3.Final</hibernate-validator-version>
+ <simple-json-version>1.1.1</simple-json-version>
+ <commons-fileupload>1.3.2</commons-fileupload>
+ <commons-lang3.version>3.0</commons-lang3.version>
+ <jackson.version>2.7.4</jackson.version>
+ <commons-io.version>2.5</commons-io.version>
</properties>
<dependencies>
-
- <!-- Loggers -->
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-log4j12</artifactId>
- <version>${org.slf4j-version}</version>
- </dependency>
-
- <!-- required for query dsl 3 -->
- <dependency>
- <groupId>cglib</groupId>
- <artifactId>cglib</artifactId>
- <version>2.2</version>
- </dependency>
-
- <!-- Hibernate -->
- <dependency>
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-core</artifactId>
- <version>${sm-core.hibernate-entitymanager-version}</version>
- <exclusions>
- <exclusion>
- <artifactId>javassist</artifactId>
- <groupId>org.javassist</groupId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-entitymanager</artifactId>
- <version>${sm-core.hibernate-entitymanager-version}</version>
- <exclusions>
- <exclusion>
- <groupId>asm</groupId>
- <artifactId>asm</artifactId>
- </exclusion>
- <exclusion>
- <groupId>asm</groupId>
- <artifactId>asm-attrs</artifactId>
- </exclusion>
- <exclusion>
- <groupId>cglib</groupId>
- <artifactId>cglib</artifactId>
- </exclusion>
- <exclusion>
- <artifactId>javassist</artifactId>
- <groupId>javassist</groupId>
- </exclusion>
- <exclusion>
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-core</artifactId>
- </exclusion>
- <exclusion>
- <artifactId>javassist</artifactId>
- <groupId>org.javassist</groupId>
- </exclusion>
- </exclusions>
- </dependency>
-
- <!-- Hibernate ehcache -->
- <dependency>
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-ehcache</artifactId>
- <version>${hibernate.ehcache.version}</version>
- </dependency>
-
- <!-- Javassist -->
- <dependency>
- <groupId>javassist</groupId>
- <artifactId>javassist</artifactId>
- <version>${sm-core.javassist.version}</version>
- </dependency>
-
- <!-- QueryDsl -->
- <dependency>
- <groupId>com.mysema.querydsl</groupId>
- <artifactId>querydsl-apt</artifactId>
- <version>${sm-core.querydsl.version}</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>com.mysema.querydsl</groupId>
- <artifactId>querydsl-core</artifactId>
- <version>${sm-core.querydsl.version}</version>
- </dependency>
- <dependency>
- <groupId>com.mysema.querydsl</groupId>
- <artifactId>querydsl-jpa</artifactId>
- <version>${sm-core.querydsl.version}</version>
- </dependency>
-
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-aop</artifactId>
- <version>${sm-core.org.springframework.version}</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-aspects</artifactId>
- <version>${sm-core.org.springframework.version}</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-beans</artifactId>
- <version>${sm-core.org.springframework.version}</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-context</artifactId>
- <version>${sm-core.org.springframework.version}</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-core</artifactId>
- <version>${sm-core.org.springframework.version}</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-expression</artifactId>
- <version>${sm-core.org.springframework.version}</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-orm</artifactId>
- <version>${sm-core.org.springframework.version}</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-web</artifactId>
- <version>${sm-core.org.springframework.version}</version>
- </dependency>
+ <!-- Spring Data JPA-->
<dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-context-support</artifactId>
- <version>${sm-core.org.springframework.version}</version>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
-
- <!-- JSR 303 with Hibernate Validator -->
- <dependency>
- <groupId>javax.validation</groupId>
- <artifactId>validation-api</artifactId>
- <version>1.0.0.GA</version>
- </dependency>
- <dependency>
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-validator</artifactId>
- <version>4.3.0.Final</version>
- </dependency>
-
- <!-- AspectJ -->
- <dependency>
- <groupId>aspectj</groupId>
- <artifactId>aspectjrt</artifactId>
- <version>${sm-core.aspectj.version}</version>
- </dependency>
- <dependency>
- <groupId>aspectj</groupId>
- <artifactId>aspectjweaver</artifactId>
- <version>${sm-core.aspectj.version}</version>
- </dependency>
-
-
-
-
- <!-- Jackson JSON Processor -->
- <dependency>
- <groupId>org.codehaus.jackson</groupId>
- <artifactId>jackson-mapper-asl</artifactId>
- <version>${jackson-version}</version>
- </dependency>
- <dependency>
- <groupId>com.googlecode.json-simple</groupId>
- <artifactId>json-simple</artifactId>
- <version>1.1.1</version>
- </dependency>
-
-
-
- <dependency>
- <groupId>commons-collections</groupId>
- <artifactId>commons-collections</artifactId>
- <version>3.2.2</version>
- </dependency>
-
- <!-- Apache common -->
+
+ <!-- http://mvnrepository.com/artifact/org.hibernate/hibernate-validator -->
<dependency>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-lang3</artifactId>
- <version>3.0</version>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-validator</artifactId>
+ <version>${hibernate-validator-version}</version>
</dependency>
+ <!-- http://mvnrepository.com/artifact/com.googlecode.json-simple/json-simple -->
<dependency>
- <groupId>commons-validator</groupId>
- <artifactId>commons-validator</artifactId>
- <version>1.4.0</version>
+ <groupId>com.googlecode.json-simple</groupId>
+ <artifactId>json-simple</artifactId>
+ <version>${simple-json-version}</version>
</dependency>
-
-
+
+ <!-- http://mvnrepository.com/artifact/commons-io/commons-io -->
<dependency>
- <groupId>commons-lang</groupId>
- <artifactId>commons-lang</artifactId>
- <version>2.6</version>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ <version>${commons-io.version}</version>
</dependency>
+
-
-
-
- <!-- JodaTime -->
+ <!-- http://mvnrepository.com/artifact/commons-fileupload/commons-fileupload -->
<dependency>
- <groupId>joda-time</groupId>
- <artifactId>joda-time</artifactId>
- <version>${sm-core.jodatime.version}</version>
+ <groupId>commons-fileupload</groupId>
+ <artifactId>commons-fileupload</artifactId>
+ <version>${commons-fileupload}</version>
</dependency>
+
+ <!-- http://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-annotations -->
<dependency>
- <groupId>org.jadira.usertype</groupId>
- <artifactId>usertype.core</artifactId>
- <version>3.0.0.CR1</version>
+ <groupId>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-annotations</artifactId>
+ <version>${jackson.version}</version>
</dependency>
-
-
-
-
-
+ <!-- http://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-annotations -->
<dependency>
- <groupId>org.freemarker</groupId>
- <artifactId>freemarker</artifactId>
- <version>${freemarker.version}</version>
+ <groupId>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-annotations</artifactId>
+ <version>${jackson.version}</version>
</dependency>
-
-
-
-
- <!-- Test dependencies -->
+ <!-- http://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>${sm-core.junit.version}</version>
- <scope>test</scope>
+ <groupId>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-databind</artifactId>
+ <version>${jackson.version}</version>
</dependency>
+ <!-- http://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->
<dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-test</artifactId>
- <version>${sm-core.org.springframework.version}</version>
- <scope>test</scope>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-lang3</artifactId>
+ <version>${commons-lang3.version}</version>
</dependency>
-
- <!-- <dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc5</artifactId>
- <version>11.1.0.7.0</version> <scope>provided</scope> </dependency> -->
+
+
+
</dependencies>
-
- <repositories>
- <!-- For testing against latest Spring snapshots -->
- <repository>
- <id>org.springframework.maven.snapshot</id>
- <name>Spring Maven Snapshot Repository</name>
- <url>http://maven.springframework.org/snapshot</url>
- <releases>
- <enabled>false</enabled>
- </releases>
- <snapshots>
- <enabled>true</enabled>
- </snapshots>
- </repository>
- <!-- For developing against latest Spring milestones -->
- <repository>
- <id>org.springframework.maven.milestone</id>
- <name>Spring Maven Milestone Repository</name>
- <url>http://maven.springframework.org/milestone</url>
- <snapshots>
- <enabled>false</enabled>
- </snapshots>
- </repository>
- <repository>
- <id>org.jboss.repository.releases</id>
- <name>JBoss Maven Release Repository</name>
- <url>https://repository.jboss.org/nexus/content/repositories/releases</url>
- <snapshots>
- <enabled>false</enabled>
- </snapshots>
- </repository>
- </repositories>
-
- <build>
- <!-- Annotation processor to be generated in target/generated-sources The
- build will generate the required annotated classes in generated-sources Then
- will jump to the regular build in pluginManagement mvn clean mvn install
- ** if the install phase complains on missing Qxyz classes then mvn clean
- mvn generate-sources mvn install *** Want to have the schema generated **
- hbm2ddl not working mvn hibernate3:hbm2ddl -->
- <plugins>
- <plugin>
- <groupId>org.bsc.maven</groupId>
- <artifactId>maven-processor-plugin</artifactId>
- <executions>
- <execution>
- <goals>
- <goal>process</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>com.mysema.maven</groupId>
- <artifactId>maven-apt-plugin</artifactId>
- <executions>
- <execution>
- <goals>
- <goal>process</goal>
- </goals>
- <configuration>
- <outputDirectory>target/generated-sources/querydsl</outputDirectory>
- <processor>com.mysema.query.apt.jpa.JPAAnnotationProcessor</processor>
- </configuration>
- </execution>
- </executions>
- </plugin>
- </plugins>
- <pluginManagement>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <version>3.2</version>
- <configuration>
- <source>1.8</source>
- <target>1.8</target>
- <encoding>${project.build.sourceEncoding}</encoding>
- <compilerArgument>-proc:none</compilerArgument>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
- <version>2.12</version>
- <configuration>
- <skipTests>true</skipTests>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-war-plugin</artifactId>
- <version>2.2</version>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-install-plugin</artifactId>
- <version>2.3.1</version>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-release-plugin</artifactId>
- <version>2.2.2</version>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-assembly-plugin</artifactId>
- <version>2.3</version>
- </plugin>
- <plugin>
- <groupId>org.bsc.maven</groupId>
- <artifactId>maven-processor-plugin</artifactId>
- <version>2.0.5</version>
- <configuration>
- <outputDirectory>target/generated-sources</outputDirectory>
- <options>
- <fullyAnnotationConfigured>true</fullyAnnotationConfigured>
- <addSuppressWarningsAnnotation>true</addSuppressWarningsAnnotation>
- </options>
- </configuration>
- <executions>
- <execution>
- <id>process</id>
- <goals>
- <goal>process</goal>
- </goals>
- <phase>generate-sources</phase>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.bsc.maven</groupId>
- <artifactId>maven-processor-plugin</artifactId>
- <executions>
- <execution>
- <id>process</id>
- <goals>
- <goal>process</goal>
- </goals>
- <phase>generate-sources</phase>
- <configuration>
- <options>
- <fullyAnnotationConfigured>true</fullyAnnotationConfigured>
- <addSuppressWarningsAnnotation>true</addSuppressWarningsAnnotation>
- </options>
- </configuration>
- </execution>
- </executions>
- <dependencies>
- <dependency>
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-jpamodelgen</artifactId>
- <version>${sm-core.hibernate-jpamodelgen.version}</version>
- </dependency>
- </dependencies>
- </plugin>
- <plugin>
- <groupId>com.mysema.maven</groupId>
- <artifactId>maven-apt-plugin</artifactId>
- <version>1.0.4</version>
- <configuration>
- <outputDirectory>target/generated-sources/querydsl</outputDirectory>
- </configuration>
- <executions>
- <execution>
- <goals>
- <goal>process</goal>
- </goals>
- <configuration>
- <processor>com.mysema.query.apt.jpa.JPAAnnotationProcessor</processor>
- </configuration>
- </execution>
- </executions>
- <dependencies>
- <dependency>
- <groupId>com.mysema.querydsl</groupId>
- <artifactId>querydsl-apt</artifactId>
- <version>${sm-core.querydsl.version}</version>
- </dependency>
- </dependencies>
- </plugin>
- <!-- hbm2ddl Hibernate entities to schema -->
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>hibernate3-maven-plugin</artifactId>
- <version>2.2</version><!-- 2.2 -->
- <executions>
- <execution>
- <phase>process-classes</phase>
- <goals>
- <goal>hbm2ddl</goal>
- </goals>
- </execution>
- </executions>
- <configuration>
- <components>
- <component>
- <name>hbm2ddl</name>
- <implementation>jpaconfiguration</implementation>
- </component>
- </components>
- <componentProperties>
- <persistenceunit>sm-unit</persistenceunit>
- <!--<propertyfile>src/test/resources/hbm2ddl.properties</propertyfile> -->
- <outputfilename>schema.ddl</outputfilename>
- <drop>false</drop>
- <create>true</create>
- <export>false</export>
- <format>true</format>
- </componentProperties>
- </configuration>
- </plugin>
- <!--This plugin's configuration is used to store Eclipse m2e settings
- only. It has no influence on the Maven build itself. -->
- <plugin>
- <groupId>org.eclipse.m2e</groupId>
- <artifactId>lifecycle-mapping</artifactId>
- <version>1.0.0</version>
- <configuration>
- <lifecycleMappingMetadata>
- <pluginExecutions>
- <pluginExecution>
- <pluginExecutionFilter>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>aspectj-maven-plugin</artifactId>
- <versionRange>[1.0,)</versionRange>
- <goals>
- <goal>test-compile</goal>
- <goal>compile</goal>
- </goals>
- </pluginExecutionFilter>
- <action>
- <execute />
- </action>
- </pluginExecution>
- </pluginExecutions>
- </lifecycleMappingMetadata>
- </configuration>
- </plugin>
- </plugins>
- </pluginManagement>
- </build>
</project>
sm-core-model/pom.xml.bak 34(+34 -0)
diff --git a/sm-core-model/pom.xml.bak b/sm-core-model/pom.xml.bak
new file mode 100644
index 0000000..6b4f5ba
--- /dev/null
+++ b/sm-core-model/pom.xml.bak
@@ -0,0 +1,34 @@
+<?xml version="1.0"?>
+<project
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
+ xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>com.shopizer</groupId>
+ <artifactId>shopizer</artifactId>
+ <version>2.5.0-SNAPSHOT</version>
+ </parent>
+
+
+ <artifactId>sm-core-model</artifactId>
+ <packaging>jar</packaging>
+
+ <name>sm-core-model</name>
+ <url>http://www.shopizer.com</url>
+
+ <properties>
+
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+
+
+ </properties>
+
+ <dependencies>
+
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-data-jpa</artifactId>
+ </dependency>
+ </dependencies>
+</project>
diff --git a/sm-core-model/src/main/java/com/salesmanager/core/constants/MeasureUnit.java b/sm-core-model/src/main/java/com/salesmanager/core/constants/MeasureUnit.java
old mode 100755
new mode 100644
diff --git a/sm-core-model/src/main/java/com/salesmanager/core/constants/SchemaConstant.java b/sm-core-model/src/main/java/com/salesmanager/core/constants/SchemaConstant.java
old mode 100755
new mode 100644
diff --git a/sm-core-model/src/main/java/com/salesmanager/core/model/payments/PaymentType.java b/sm-core-model/src/main/java/com/salesmanager/core/model/payments/PaymentType.java
new file mode 100644
index 0000000..de05db8
--- /dev/null
+++ b/sm-core-model/src/main/java/com/salesmanager/core/model/payments/PaymentType.java
@@ -0,0 +1,27 @@
+package com.salesmanager.core.model.payments;
+
+public enum PaymentType {
+
+
+
+ CREDITCARD("creditcard"), FREE("creditcard"), COD("creditcard"), MONEYORDER("creditcard"), PAYPAL("creditcard"), STRIPE("creditcard"), WEPAY("creditcard");
+
+
+ private String paymentType;
+
+ PaymentType(String type) {
+ paymentType = type;
+ }
+
+ public static PaymentType fromString(String text) {
+ if (text != null) {
+ for (PaymentType b : PaymentType.values()) {
+ String payemntType = text.toUpperCase();
+ if (payemntType.equalsIgnoreCase(b.name())) {
+ return b;
+ }
+ }
+ }
+ return null;
+ }
+}
diff --git a/sm-core-model/src/main/java/com/salesmanager/core/model/shipping/ShippingMetaData.java b/sm-core-model/src/main/java/com/salesmanager/core/model/shipping/ShippingMetaData.java
new file mode 100644
index 0000000..8a7e579
--- /dev/null
+++ b/sm-core-model/src/main/java/com/salesmanager/core/model/shipping/ShippingMetaData.java
@@ -0,0 +1,53 @@
+package com.salesmanager.core.model.shipping;
+
+import java.util.List;
+
+import com.salesmanager.core.model.reference.country.Country;
+
+/**
+ * Describes how shipping is configured for a given store
+ * @author carlsamson
+ *
+ */
+public class ShippingMetaData {
+
+ private List<String> modules;
+ private List<String> preProcessors;
+ private List<String> postProcessors;
+ private List<Country> shipToCountry;
+ private boolean useDistanceModule;
+
+
+
+ public List<String> getModules() {
+ return modules;
+ }
+ public void setModules(List<String> modules) {
+ this.modules = modules;
+ }
+ public List<String> getPreProcessors() {
+ return preProcessors;
+ }
+ public void setPreProcessors(List<String> preProcessors) {
+ this.preProcessors = preProcessors;
+ }
+ public List<String> getPostProcessors() {
+ return postProcessors;
+ }
+ public void setPostProcessors(List<String> postProcessors) {
+ this.postProcessors = postProcessors;
+ }
+ public List<Country> getShipToCountry() {
+ return shipToCountry;
+ }
+ public void setShipToCountry(List<Country> shipToCountry) {
+ this.shipToCountry = shipToCountry;
+ }
+ public boolean isUseDistanceModule() {
+ return useDistanceModule;
+ }
+ public void setUseDistanceModule(boolean useDistanceModule) {
+ this.useDistanceModule = useDistanceModule;
+ }
+
+}
diff --git a/sm-core-model/src/main/java/com/salesmanager/core/model/system/optin/CustomerOptin.java b/sm-core-model/src/main/java/com/salesmanager/core/model/system/optin/CustomerOptin.java
new file mode 100644
index 0000000..698fcfe
--- /dev/null
+++ b/sm-core-model/src/main/java/com/salesmanager/core/model/system/optin/CustomerOptin.java
@@ -0,0 +1,131 @@
+package com.salesmanager.core.model.system.optin;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.EntityListeners;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
+import javax.persistence.Table;
+import javax.persistence.TableGenerator;
+import javax.persistence.Temporal;
+import javax.persistence.TemporalType;
+import javax.persistence.UniqueConstraint;
+
+import org.hibernate.annotations.Type;
+
+import com.salesmanager.core.constants.SchemaConstant;
+import com.salesmanager.core.model.common.audit.AuditListener;
+import com.salesmanager.core.model.generic.SalesManagerEntity;
+
+
+/**
+ * Optin defines optin campaigns for the system.
+ * @author carlsamson
+ *
+ */
+@Entity
+@EntityListeners(value = AuditListener.class)
+@Table(name = "CUSTMER_OPTIN", schema= SchemaConstant.SALESMANAGER_SCHEMA,uniqueConstraints=
+@UniqueConstraint(columnNames = {"EMAIL", "OPTIN_ID"}))
+public class CustomerOptin extends SalesManagerEntity<Long, CustomerOptin> implements Serializable {
+
+
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+ @Id
+ @Column(name = "CUSTOMER_OPTIN_ID")
+ @TableGenerator(name = "TABLE_GEN", table = "SM_SEQUENCER", pkColumnName = "SEQ_NAME", valueColumnName = "SEQ_COUNT", pkColumnValue = "CUST_OPT_SEQ_NEXT_VAL")
+ @GeneratedValue(strategy = GenerationType.TABLE, generator = "TABLE_GEN")
+ private Long id;
+
+ @Temporal(TemporalType.TIMESTAMP)
+ @Column (name ="OPTIN_DATE")
+ private Date optinDate;
+
+
+ @ManyToOne(targetEntity = Optin.class)
+ @JoinColumn(name="OPTIN_ID")
+ private Optin optin;
+
+ @Column(name="FIRST")
+ private String firstName;
+
+ @Column(name="LAST")
+ private String lastName;
+
+ @Column(name="EMAIL")
+ private String email;
+
+ @Column(name="VALUE")
+ @Type(type = "org.hibernate.type.StringClobType")
+ private String value;
+
+ @Override
+ public Long getId() {
+ return id;
+ }
+
+ @Override
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public Date getOptinDate() {
+ return optinDate;
+ }
+
+ public void setOptinDate(Date optinDate) {
+ this.optinDate = optinDate;
+ }
+
+ public Optin getOptin() {
+ return optin;
+ }
+
+ public void setOptin(Optin optin) {
+ this.optin = optin;
+ }
+
+ public String getFirstName() {
+ return firstName;
+ }
+
+ public void setFirstName(String firstName) {
+ this.firstName = firstName;
+ }
+
+ public String getLastName() {
+ return lastName;
+ }
+
+ public void setLastName(String lastName) {
+ this.lastName = lastName;
+ }
+
+ public String getEmail() {
+ return email;
+ }
+
+ public void setEmail(String email) {
+ this.email = email;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+
+}
diff --git a/sm-core-model/src/main/java/com/salesmanager/core/model/system/optin/Optin.java b/sm-core-model/src/main/java/com/salesmanager/core/model/system/optin/Optin.java
new file mode 100644
index 0000000..2282ac5
--- /dev/null
+++ b/sm-core-model/src/main/java/com/salesmanager/core/model/system/optin/Optin.java
@@ -0,0 +1,119 @@
+package com.salesmanager.core.model.system.optin;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.EntityListeners;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
+import javax.persistence.Table;
+import javax.persistence.TableGenerator;
+import javax.persistence.Temporal;
+import javax.persistence.TemporalType;
+import javax.persistence.UniqueConstraint;
+
+import com.salesmanager.core.constants.SchemaConstant;
+import com.salesmanager.core.model.common.audit.AuditListener;
+import com.salesmanager.core.model.generic.SalesManagerEntity;
+import com.salesmanager.core.model.merchant.MerchantStore;
+
+
+/**
+ * Optin defines optin campaigns for the system.
+ * @author carlsamson
+ *
+ */
+@Entity
+@EntityListeners(value = AuditListener.class)
+@Table(name = "OPTIN", schema= SchemaConstant.SALESMANAGER_SCHEMA,uniqueConstraints=
+@UniqueConstraint(columnNames = {"MERCHANT_ID", "CODE"}))
+public class Optin extends SalesManagerEntity<Long, Optin> implements Serializable {
+
+
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+ @Id
+ @Column(name = "OPTIN_ID")
+ @TableGenerator(name = "TABLE_GEN", table = "SM_SEQUENCER", pkColumnName = "SEQ_NAME", valueColumnName = "SEQ_COUNT", pkColumnValue = "OPTIN_SEQ_NEXT_VAL")
+ @GeneratedValue(strategy = GenerationType.TABLE, generator = "TABLE_GEN")
+ private Long id;
+
+ @Temporal(TemporalType.TIMESTAMP)
+ @Column (name ="START_DATE")
+ private Date startDate;
+
+ @Temporal(TemporalType.TIMESTAMP)
+ @Column (name ="END_DATE")
+ private Date endDate;
+
+ @ManyToOne(targetEntity = MerchantStore.class)
+ @JoinColumn(name="MERCHANT_ID")
+ private MerchantStore merchant;
+
+ @Column(name="CODE", nullable=false)
+ private String code;
+
+ @Column(name="DESCRIPTION")
+ private String description;
+
+
+ @Override
+ public Long getId() {
+ return id;
+ }
+
+ @Override
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public Date getStartDate() {
+ return startDate;
+ }
+
+ public void setStartDate(Date startDate) {
+ this.startDate = startDate;
+ }
+
+ public Date getEndDate() {
+ return endDate;
+ }
+
+ public void setEndDate(Date endDate) {
+ this.endDate = endDate;
+ }
+
+ public MerchantStore getMerchant() {
+ return merchant;
+ }
+
+ public void setMerchant(MerchantStore merchant) {
+ this.merchant = merchant;
+ }
+
+ public String getCode() {
+ return code;
+ }
+
+ public void setCode(String code) {
+ this.code = code;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+}
diff --git a/sm-core-model/src/main/java/com/salesmanager/core/utils/CloneUtils.java b/sm-core-model/src/main/java/com/salesmanager/core/utils/CloneUtils.java
old mode 100755
new mode 100644
diff --git a/sm-core-model/target/classes/META-INF/MANIFEST.MF b/sm-core-model/target/classes/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..75e8223
--- /dev/null
+++ b/sm-core-model/target/classes/META-INF/MANIFEST.MF
@@ -0,0 +1,9 @@
+Manifest-Version: 1.0
+Implementation-Title: sm-core-model
+Implementation-Version: 2.5.0-SNAPSHOT
+Built-By: c.samson
+Implementation-Vendor-Id: com.shopizer
+Build-Jdk: 1.8.0_91
+Created-By: Maven Integration for Eclipse
+Implementation-Vendor: Pivotal Software, Inc.
+
diff --git a/sm-core-model/target/classes/META-INF/maven/com.shopizer/sm-core-model/pom.properties b/sm-core-model/target/classes/META-INF/maven/com.shopizer/sm-core-model/pom.properties
new file mode 100644
index 0000000..ec67bed
--- /dev/null
+++ b/sm-core-model/target/classes/META-INF/maven/com.shopizer/sm-core-model/pom.properties
@@ -0,0 +1,7 @@
+#Generated by Maven Integration for Eclipse
+#Tue Oct 25 12:34:28 EDT 2016
+version=2.5.0-SNAPSHOT
+groupId=com.shopizer
+m2e.projectName=sm-core-model
+m2e.projectLocation=C\:\\code\\personal\\shopizer-2.5\\shopizer\\sm-core-model
+artifactId=sm-core-model
diff --git a/sm-core-model/target/classes/META-INF/maven/com.shopizer/sm-core-model/pom.xml b/sm-core-model/target/classes/META-INF/maven/com.shopizer/sm-core-model/pom.xml
new file mode 100644
index 0000000..300b417
--- /dev/null
+++ b/sm-core-model/target/classes/META-INF/maven/com.shopizer/sm-core-model/pom.xml
@@ -0,0 +1,95 @@
+<?xml version="1.0"?>
+<project
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
+ xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>com.shopizer</groupId>
+ <artifactId>shopizer</artifactId>
+ <version>2.5.0-SNAPSHOT</version>
+ </parent>
+
+
+ <artifactId>sm-core-model</artifactId>
+ <packaging>jar</packaging>
+
+ <name>sm-core-model</name>
+ <url>http://www.shopizer.com</url>
+
+ <properties>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ <hibernate-validator-version>5.1.3.Final</hibernate-validator-version>
+ <simple-json-version>1.1.1</simple-json-version>
+ <commons-fileupload>1.3.2</commons-fileupload>
+ <commons-lang3.version>3.0</commons-lang3.version>
+ <jackson.version>2.7.4</jackson.version>
+ <commons-io.version>2.5</commons-io.version>
+ </properties>
+
+ <dependencies>
+
+ <!-- Spring Data JPA-->
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-data-jpa</artifactId>
+ </dependency>
+
+ <!-- http://mvnrepository.com/artifact/org.hibernate/hibernate-validator -->
+ <dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-validator</artifactId>
+ <version>${hibernate-validator-version}</version>
+ </dependency>
+
+ <!-- http://mvnrepository.com/artifact/com.googlecode.json-simple/json-simple -->
+ <dependency>
+ <groupId>com.googlecode.json-simple</groupId>
+ <artifactId>json-simple</artifactId>
+ <version>${simple-json-version}</version>
+ </dependency>
+
+ <!-- http://mvnrepository.com/artifact/commons-io/commons-io -->
+ <dependency>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ <version>${commons-io.version}</version>
+ </dependency>
+
+
+ <!-- http://mvnrepository.com/artifact/commons-fileupload/commons-fileupload -->
+ <dependency>
+ <groupId>commons-fileupload</groupId>
+ <artifactId>commons-fileupload</artifactId>
+ <version>${commons-fileupload}</version>
+ </dependency>
+
+ <!-- http://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-annotations -->
+ <dependency>
+ <groupId>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-annotations</artifactId>
+ <version>${jackson.version}</version>
+ </dependency>
+ <!-- http://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-annotations -->
+ <dependency>
+ <groupId>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-annotations</artifactId>
+ <version>${jackson.version}</version>
+ </dependency>
+ <!-- http://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
+ <dependency>
+ <groupId>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-databind</artifactId>
+ <version>${jackson.version}</version>
+ </dependency>
+ <!-- http://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-lang3</artifactId>
+ <version>${commons-lang3.version}</version>
+ </dependency>
+
+
+
+ </dependencies>
+</project>
sm-core-modules/.classpath 26(+26 -0)
diff --git a/sm-core-modules/.classpath b/sm-core-modules/.classpath
new file mode 100644
index 0000000..01edbc4
--- /dev/null
+++ b/sm-core-modules/.classpath
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" output="target/classes" path="src/main/java">
+ <attributes>
+ <attribute name="optional" value="true"/>
+ <attribute name="maven.pomderived" value="true"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="src" output="target/test-classes" path="src/test/java">
+ <attributes>
+ <attribute name="optional" value="true"/>
+ <attribute name="maven.pomderived" value="true"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
+ <attributes>
+ <attribute name="maven.pomderived" value="true"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
+ <attributes>
+ <attribute name="maven.pomderived" value="true"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="output" path="target/classes"/>
+</classpath>
sm-core-modules/.project 36(+36 -0)
diff --git a/sm-core-modules/.project b/sm-core-modules/.project
new file mode 100644
index 0000000..8985a3f
--- /dev/null
+++ b/sm-core-modules/.project
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>sm-core-modules</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.wst.common.project.facet.core.builder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.wst.validation.validationbuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.m2e.core.maven2Builder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
+ <nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.m2e.core.maven2Nature</nature>
+ <nature>org.eclipse.wst.common.project.facet.core.nature</nature>
+ </natures>
+</projectDescription>
diff --git a/sm-core-modules/.settings/org.eclipse.core.resources.prefs b/sm-core-modules/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..4c28b1a
--- /dev/null
+++ b/sm-core-modules/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,4 @@
+eclipse.preferences.version=1
+encoding//src/main/java=UTF-8
+encoding//src/test/java=UTF-8
+encoding/<project>=UTF-8
diff --git a/sm-core-modules/.settings/org.eclipse.jdt.core.prefs b/sm-core-modules/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..d59e09c
--- /dev/null
+++ b/sm-core-modules/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,5 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/sm-core-modules/.settings/org.eclipse.m2e.core.prefs b/sm-core-modules/.settings/org.eclipse.m2e.core.prefs
new file mode 100644
index 0000000..14b697b
--- /dev/null
+++ b/sm-core-modules/.settings/org.eclipse.m2e.core.prefs
@@ -0,0 +1,4 @@
+activeProfiles=
+eclipse.preferences.version=1
+resolveWorkspaceProjects=true
+version=1
sm-core-modules/pom.xml 108(+6 -102)
diff --git a/sm-core-modules/pom.xml b/sm-core-modules/pom.xml
old mode 100755
new mode 100644
index 27b7ef2..8b4c739
--- a/sm-core-modules/pom.xml
+++ b/sm-core-modules/pom.xml
@@ -3,11 +3,11 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>com.shopizer</groupId>
- <artifactId>shopizer</artifactId>
- <version>2.0.3-SNAPSHOT</version>
- </parent>
+ <parent>
+ <groupId>com.shopizer</groupId>
+ <artifactId>shopizer</artifactId>
+ <version>2.5.0-SNAPSHOT</version>
+ </parent>
<artifactId>sm-core-modules</artifactId>
<packaging>jar</packaging>
@@ -25,107 +25,11 @@
<dependency>
<groupId>com.shopizer</groupId>
<artifactId>sm-core-model</artifactId>
- <version>${sm-core-model.version}</version>
+ <version>${shopizer.version}</version>
</dependency>
</dependencies>
- <repositories>
- <!-- For testing against latest Spring snapshots -->
- <repository>
- <id>org.springframework.maven.snapshot</id>
- <name>Spring Maven Snapshot Repository</name>
- <url>http://maven.springframework.org/snapshot</url>
- <releases><enabled>false</enabled></releases>
- <snapshots><enabled>true</enabled></snapshots>
- </repository>
- <!-- For developing against latest Spring milestones -->
- <repository>
- <id>org.springframework.maven.milestone</id>
- <name>Spring Maven Milestone Repository</name>
- <url>http://maven.springframework.org/milestone</url>
- <snapshots><enabled>false</enabled></snapshots>
- </repository>
- <repository>
- <id>org.jboss.repository.releases</id>
- <name>JBoss Maven Release Repository</name>
- <url>https://repository.jboss.org/nexus/content/repositories/releases</url>
- <snapshots><enabled>false</enabled></snapshots>
- </repository>
- </repositories>
- <build>
- <pluginManagement>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <version>3.2</version>
- <configuration>
- <source>${jdk.version}</source>
- <target>${jdk.version}</target>
- <encoding>${project.build.sourceEncoding}</encoding>
- <compilerArgument>-proc:none</compilerArgument>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
- <version>2.12</version>
- <configuration>
- <skipTests>true</skipTests>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-war-plugin</artifactId>
- <version>2.2</version>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-install-plugin</artifactId>
- <version>2.3.1</version>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-release-plugin</artifactId>
- <version>2.2.2</version>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-assembly-plugin</artifactId>
- <version>2.3</version>
- </plugin>
-
- <!--This plugin's configuration is used to store Eclipse m2e settings
- only. It has no influence on the Maven build itself. -->
- <plugin>
- <groupId>org.eclipse.m2e</groupId>
- <artifactId>lifecycle-mapping</artifactId>
- <version>1.0.0</version>
- <configuration>
- <lifecycleMappingMetadata>
- <pluginExecutions>
- <pluginExecution>
- <pluginExecutionFilter>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>aspectj-maven-plugin</artifactId>
- <versionRange>[1.0,)</versionRange>
- <goals>
- <goal>test-compile</goal>
- <goal>compile</goal>
- </goals>
- </pluginExecutionFilter>
- <action>
- <execute />
- </action>
- </pluginExecution>
- </pluginExecutions>
- </lifecycleMappingMetadata>
- </configuration>
- </plugin>
- </plugins>
- </pluginManagement>
- </build>
</project>
diff --git a/sm-core-modules/src/main/java/com/salesmanager/core/modules/integration/IntegrationException.java b/sm-core-modules/src/main/java/com/salesmanager/core/modules/integration/IntegrationException.java
old mode 100755
new mode 100644
index cc6cd9d..b660035
--- a/sm-core-modules/src/main/java/com/salesmanager/core/modules/integration/IntegrationException.java
+++ b/sm-core-modules/src/main/java/com/salesmanager/core/modules/integration/IntegrationException.java
@@ -2,7 +2,7 @@ package com.salesmanager.core.modules.integration;
import java.util.List;
-import com.salesmanager.core.business.generic.exception.ServiceException;
+import com.salesmanager.core.business.exception.ServiceException;
public class IntegrationException extends ServiceException {
diff --git a/sm-core-modules/src/main/java/com/salesmanager/core/modules/integration/payment/model/PaymentModule.java b/sm-core-modules/src/main/java/com/salesmanager/core/modules/integration/payment/model/PaymentModule.java
old mode 100755
new mode 100644
index a6790bd..cf2a5d9
--- a/sm-core-modules/src/main/java/com/salesmanager/core/modules/integration/payment/model/PaymentModule.java
+++ b/sm-core-modules/src/main/java/com/salesmanager/core/modules/integration/payment/model/PaymentModule.java
@@ -3,14 +3,14 @@ package com.salesmanager.core.modules.integration.payment.model;
import java.math.BigDecimal;
import java.util.List;
-import com.salesmanager.core.business.customer.model.Customer;
-import com.salesmanager.core.business.merchant.model.MerchantStore;
-import com.salesmanager.core.business.order.model.Order;
-import com.salesmanager.core.business.payments.model.Payment;
-import com.salesmanager.core.business.payments.model.Transaction;
-import com.salesmanager.core.business.shoppingcart.model.ShoppingCartItem;
-import com.salesmanager.core.business.system.model.IntegrationConfiguration;
-import com.salesmanager.core.business.system.model.IntegrationModule;
+import com.salesmanager.core.model.customer.Customer;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.order.Order;
+import com.salesmanager.core.model.payments.Payment;
+import com.salesmanager.core.model.payments.Transaction;
+import com.salesmanager.core.model.shoppingcart.ShoppingCartItem;
+import com.salesmanager.core.model.system.IntegrationConfiguration;
+import com.salesmanager.core.model.system.IntegrationModule;
import com.salesmanager.core.modules.integration.IntegrationException;
public interface PaymentModule {
diff --git a/sm-core-modules/src/main/java/com/salesmanager/core/modules/integration/shipping/model/CustomShippingQuoteItem.java b/sm-core-modules/src/main/java/com/salesmanager/core/modules/integration/shipping/model/CustomShippingQuoteItem.java
old mode 100755
new mode 100644
diff --git a/sm-core-modules/src/main/java/com/salesmanager/core/modules/integration/shipping/model/CustomShippingQuotesConfiguration.java b/sm-core-modules/src/main/java/com/salesmanager/core/modules/integration/shipping/model/CustomShippingQuotesConfiguration.java
old mode 100755
new mode 100644
index 93be6df..254ab3b
--- a/sm-core-modules/src/main/java/com/salesmanager/core/modules/integration/shipping/model/CustomShippingQuotesConfiguration.java
+++ b/sm-core-modules/src/main/java/com/salesmanager/core/modules/integration/shipping/model/CustomShippingQuotesConfiguration.java
@@ -4,10 +4,8 @@ import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
-import org.json.simple.JSONObject;
-
-import com.salesmanager.core.business.system.model.CustomIntegrationConfiguration;
-import com.salesmanager.core.business.system.model.IntegrationConfiguration;
+import com.salesmanager.core.model.system.CustomIntegrationConfiguration;
+import com.salesmanager.core.model.system.IntegrationConfiguration;
public class CustomShippingQuotesConfiguration extends IntegrationConfiguration implements CustomIntegrationConfiguration, Serializable {
diff --git a/sm-core-modules/src/main/java/com/salesmanager/core/modules/integration/shipping/model/CustomShippingQuotesRegion.java b/sm-core-modules/src/main/java/com/salesmanager/core/modules/integration/shipping/model/CustomShippingQuotesRegion.java
old mode 100755
new mode 100644
diff --git a/sm-core-modules/src/main/java/com/salesmanager/core/modules/integration/shipping/model/CustomShippingQuoteWeightItem.java b/sm-core-modules/src/main/java/com/salesmanager/core/modules/integration/shipping/model/CustomShippingQuoteWeightItem.java
old mode 100755
new mode 100644
diff --git a/sm-core-modules/src/main/java/com/salesmanager/core/modules/integration/shipping/model/Packaging.java b/sm-core-modules/src/main/java/com/salesmanager/core/modules/integration/shipping/model/Packaging.java
old mode 100755
new mode 100644
index fe54e27..f4629cf
--- a/sm-core-modules/src/main/java/com/salesmanager/core/modules/integration/shipping/model/Packaging.java
+++ b/sm-core-modules/src/main/java/com/salesmanager/core/modules/integration/shipping/model/Packaging.java
@@ -2,10 +2,10 @@ package com.salesmanager.core.modules.integration.shipping.model;
import java.util.List;
-import com.salesmanager.core.business.generic.exception.ServiceException;
-import com.salesmanager.core.business.merchant.model.MerchantStore;
-import com.salesmanager.core.business.shipping.model.PackageDetails;
-import com.salesmanager.core.business.shipping.model.ShippingProduct;
+import com.salesmanager.core.business.exception.ServiceException;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.shipping.PackageDetails;
+import com.salesmanager.core.model.shipping.ShippingProduct;
public interface Packaging {
diff --git a/sm-core-modules/src/main/java/com/salesmanager/core/modules/integration/shipping/model/ShippingQuoteModule.java b/sm-core-modules/src/main/java/com/salesmanager/core/modules/integration/shipping/model/ShippingQuoteModule.java
old mode 100755
new mode 100644
index f8f789b..3931e06
--- a/sm-core-modules/src/main/java/com/salesmanager/core/modules/integration/shipping/model/ShippingQuoteModule.java
+++ b/sm-core-modules/src/main/java/com/salesmanager/core/modules/integration/shipping/model/ShippingQuoteModule.java
@@ -4,16 +4,16 @@ import java.math.BigDecimal;
import java.util.List;
import java.util.Locale;
-import com.salesmanager.core.business.common.model.Delivery;
-import com.salesmanager.core.business.merchant.model.MerchantStore;
-import com.salesmanager.core.business.shipping.model.PackageDetails;
-import com.salesmanager.core.business.shipping.model.ShippingConfiguration;
-import com.salesmanager.core.business.shipping.model.ShippingOption;
-import com.salesmanager.core.business.shipping.model.ShippingOrigin;
-import com.salesmanager.core.business.shipping.model.ShippingQuote;
-import com.salesmanager.core.business.system.model.CustomIntegrationConfiguration;
-import com.salesmanager.core.business.system.model.IntegrationConfiguration;
-import com.salesmanager.core.business.system.model.IntegrationModule;
+import com.salesmanager.core.model.common.Delivery;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.shipping.PackageDetails;
+import com.salesmanager.core.model.shipping.ShippingConfiguration;
+import com.salesmanager.core.model.shipping.ShippingOption;
+import com.salesmanager.core.model.shipping.ShippingOrigin;
+import com.salesmanager.core.model.shipping.ShippingQuote;
+import com.salesmanager.core.model.system.CustomIntegrationConfiguration;
+import com.salesmanager.core.model.system.IntegrationConfiguration;
+import com.salesmanager.core.model.system.IntegrationModule;
import com.salesmanager.core.modules.integration.IntegrationException;
public interface ShippingQuoteModule {
diff --git a/sm-core-modules/src/main/java/com/salesmanager/core/modules/integration/shipping/model/ShippingQuotePrePostProcessModule.java b/sm-core-modules/src/main/java/com/salesmanager/core/modules/integration/shipping/model/ShippingQuotePrePostProcessModule.java
index 99401d1..68608f4 100644
--- a/sm-core-modules/src/main/java/com/salesmanager/core/modules/integration/shipping/model/ShippingQuotePrePostProcessModule.java
+++ b/sm-core-modules/src/main/java/com/salesmanager/core/modules/integration/shipping/model/ShippingQuotePrePostProcessModule.java
@@ -1,32 +1,40 @@
-package com.salesmanager.core.modules.integration.shipping.model;
-
-import java.math.BigDecimal;
-import java.util.List;
-import java.util.Locale;
-
-import com.salesmanager.core.business.common.model.Delivery;
-import com.salesmanager.core.business.merchant.model.MerchantStore;
-import com.salesmanager.core.business.shipping.model.PackageDetails;
-import com.salesmanager.core.business.shipping.model.ShippingConfiguration;
-import com.salesmanager.core.business.shipping.model.ShippingOrigin;
-import com.salesmanager.core.business.shipping.model.ShippingQuote;
-import com.salesmanager.core.business.system.model.IntegrationConfiguration;
-import com.salesmanager.core.business.system.model.IntegrationModule;
-import com.salesmanager.core.modules.integration.IntegrationException;
-
-public interface ShippingQuotePrePostProcessModule {
-
- String getModuleCode();
-
- public void prePostProcessShippingQuotes(
- ShippingQuote quote,
- List<PackageDetails> packages,
- BigDecimal orderTotal,
- Delivery delivery,
- ShippingOrigin origin,
- MerchantStore store,
- IntegrationConfiguration globalShippingConfiguration,
- IntegrationModule currentModule,
- ShippingConfiguration shippingConfiguration,
- List<IntegrationModule> allModules, Locale locale) throws IntegrationException;
-}
+package com.salesmanager.core.modules.integration.shipping.model;
+
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Locale;
+
+import com.salesmanager.core.model.common.Delivery;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.shipping.PackageDetails;
+import com.salesmanager.core.model.shipping.ShippingConfiguration;
+import com.salesmanager.core.model.shipping.ShippingOrigin;
+import com.salesmanager.core.model.shipping.ShippingQuote;
+import com.salesmanager.core.model.system.IntegrationConfiguration;
+import com.salesmanager.core.model.system.IntegrationModule;
+import com.salesmanager.core.modules.integration.IntegrationException;
+
+/**
+ * Invoked before or after quote processing
+ * @author carlsamson
+ *
+ */
+public interface ShippingQuotePrePostProcessModule {
+
+
+ public String getModuleCode();
+
+
+ public void prePostProcessShippingQuotes(
+ ShippingQuote quote,
+ List<PackageDetails> packages,
+ BigDecimal orderTotal,
+ Delivery delivery,
+ ShippingOrigin origin,
+ MerchantStore store,
+ IntegrationConfiguration globalShippingConfiguration,
+ IntegrationModule currentModule,
+ ShippingConfiguration shippingConfiguration,
+ List<IntegrationModule> allModules, Locale locale) throws IntegrationException;
+
+}
diff --git a/sm-core-modules/src/main/java/com/salesmanager/core/modules/utils/Encryption.java b/sm-core-modules/src/main/java/com/salesmanager/core/modules/utils/Encryption.java
old mode 100755
new mode 100644
diff --git a/sm-core-modules/src/main/java/com/salesmanager/core/modules/utils/GeoLocation.java b/sm-core-modules/src/main/java/com/salesmanager/core/modules/utils/GeoLocation.java
old mode 100755
new mode 100644
index 716330a..31b0326
--- a/sm-core-modules/src/main/java/com/salesmanager/core/modules/utils/GeoLocation.java
+++ b/sm-core-modules/src/main/java/com/salesmanager/core/modules/utils/GeoLocation.java
@@ -1,6 +1,6 @@
package com.salesmanager.core.modules.utils;
-import com.salesmanager.core.business.common.model.Address;
+import com.salesmanager.core.model.common.Address;
public interface GeoLocation {
diff --git a/sm-core-modules/target/classes/META-INF/MANIFEST.MF b/sm-core-modules/target/classes/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..a0cefeb
--- /dev/null
+++ b/sm-core-modules/target/classes/META-INF/MANIFEST.MF
@@ -0,0 +1,9 @@
+Manifest-Version: 1.0
+Implementation-Title: sm-core-modules
+Implementation-Version: 2.5.0-SNAPSHOT
+Built-By: c.samson
+Implementation-Vendor-Id: com.shopizer
+Build-Jdk: 1.8.0_91
+Created-By: Maven Integration for Eclipse
+Implementation-Vendor: Pivotal Software, Inc.
+
diff --git a/sm-core-modules/target/classes/META-INF/maven/com.shopizer/sm-core-modules/pom.properties b/sm-core-modules/target/classes/META-INF/maven/com.shopizer/sm-core-modules/pom.properties
new file mode 100644
index 0000000..0a5e152
--- /dev/null
+++ b/sm-core-modules/target/classes/META-INF/maven/com.shopizer/sm-core-modules/pom.properties
@@ -0,0 +1,7 @@
+#Generated by Maven Integration for Eclipse
+#Tue Oct 25 12:34:28 EDT 2016
+version=2.5.0-SNAPSHOT
+groupId=com.shopizer
+m2e.projectName=sm-core-modules
+m2e.projectLocation=C\:\\code\\personal\\shopizer-2.5\\shopizer\\sm-core-modules
+artifactId=sm-core-modules
diff --git a/sm-core-modules/target/classes/META-INF/maven/com.shopizer/sm-core-modules/pom.xml b/sm-core-modules/target/classes/META-INF/maven/com.shopizer/sm-core-modules/pom.xml
new file mode 100644
index 0000000..8b4c739
--- /dev/null
+++ b/sm-core-modules/target/classes/META-INF/maven/com.shopizer/sm-core-modules/pom.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0"?>
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>com.shopizer</groupId>
+ <artifactId>shopizer</artifactId>
+ <version>2.5.0-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>sm-core-modules</artifactId>
+ <packaging>jar</packaging>
+
+ <name>sm-core-modules</name>
+ <url>http://www.shopizer.com</url>
+
+ <properties>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ </properties>
+
+ <dependencies>
+
+ <!-- sm-core-model -->
+ <dependency>
+ <groupId>com.shopizer</groupId>
+ <artifactId>sm-core-model</artifactId>
+ <version>${shopizer.version}</version>
+ </dependency>
+
+ </dependencies>
+
+
+
+</project>
sm-search/.classpath 36(+36 -0)
diff --git a/sm-search/.classpath b/sm-search/.classpath
new file mode 100644
index 0000000..fc5f96c
--- /dev/null
+++ b/sm-search/.classpath
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" output="target/classes" path="src/main/java">
+ <attributes>
+ <attribute name="optional" value="true"/>
+ <attribute name="maven.pomderived" value="true"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
+ <attributes>
+ <attribute name="maven.pomderived" value="true"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="src" output="target/test-classes" path="src/test/java">
+ <attributes>
+ <attribute name="optional" value="true"/>
+ <attribute name="maven.pomderived" value="true"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources">
+ <attributes>
+ <attribute name="maven.pomderived" value="true"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
+ <attributes>
+ <attribute name="maven.pomderived" value="true"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
+ <attributes>
+ <attribute name="maven.pomderived" value="true"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="output" path="target/classes"/>
+</classpath>
sm-search/.metadata/.lock 0(+0 -0)
diff --git a/sm-search/.metadata/.lock b/sm-search/.metadata/.lock
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/sm-search/.metadata/.lock
sm-search/.metadata/.log 14(+14 -0)
diff --git a/sm-search/.metadata/.log b/sm-search/.metadata/.log
new file mode 100644
index 0000000..f784ec5
--- /dev/null
+++ b/sm-search/.metadata/.log
@@ -0,0 +1,14 @@
+!SESSION 2016-03-03 08:56:57.518 -----------------------------------------------
+eclipse.buildId=4.3.2.M20140221-1700
+java.version=1.7.0_79
+java.vendor=Oracle Corporation
+BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_CA
+Framework arguments: -product org.eclipse.epp.package.jee.product
+Command-line arguments: -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.jee.product
+
+!ENTRY org.eclipse.egit.ui 2 0 2016-03-03 08:59:46.856
+!MESSAGE Warning: The environment variable HOME is not set. The following directory will be used to store the Git
+user global configuration and to define the default location to store repositories: 'C:\Users\c.samson'. If this is
+not correct please set the HOME environment variable and restart Eclipse. Otherwise Git for Windows and
+EGit might behave differently since they see different configuration options.
+This warning can be switched off on the Team > Git > Confirmations and Warnings preference page.
diff --git a/sm-search/.metadata/.mylyn/repositories.xml.zip b/sm-search/.metadata/.mylyn/repositories.xml.zip
new file mode 100644
index 0000000..d62cbf6
Binary files /dev/null and b/sm-search/.metadata/.mylyn/repositories.xml.zip differ
diff --git a/sm-search/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/history.version b/sm-search/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/history.version
new file mode 100644
index 0000000..25cb955
--- /dev/null
+++ b/sm-search/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/history.version
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/sm-search/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index b/sm-search/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index
new file mode 100644
index 0000000..943c23d
Binary files /dev/null and b/sm-search/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index differ
diff --git a/sm-search/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.version b/sm-search/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.version
new file mode 100644
index 0000000..6b2aaa7
--- /dev/null
+++ b/sm-search/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.version
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/sm-search/.metadata/.plugins/org.eclipse.core.resources/.root/1.tree b/sm-search/.metadata/.plugins/org.eclipse.core.resources/.root/1.tree
new file mode 100644
index 0000000..57088d6
Binary files /dev/null and b/sm-search/.metadata/.plugins/org.eclipse.core.resources/.root/1.tree differ
diff --git a/sm-search/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources b/sm-search/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources
new file mode 100644
index 0000000..991ca03
Binary files /dev/null and b/sm-search/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources differ
diff --git a/sm-search/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.core.resources.prefs b/sm-search/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..77fe583
--- /dev/null
+++ b/sm-search/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+version=1
diff --git a/sm-search/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.ui.prefs b/sm-search/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 0000000..52e18f1
--- /dev/null
+++ b/sm-search/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,14 @@
+content_assist_proposals_background=255,255,255
+content_assist_proposals_foreground=0,0,0
+eclipse.preferences.version=1
+fontPropagated=true
+org.eclipse.jdt.internal.ui.navigator.layout=2
+org.eclipse.jdt.ui.editor.tab.width=
+org.eclipse.jdt.ui.formatterprofiles.version=12
+org.eclipse.jdt.ui.javadoclocations.migrated=true
+org.eclipse.jface.textfont=1|Consolas|10.0|0|WINDOWS|1|0|0|0|0|0|0|0|0|1|0|0|0|0|Consolas;
+proposalOrderMigrated=true
+spelling_locale_initialized=true
+tabWidthPropagated=true
+useAnnotationsPrefPage=true
+useQuickDiffPrefPage=true
diff --git a/sm-search/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jst.j2ee.webservice.ui.prefs b/sm-search/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jst.j2ee.webservice.ui.prefs
new file mode 100644
index 0000000..b79e47a
--- /dev/null
+++ b/sm-search/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jst.j2ee.webservice.ui.prefs
@@ -0,0 +1,2 @@
+areThereWebServices=false
+eclipse.preferences.version=1
diff --git a/sm-search/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.m2e.discovery.prefs b/sm-search/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.m2e.discovery.prefs
new file mode 100644
index 0000000..c05c14c
--- /dev/null
+++ b/sm-search/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.m2e.discovery.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+org.eclipse.m2e.discovery.pref.projects=
diff --git a/sm-search/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.context.core.prefs b/sm-search/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.context.core.prefs
new file mode 100644
index 0000000..e5a71f2
--- /dev/null
+++ b/sm-search/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.context.core.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+mylyn.attention.migrated=true
diff --git a/sm-search/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.monitor.ui.prefs b/sm-search/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.monitor.ui.prefs
new file mode 100644
index 0000000..e0b8c16
--- /dev/null
+++ b/sm-search/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.monitor.ui.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+org.eclipse.mylyn.monitor.activity.tracking.enabled.checked=true
diff --git a/sm-search/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.tasks.ui.prefs b/sm-search/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.tasks.ui.prefs
new file mode 100644
index 0000000..07d6ad6
--- /dev/null
+++ b/sm-search/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.tasks.ui.prefs
@@ -0,0 +1,3 @@
+eclipse.preferences.version=1
+org.eclipse.mylyn.tasks.ui.filters.nonmatching=true
+org.eclipse.mylyn.tasks.ui.filters.nonmatching.encouraged=true
diff --git a/sm-search/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.rse.core.prefs b/sm-search/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.rse.core.prefs
new file mode 100644
index 0000000..ce4c08b
--- /dev/null
+++ b/sm-search/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.rse.core.prefs
@@ -0,0 +1,3 @@
+activeuserprofiles=CANL-1FPKN32;Team
+eclipse.preferences.version=1
+org.eclipse.rse.systemtype.local.systemType.defaultUserId=c.samson
diff --git a/sm-search/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.rse.ui.prefs b/sm-search/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.rse.ui.prefs
new file mode 100644
index 0000000..2bf10a3
--- /dev/null
+++ b/sm-search/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.rse.ui.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+org.eclipse.rse.preferences.order.connections=CANL-1FPKN32.Local
diff --git a/sm-search/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.cvs.ui.prefs b/sm-search/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.cvs.ui.prefs
new file mode 100644
index 0000000..56114a2
--- /dev/null
+++ b/sm-search/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.cvs.ui.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+pref_first_startup=false
diff --git a/sm-search/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.ui.prefs b/sm-search/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.ui.prefs
new file mode 100644
index 0000000..848e263
--- /dev/null
+++ b/sm-search/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.ui.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+org.eclipse.team.ui.first_time=false
diff --git a/sm-search/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs b/sm-search/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs
new file mode 100644
index 0000000..d45fae6
--- /dev/null
+++ b/sm-search/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs
@@ -0,0 +1,5 @@
+PROBLEMS_FILTERS_MIGRATE=true
+eclipse.preferences.version=1
+platformState=1448552360863
+quickStart=false
+tipsAndTricks=true
diff --git a/sm-search/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.prefs b/sm-search/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.prefs
new file mode 100644
index 0000000..bd7d210
--- /dev/null
+++ b/sm-search/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+showIntro=false
diff --git a/sm-search/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs b/sm-search/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs
new file mode 100644
index 0000000..88952f9
--- /dev/null
+++ b/sm-search/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs
@@ -0,0 +1,4 @@
+//org.eclipse.ui.commands/state/org.eclipse.wst.xml.views.XPathView.processor.xpathprocessor/org.eclipse.ui.commands.radioState=xpath10
+ENABLED_DECORATORS=org.eclipse.jst.ws.jaxws.dom.integration.navigator.WebServiceDecorator\:true,org.eclipse.m2e.core.mavenVersionDecorator\:false,org.eclipse.wst.server.ui.decorator\:false,org.eclipse.datatools.connectivity.sqm.core.internal.ui.explorer.DependencyDecoration\:true,org.eclipse.datatools.connectivity.sqm.core.internal.ui.explorer.ColumnDecoration\:true,org.eclipse.datatools.connectivity.sqm.core.internal.ui.explorer.ForeignKeyDecoration\:true,org.eclipse.datatools.connectivity.sqm.core.internal.ui.explorer.IndexTriggerDecoration\:true,org.eclipse.datatools.connectivity.internal.core.ui.bookmarkDecoration\:true,org.eclipse.datatools.connectivity.internal.core.ui.FilterNodeDecoration\:true,org.eclipse.datatools.connectivity.ui.decorator.contentextension\:false,org.eclipse.datatools.enablement.ingres.ui.providers.decorators.SynonymDecorationService\:true,org.eclipse.datatools.enablement.ingres.internal.ui.providers.decorators.ParameterDecorationService\:true,org.eclipse.datatools.enablement.sybase.asa.proxytabledecorator\:true,org.eclipse.datatools.enablement.sybase.ase.webservicetabledecorator\:true,org.eclipse.datatools.enablement.sybase.systemtabledecorator\:true,org.eclipse.egit.ui.internal.decorators.GitLightweightDecorator\:true,org.eclipse.jdt.ui.override.decorator\:true,org.eclipse.jdt.ui.interface.decorator\:false,org.eclipse.jdt.ui.buildpath.decorator\:true,org.eclipse.jst.j2ee.internal.ui.util.AnnotationIconDecorator_ejb\:true,org.eclipse.jst.j2ee.navigator.internal.J2EEProjectDecorator\:true,org.eclipse.jst.jee.ui.internal.navigator.ejb.BeanDecorator\:true,org.eclipse.jst.jee.navigator.internal.JEEProjectDecorator\:true,org.eclipse.jst.j2ee.internal.ui.util.AnnotationIconDecorator_servlet\:true,org.eclipse.m2e.core.maven2decorator\:true,org.eclipse.mylyn.context.ui.decorator.interest\:true,org.eclipse.mylyn.tasks.ui.decorators.task\:true,org.eclipse.mylyn.team.ui.changeset.decorator\:true,org.eclipse.pde.ui.binaryProjectDecorator\:false,org.eclipse.rse.core.virtualobject.decorator\:true,org.eclipse.rse.core.binary.executable.decorator\:true,org.eclipse.rse.core.script.executable.decorator\:true,org.eclipse.rse.core.java.executable.decorator\:true,org.eclipse.rse.core.library.decorator\:true,org.eclipse.rse.core.link.decorator\:true,org.eclipse.rse.subsystems.error.decorator\:true,org.eclipse.team.cvs.ui.decorator\:true,org.eclipse.ui.LinkedResourceDecorator\:true,org.eclipse.ui.SymlinkDecorator\:true,org.eclipse.ui.VirtualResourceDecorator\:true,org.eclipse.ui.ContentTypeDecorator\:true,org.eclipse.ui.ResourceFilterDecorator\:false,org.eclipse.wst.jsdt.ui.override.decorator\:true,org.eclipse.wst.server.ui.navigatorDecorator\:true,
+PLUGINS_NOT_ACTIVATED_ON_STARTUP=org.eclipse.m2e.discovery;
+eclipse.preferences.version=1
diff --git a/sm-search/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi b/sm-search/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi
new file mode 100644
index 0000000..877b907
--- /dev/null
+++ b/sm-search/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi
@@ -0,0 +1,2603 @@
+<?xml version="1.0" encoding="ASCII"?>
+<application:Application xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:advanced="http://www.eclipse.org/ui/2010/UIModel/application/ui/advanced" xmlns:application="http://www.eclipse.org/ui/2010/UIModel/application" xmlns:basic="http://www.eclipse.org/ui/2010/UIModel/application/ui/basic" xmlns:menu="http://www.eclipse.org/ui/2010/UIModel/application/ui/menu" xmi:id="_LbY5QeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.e4.legacy.ide.application" contributorURI="platform:/plugin/org.eclipse.ui.workbench" selectedElement="_LbY5QuFIEeW3CZUaZ-3o8w" bindingContexts="_LbY5ROFIEeW3CZUaZ-3o8w">
+ <persistedState key="memento" value="<?xml version="1.0" encoding="UTF-8"?>
<workbench>
<mruList/>
</workbench>"/>
+ <tags>activeSchemeId:org.eclipse.ui.defaultAcceleratorConfiguration</tags>
+ <tags>ModelMigrationProcessor.001</tags>
+ <children xsi:type="basic:TrimmedWindow" xmi:id="_LbY5QuFIEeW3CZUaZ-3o8w" elementId="IDEWindow" contributorURI="platform:/plugin/org.eclipse.ui.workbench" selectedElement="_LnpMkuFIEeW3CZUaZ-3o8w" label="%trimmedwindow.label.eclipseSDK" x="180" y="180" width="1024" height="768">
+ <persistedState key="coolBarVisible" value="true"/>
+ <persistedState key="perspectiveBarVisible" value="true"/>
+ <persistedState key="workingSets" value="<?xml version="1.0" encoding="UTF-8"?>
<workingSets/>"/>
+ <persistedState key="aggregateWorkingSetId"/>
+ <tags>topLevel</tags>
+ <tags>shellMaximized</tags>
+ <children xsi:type="basic:PartSashContainer" xmi:id="_LnpMkuFIEeW3CZUaZ-3o8w" horizontal="true">
+ <children xsi:type="advanced:PerspectiveStack" xmi:id="_LnpMk-FIEeW3CZUaZ-3o8w" elementId="PerspectiveStack" containerData="7500" selectedElement="_LxxY8OFIEeW3CZUaZ-3o8w">
+ <children xsi:type="advanced:Perspective" xmi:id="_LxxY8OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jst.j2ee.J2EEPerspective" selectedElement="_LxxY8eFIEeW3CZUaZ-3o8w" label="Java EE" iconURI="platform:/plugin/org.eclipse.jst.j2ee.ui/icons/full/cview16/j2ee_perspective.gif">
+ <persistedState key="persp.hiddenItems" value="persp.hideToolbarSC:org.eclipse.debug.ui.commands.RunToLine,persp.hideToolbarSC:org.eclipse.jdt.ui.actions.OpenProjectWizard,persp.hideToolbarSC:org.eclipse.ui.edit.text.toggleShowSelectedElementOnly,"/>
+ <tags>persp.actionSet:org.eclipse.mylyn.context.ui.actionSet</tags>
+ <tags>persp.actionSet:org.eclipse.mylyn.doc.actionSet</tags>
+ <tags>persp.actionSet:org.eclipse.mylyn.tasks.ui.navigation</tags>
+ <tags>persp.actionSet:org.eclipse.ui.cheatsheets.actionSet</tags>
+ <tags>persp.actionSet:org.eclipse.rse.core.search.searchActionSet</tags>
+ <tags>persp.actionSet:org.eclipse.search.searchActionSet</tags>
+ <tags>persp.actionSet:org.eclipse.ui.edit.text.actionSet.annotationNavigation</tags>
+ <tags>persp.actionSet:org.eclipse.ui.edit.text.actionSet.navigation</tags>
+ <tags>persp.actionSet:org.eclipse.ui.edit.text.actionSet.convertLineDelimitersTo</tags>
+ <tags>persp.actionSet:org.eclipse.ui.externaltools.ExternalToolsSet</tags>
+ <tags>persp.actionSet:org.eclipse.ui.actionSet.keyBindings</tags>
+ <tags>persp.actionSet:org.eclipse.ui.actionSet.openFiles</tags>
+ <tags>persp.actionSet:org.eclipse.jst.j2ee.J2eeMainActionSet</tags>
+ <tags>persp.actionSet:org.eclipse.jdt.ui.JavaActionSet</tags>
+ <tags>persp.actionSet:org.eclipse.debug.ui.launchActionSet</tags>
+ <tags>persp.actionSet:org.eclipse.debug.ui.debugActionSet</tags>
+ <tags>persp.actionSet:org.eclipse.ui.NavigateActionSet</tags>
+ <tags>persp.viewSC:org.eclipse.ui.navigator.ProjectExplorer</tags>
+ <tags>persp.viewSC:org.eclipse.wst.server.ui.ServersView</tags>
+ <tags>persp.viewSC:org.eclipse.datatools.connectivity.DataSourceExplorerNavigator</tags>
+ <tags>persp.viewSC:org.eclipse.ui.views.BookmarkView</tags>
+ <tags>persp.viewSC:org.eclipse.ui.views.ContentOutline</tags>
+ <tags>persp.viewSC:org.eclipse.ui.views.PropertySheet</tags>
+ <tags>persp.viewSC:org.eclipse.ui.views.ResourceNavigator</tags>
+ <tags>persp.viewSC:org.eclipse.wst.common.snippets.internal.ui.SnippetsView</tags>
+ <tags>persp.viewSC:org.eclipse.ui.views.AllMarkersView</tags>
+ <tags>persp.viewSC:org.eclipse.mylyn.tasks.ui.views.tasks</tags>
+ <tags>persp.viewSC:org.eclipse.search.ui.views.SearchView</tags>
+ <tags>persp.viewSC:org.eclipse.ui.console.ConsoleView</tags>
+ <tags>persp.showIn:org.eclipse.ui.navigator.ProjectExplorer</tags>
+ <tags>persp.newWizSC:org.eclipse.jpt.jpa.ui.wizard.newJpaProject</tags>
+ <tags>persp.perspSC:org.eclipse.jpt.ui.jpaPerspective</tags>
+ <tags>persp.perspSC:org.eclipse.debug.ui.DebugPerspective</tags>
+ <tags>persp.perspSC:org.eclipse.jdt.ui.JavaPerspective</tags>
+ <tags>persp.perspSC:org.eclipse.ui.resourcePerspective</tags>
+ <tags>persp.perspSC:org.eclipse.wst.web.ui.webDevPerspective</tags>
+ <tags>persp.newWizSC:org.eclipse.jst.j2ee.ui.project.facet.EarProjectWizard</tags>
+ <tags>persp.newWizSC:org.eclipse.jst.servlet.ui.project.facet.WebProjectWizard</tags>
+ <tags>persp.newWizSC:org.eclipse.jst.ejb.ui.project.facet.EjbProjectWizard</tags>
+ <tags>persp.newWizSC:org.eclipse.jst.j2ee.jca.ui.internal.wizard.ConnectorProjectWizard</tags>
+ <tags>persp.newWizSC:org.eclipse.jst.j2ee.ui.project.facet.appclient.AppClientProjectWizard</tags>
+ <tags>persp.newWizSC:org.eclipse.wst.web.ui.internal.wizards.SimpleWebProjectWizard</tags>
+ <tags>persp.newWizSC:org.eclipse.jpt.ui.wizard.newJpaProject</tags>
+ <tags>persp.newWizSC:org.eclipse.jst.servlet.ui.internal.wizard.AddServletWizard</tags>
+ <tags>persp.newWizSC:org.eclipse.jst.ejb.ui.internal.wizard.AddSessionBeanWizard</tags>
+ <tags>persp.newWizSC:org.eclipse.jst.ejb.ui.internal.wizard.AddMessageDrivenBeanWizard</tags>
+ <tags>persp.newWizSC:org.eclipse.jpt.ui.wizard.newEntity</tags>
+ <tags>persp.newWizSC:org.eclipse.jst.ws.creation.ui.wizard.serverwizard</tags>
+ <tags>persp.newWizSC:org.eclipse.ui.wizards.new.folder</tags>
+ <tags>persp.newWizSC:org.eclipse.ui.wizards.new.file</tags>
+ <tags>persp.actionSet:org.eclipse.wst.server.ui.internal.webbrowser.actionSet</tags>
+ <tags>persp.actionSet:org.eclipse.debug.ui.breakpointActionSet</tags>
+ <tags>persp.newWizSC:org.eclipse.m2e.core.wizards.Maven2ProjectWizard</tags>
+ <tags>persp.actionSet:org.eclipse.wst.ws.explorer.explorer</tags>
+ <children xsi:type="basic:PartSashContainer" xmi:id="_LxxY8eFIEeW3CZUaZ-3o8w" selectedElement="_LxxY8uFIEeW3CZUaZ-3o8w" horizontal="true">
+ <children xsi:type="basic:PartStack" xmi:id="_LxxY8uFIEeW3CZUaZ-3o8w" elementId="topLeft" containerData="1795" selectedElement="_LxxY8-FIEeW3CZUaZ-3o8w">
+ <tags>newtablook</tags>
+ <children xsi:type="advanced:Placeholder" xmi:id="_LxxY8-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.navigator.ProjectExplorer" ref="_LwBFcOFIEeW3CZUaZ-3o8w"/>
+ <children xsi:type="advanced:Placeholder" xmi:id="_LxxY9OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.views.ResourceNavigator" toBeRendered="false" ref="_LwC6oOFIEeW3CZUaZ-3o8w"/>
+ <children xsi:type="advanced:Placeholder" xmi:id="_LxxY9eFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.TypeHierarchy" toBeRendered="false" ref="_LwC6oeFIEeW3CZUaZ-3o8w"/>
+ <children xsi:type="advanced:Placeholder" xmi:id="_LxxY9uFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.PackagesView" toBeRendered="false" ref="_LxtukOFIEeW3CZUaZ-3o8w"/>
+ </children>
+ <children xsi:type="basic:PartSashContainer" xmi:id="_LxxY9-FIEeW3CZUaZ-3o8w" containerData="8205">
+ <children xsi:type="basic:PartSashContainer" xmi:id="_LxxY-OFIEeW3CZUaZ-3o8w" containerData="7000" horizontal="true">
+ <children xsi:type="advanced:Placeholder" xmi:id="_LxxY-eFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.editorss" containerData="7000" ref="_Lvdr0OFIEeW3CZUaZ-3o8w"/>
+ <children xsi:type="basic:PartStack" xmi:id="_LxxY-uFIEeW3CZUaZ-3o8w" elementId="topRight" containerData="3000" selectedElement="_LxxY--FIEeW3CZUaZ-3o8w">
+ <tags>newtablook</tags>
+ <children xsi:type="advanced:Placeholder" xmi:id="_LxxY--FIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.views.ContentOutline" ref="_LxvjxeFIEeW3CZUaZ-3o8w"/>
+ <children xsi:type="advanced:Placeholder" xmi:id="_LxxY_OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.tasks.ui.views.tasks" ref="_LxwK0OFIEeW3CZUaZ-3o8w"/>
+ </children>
+ </children>
+ <children xsi:type="basic:PartStack" xmi:id="_LxxY_eFIEeW3CZUaZ-3o8w" elementId="bottomRight" containerData="3000" selectedElement="_LxxY_uFIEeW3CZUaZ-3o8w">
+ <tags>newtablook</tags>
+ <children xsi:type="advanced:Placeholder" xmi:id="_LxxY_uFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.views.AllMarkersView" ref="_LxtukeFIEeW3CZUaZ-3o8w"/>
+ <children xsi:type="advanced:Placeholder" xmi:id="_LxxY_-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.views.PropertySheet" ref="_LxuVoOFIEeW3CZUaZ-3o8w"/>
+ <children xsi:type="advanced:Placeholder" xmi:id="_LxxZAOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.server.ui.ServersView" ref="_LxuVoeFIEeW3CZUaZ-3o8w"/>
+ <children xsi:type="advanced:Placeholder" xmi:id="_LxxZAeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.datatools.connectivity.DataSourceExplorerNavigator" ref="_Lxu8sOFIEeW3CZUaZ-3o8w"/>
+ <children xsi:type="advanced:Placeholder" xmi:id="_LxxZAuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.common.snippets.internal.ui.SnippetsView" ref="_Lxu8seFIEeW3CZUaZ-3o8w"/>
+ <children xsi:type="advanced:Placeholder" xmi:id="_LxxZA-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.views.ProblemView" toBeRendered="false" ref="_Lxu8suFIEeW3CZUaZ-3o8w"/>
+ <children xsi:type="advanced:Placeholder" xmi:id="_LxxZBOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.views.TaskList" toBeRendered="false" ref="_LxvjwOFIEeW3CZUaZ-3o8w"/>
+ <children xsi:type="advanced:Placeholder" xmi:id="_LxxZBeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.console.ConsoleView" toBeRendered="false" ref="_LxvjweFIEeW3CZUaZ-3o8w"/>
+ <children xsi:type="advanced:Placeholder" xmi:id="_LxxZBuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.views.BookmarkView" toBeRendered="false" ref="_LxvjwuFIEeW3CZUaZ-3o8w"/>
+ <children xsi:type="advanced:Placeholder" xmi:id="_LxxZB-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.views.ProgressView" toBeRendered="false" ref="_Lxvjw-FIEeW3CZUaZ-3o8w"/>
+ <children xsi:type="advanced:Placeholder" xmi:id="_LxxZCOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.search.ui.views.SearchView" toBeRendered="false" ref="_LxvjxOFIEeW3CZUaZ-3o8w"/>
+ </children>
+ </children>
+ </children>
+ </children>
+ </children>
+ <children xsi:type="basic:PartStack" xmi:id="_LnpMlOFIEeW3CZUaZ-3o8w" elementId="stickyFolderRight" toBeRendered="false" containerData="2500">
+ <tags>active</tags>
+ <children xsi:type="advanced:Placeholder" xmi:id="_LnpMleFIEeW3CZUaZ-3o8w" elementId="org.eclipse.help.ui.HelpView" toBeRendered="false" ref="_Lnn-cOFIEeW3CZUaZ-3o8w"/>
+ <children xsi:type="advanced:Placeholder" xmi:id="_LnpMluFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.internal.introview" toBeRendered="false" ref="_LnpMkOFIEeW3CZUaZ-3o8w"/>
+ <children xsi:type="advanced:Placeholder" xmi:id="_LnpMl-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.cheatsheets.views.CheatSheetView" toBeRendered="false" ref="_LnpMkeFIEeW3CZUaZ-3o8w"/>
+ </children>
+ </children>
+ <sharedElements xsi:type="basic:Part" xmi:id="_Lnn-cOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.help.ui.HelpView" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView" label="Help" iconURI="platform:/plugin/org.eclipse.help.ui/icons/view16/help_view.gif" closeable="true">
+ <tags>View</tags>
+ <tags>categoryTag:Help</tags>
+ </sharedElements>
+ <sharedElements xsi:type="basic:Part" xmi:id="_LnpMkOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.internal.introview" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView" label="Welcome" iconURI="platform:/plugin/org.eclipse.ui/icons/full/eview16/defaultview_misc.gif" tooltip="" closeable="true">
+ <tags>View</tags>
+ <tags>categoryTag:General</tags>
+ <tags>active</tags>
+ <menus xmi:id="_L-VOQOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.internal.introview">
+ <tags>ViewMenu</tags>
+ <tags>menuContribution:menu</tags>
+ </menus>
+ <toolbar xmi:id="_L-VOQeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.internal.introview" visible="false"/>
+ </sharedElements>
+ <sharedElements xsi:type="basic:Part" xmi:id="_LnpMkeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.cheatsheets.views.CheatSheetView" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView" label="Cheat Sheets" iconURI="platform:/plugin/org.eclipse.ui.cheatsheets/icons/view16/cheatsheet_view.gif" closeable="true">
+ <tags>View</tags>
+ <tags>categoryTag:Help</tags>
+ </sharedElements>
+ <sharedElements xsi:type="advanced:Area" xmi:id="_Lvdr0OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.editorss">
+ <children xsi:type="basic:PartStack" xmi:id="_Lvdr0eFIEeW3CZUaZ-3o8w" elementId="org.eclipse.e4.primaryDataStack">
+ <tags>newtablook</tags>
+ <tags>org.eclipse.e4.primaryDataStack</tags>
+ <tags>EditorStack</tags>
+ </children>
+ </sharedElements>
+ <sharedElements xsi:type="basic:Part" xmi:id="_LwBFcOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.navigator.ProjectExplorer" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView" label="Project Explorer" iconURI="platform:/plugin/org.eclipse.ui.navigator.resources/icons/full/eview16/resource_persp.gif" tooltip="Workspace" closeable="true">
+ <persistedState key="memento" value="<?xml version="1.0" encoding="UTF-8"?>
<view CommonNavigator.LINKING_ENABLED="0" org.eclipse.ui.navigator.resources.workingSets.showTopLevelWorkingSets="0"/>"/>
+ <tags>View</tags>
+ <tags>categoryTag:General</tags>
+ <menus xmi:id="_LyWnwOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.navigator.ProjectExplorer">
+ <tags>ViewMenu</tags>
+ <tags>menuContribution:menu</tags>
+ </menus>
+ <toolbar xmi:id="_LyWnweFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.navigator.ProjectExplorer" visible="false"/>
+ </sharedElements>
+ <sharedElements xsi:type="basic:Part" xmi:id="_LwC6oOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.views.ResourceNavigator" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView" label="Navigator" iconURI="platform:/plugin/org.eclipse.ui.ide/icons/full/eview16/filenav_nav.gif" closeable="true">
+ <tags>View</tags>
+ <tags>categoryTag:General</tags>
+ </sharedElements>
+ <sharedElements xsi:type="basic:Part" xmi:id="_LwC6oeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.TypeHierarchy" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView" label="Type Hierarchy" iconURI="platform:/plugin/org.eclipse.jdt.ui/icons/full/eview16/class_hi.gif" closeable="true">
+ <tags>View</tags>
+ <tags>categoryTag:Java</tags>
+ </sharedElements>
+ <sharedElements xsi:type="basic:Part" xmi:id="_LxtukOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.PackagesView" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView" label="Packages" iconURI="platform:/plugin/org.eclipse.jdt.ui/icons/full/eview16/packages.gif" closeable="true">
+ <tags>View</tags>
+ <tags>categoryTag:Java Browsing</tags>
+ </sharedElements>
+ <sharedElements xsi:type="basic:Part" xmi:id="_LxtukeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.views.AllMarkersView" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView" label="Markers" iconURI="platform:/plugin/org.eclipse.ui.ide/icons/full/eview16/problems_view.gif" tooltip="0 items" closeable="true">
+ <persistedState key="memento" value="<?xml version="1.0" encoding="UTF-8"?>
<view PRIMARY_SORT_FIELD="org.eclipse.ui.ide.allSeverityField" categoryGroup="org.eclipse.ui.ide.type" markerContentGenerator="org.eclipse.ui.ide.allMarkersGenerator" partName="Markers">
<columnWidths org.eclipse.ui.ide.allSeverityField="400" org.eclipse.ui.ide.locationField="120" org.eclipse.ui.ide.markerType="120" org.eclipse.ui.ide.pathField="160" org.eclipse.ui.ide.resourceField="120"/>
<visible IMemento.internal.id="org.eclipse.ui.ide.allSeverityField"/>
<visible IMemento.internal.id="org.eclipse.ui.ide.resourceField"/>
<visible IMemento.internal.id="org.eclipse.ui.ide.pathField"/>
<visible IMemento.internal.id="org.eclipse.ui.ide.locationField"/>
<visible IMemento.internal.id="org.eclipse.ui.ide.markerType"/>
</view>"/>
+ <tags>View</tags>
+ <tags>categoryTag:General</tags>
+ <menus xmi:id="_L2F4QOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.views.AllMarkersView">
+ <tags>ViewMenu</tags>
+ <tags>menuContribution:menu</tags>
+ </menus>
+ <toolbar xmi:id="_L2F4QeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.views.AllMarkersView" visible="false"/>
+ </sharedElements>
+ <sharedElements xsi:type="basic:Part" xmi:id="_LxuVoOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.views.PropertySheet" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView" label="Properties" iconURI="platform:/plugin/org.eclipse.ui.views/icons/full/eview16/prop_ps.gif" closeable="true">
+ <tags>View</tags>
+ <tags>categoryTag:General</tags>
+ </sharedElements>
+ <sharedElements xsi:type="basic:Part" xmi:id="_LxuVoeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.server.ui.ServersView" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView" label="Servers" iconURI="platform:/plugin/org.eclipse.wst.server.ui/icons/cview16/servers_view.gif" closeable="true">
+ <tags>View</tags>
+ <tags>categoryTag:Server</tags>
+ </sharedElements>
+ <sharedElements xsi:type="basic:Part" xmi:id="_Lxu8sOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.datatools.connectivity.DataSourceExplorerNavigator" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView" label="Data Source Explorer" iconURI="platform:/plugin/org.eclipse.datatools.connectivity.ui.dse/icons/full/cview16/enterprise_explorer.gif" closeable="true">
+ <tags>View</tags>
+ <tags>categoryTag:Data Management</tags>
+ </sharedElements>
+ <sharedElements xsi:type="basic:Part" xmi:id="_Lxu8seFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.common.snippets.internal.ui.SnippetsView" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView" label="Snippets" iconURI="platform:/plugin/org.eclipse.wst.common.snippets/icons/snippets_view.gif" closeable="true">
+ <tags>View</tags>
+ <tags>categoryTag:General</tags>
+ </sharedElements>
+ <sharedElements xsi:type="basic:Part" xmi:id="_Lxu8suFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.views.ProblemView" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView" label="Problems" iconURI="platform:/plugin/org.eclipse.ui.ide/icons/full/eview16/problems_view.gif" closeable="true">
+ <tags>View</tags>
+ <tags>categoryTag:General</tags>
+ </sharedElements>
+ <sharedElements xsi:type="basic:Part" xmi:id="_LxvjwOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.views.TaskList" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView" label="Tasks" iconURI="platform:/plugin/org.eclipse.ui.ide/icons/full/eview16/tasks_tsk.gif" closeable="true">
+ <tags>View</tags>
+ <tags>categoryTag:General</tags>
+ </sharedElements>
+ <sharedElements xsi:type="basic:Part" xmi:id="_LxvjweFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.console.ConsoleView" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView" label="Console" iconURI="platform:/plugin/org.eclipse.ui.console/icons/full/cview16/console_view.gif" closeable="true">
+ <tags>View</tags>
+ <tags>categoryTag:General</tags>
+ </sharedElements>
+ <sharedElements xsi:type="basic:Part" xmi:id="_LxvjwuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.views.BookmarkView" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView" label="Bookmarks" iconURI="platform:/plugin/org.eclipse.ui.ide/icons/full/eview16/bkmrk_nav.gif" closeable="true">
+ <tags>View</tags>
+ <tags>categoryTag:General</tags>
+ </sharedElements>
+ <sharedElements xsi:type="basic:Part" xmi:id="_Lxvjw-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.views.ProgressView" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView" label="Progress" iconURI="platform:/plugin/org.eclipse.ui.ide/icons/full/eview16/pview.gif" closeable="true">
+ <tags>View</tags>
+ <tags>categoryTag:General</tags>
+ </sharedElements>
+ <sharedElements xsi:type="basic:Part" xmi:id="_LxvjxOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.search.ui.views.SearchView" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView" label="Search" iconURI="platform:/plugin/org.eclipse.search/icons/full/eview16/searchres.gif" closeable="true">
+ <tags>View</tags>
+ <tags>categoryTag:General</tags>
+ </sharedElements>
+ <sharedElements xsi:type="basic:Part" xmi:id="_LxvjxeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.views.ContentOutline" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView" label="Outline" iconURI="platform:/plugin/org.eclipse.ui.views/icons/full/eview16/outline_co.gif" tooltip="" closeable="true">
+ <persistedState key="memento" value="<?xml version="1.0" encoding="UTF-8"?>
<view/>"/>
+ <tags>View</tags>
+ <tags>categoryTag:General</tags>
+ <menus xmi:id="_L05lcOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.views.ContentOutline">
+ <tags>ViewMenu</tags>
+ <tags>menuContribution:menu</tags>
+ </menus>
+ <toolbar xmi:id="_L05lceFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.views.ContentOutline" visible="false"/>
+ </sharedElements>
+ <sharedElements xsi:type="basic:Part" xmi:id="_LxwK0OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.tasks.ui.views.tasks" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView" label="Task List" iconURI="platform:/plugin/org.eclipse.mylyn.tasks.ui/icons/eview16/task-list.gif" closeable="true">
+ <tags>View</tags>
+ <tags>categoryTag:Mylyn</tags>
+ </sharedElements>
+ <trimBars xmi:id="_LnuFEOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.main.toolbar">
+ <children xsi:type="menu:ToolBar" xmi:id="_Lp9gwOFIEeW3CZUaZ-3o8w" elementId="group.file" toBeRendered="false">
+ <tags>toolbarSeparator</tags>
+ <children xsi:type="menu:ToolBarSeparator" xmi:id="_Lp9gweFIEeW3CZUaZ-3o8w" elementId="group.file" toBeRendered="false"/>
+ </children>
+ <children xsi:type="menu:ToolBar" xmi:id="_Lp-H0OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.workbench.file">
+ <tags>Draggable</tags>
+ <children xsi:type="menu:OpaqueToolItem" xmi:id="_LqAkEOFIEeW3CZUaZ-3o8w" elementId="new.group"/>
+ <children xsi:type="menu:OpaqueToolItem" xmi:id="_LqAkEeFIEeW3CZUaZ-3o8w" elementId="newWizardDropDown"/>
+ <children xsi:type="menu:OpaqueToolItem" xmi:id="_LqAkEuFIEeW3CZUaZ-3o8w" elementId="new.ext" visible="false"/>
+ <children xsi:type="menu:OpaqueToolItem" xmi:id="_LqAkE-FIEeW3CZUaZ-3o8w" elementId="save.group" visible="false"/>
+ <children xsi:type="menu:OpaqueToolItem" xmi:id="_LqAkFOFIEeW3CZUaZ-3o8w" elementId="save"/>
+ <children xsi:type="menu:OpaqueToolItem" xmi:id="_LqAkFeFIEeW3CZUaZ-3o8w" elementId="saveAll"/>
+ <children xsi:type="menu:OpaqueToolItem" xmi:id="_LqAkFuFIEeW3CZUaZ-3o8w" elementId="save.ext" visible="false"/>
+ <children xsi:type="menu:HandledToolItem" xmi:id="_LqBLIOFIEeW3CZUaZ-3o8w" elementId="print" iconURI="platform:/plugin/org.eclipse.ui/icons/full/etool16/print_edit.gif" tooltip="Print" enabled="false" command="_LcfFe-FIEeW3CZUaZ-3o8w"/>
+ <children xsi:type="menu:OpaqueToolItem" xmi:id="_LqDnYOFIEeW3CZUaZ-3o8w" elementId="print.ext" visible="false"/>
+ <children xsi:type="menu:OpaqueToolItem" xmi:id="_LqDnYeFIEeW3CZUaZ-3o8w" elementId="build.group"/>
+ <children xsi:type="menu:OpaqueToolItem" xmi:id="_LqDnYuFIEeW3CZUaZ-3o8w" elementId="build.ext" visible="false"/>
+ <children xsi:type="menu:OpaqueToolItem" xmi:id="_LqDnY-FIEeW3CZUaZ-3o8w" elementId="additions"/>
+ </children>
+ <children xsi:type="menu:ToolBar" xmi:id="_Lp-H0eFIEeW3CZUaZ-3o8w" elementId="additions" toBeRendered="false">
+ <tags>toolbarSeparator</tags>
+ <children xsi:type="menu:ToolBarSeparator" xmi:id="_Lp-H0uFIEeW3CZUaZ-3o8w" elementId="additions" toBeRendered="false"/>
+ </children>
+ <children xsi:type="menu:ToolBar" xmi:id="_L3JoMOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.debug.ui.launchActionSet">
+ <tags>Draggable</tags>
+ <children xsi:type="menu:OpaqueToolItem" xmi:id="_L4K74OFIEeW3CZUaZ-3o8w" elementId="debug"/>
+ <children xsi:type="menu:OpaqueToolItem" xmi:id="_L4Li8OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.debug.internal.ui.actions.DebugDropDownAction"/>
+ <children xsi:type="menu:OpaqueToolItem" xmi:id="_L4MKAOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.debug.internal.ui.actions.RunDropDownAction"/>
+ <children xsi:type="menu:OpaqueToolItem" xmi:id="_L4MxEOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.externaltools.ExternalToolMenuDelegateToolbar"/>
+ </children>
+ <children xsi:type="menu:ToolBar" xmi:id="_L3to4OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jst.j2ee.J2eeMainActionSet">
+ <tags>Draggable</tags>
+ <children xsi:type="menu:OpaqueToolItem" xmi:id="_L4RpkOFIEeW3CZUaZ-3o8w" elementId="J2EEMain"/>
+ <children xsi:type="menu:OpaqueToolItem" xmi:id="_L4SQoOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jst.j2ee.internal.actions.NewJavaEEProject"/>
+ <children xsi:type="menu:OpaqueToolItem" xmi:id="_L4SQoeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jst.j2ee.internal.actions.NewJavaEEArtifact"/>
+ </children>
+ <children xsi:type="menu:ToolBar" xmi:id="_L3Y4wOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.search.searchActionSet">
+ <tags>Draggable</tags>
+ <children xsi:type="menu:OpaqueToolItem" xmi:id="_L4S3sOFIEeW3CZUaZ-3o8w" elementId="Search"/>
+ <children xsi:type="menu:OpaqueToolItem" xmi:id="_L4TewOFIEeW3CZUaZ-3o8w" elementId="openType"/>
+ <children xsi:type="menu:OpaqueToolItem" xmi:id="_L4TeweFIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.tasks.ui.openTask"/>
+ <children xsi:type="menu:OpaqueToolItem" xmi:id="_L4UF0OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.search.OpenSearchDialogPage"/>
+ </children>
+ <children xsi:type="menu:ToolBar" xmi:id="_L3oJUOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.server.ui.internal.webbrowser.actionSet">
+ <tags>Draggable</tags>
+ <children xsi:type="menu:OpaqueToolItem" xmi:id="_L4Us4OFIEeW3CZUaZ-3o8w" elementId="browser"/>
+ <children xsi:type="menu:OpaqueToolItem" xmi:id="_L4Us4eFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.server.ui.internal.webbrowser.action.open"/>
+ </children>
+ <children xsi:type="menu:ToolBar" xmi:id="_L3C6gOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.ws.explorer.explorer">
+ <tags>Draggable</tags>
+ <children xsi:type="menu:OpaqueToolItem" xmi:id="_L4VT8OFIEeW3CZUaZ-3o8w" elementId="additions"/>
+ <children xsi:type="menu:OpaqueToolItem" xmi:id="_L4V7AOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.ws.internal.explorer.action.LaunchWSEAction"/>
+ </children>
+ <children xsi:type="menu:ToolBar" xmi:id="_Lp-H0-FIEeW3CZUaZ-3o8w" elementId="group.nav" toBeRendered="false">
+ <tags>toolbarSeparator</tags>
+ <children xsi:type="menu:ToolBarSeparator" xmi:id="_Lp-H1OFIEeW3CZUaZ-3o8w" elementId="group.nav" toBeRendered="false"/>
+ </children>
+ <children xsi:type="menu:ToolBar" xmi:id="_Lp-u4OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.workbench.navigate">
+ <tags>Draggable</tags>
+ <children xsi:type="menu:OpaqueToolItem" xmi:id="_LqDnZOFIEeW3CZUaZ-3o8w" elementId="history.group"/>
+ <children xsi:type="menu:OpaqueToolItem" xmi:id="_LqDnZeFIEeW3CZUaZ-3o8w" elementId="group.application" visible="false"/>
+ <children xsi:type="menu:OpaqueToolItem" xmi:id="_LqDnZuFIEeW3CZUaZ-3o8w" elementId="backardHistory"/>
+ <children xsi:type="menu:OpaqueToolItem" xmi:id="_LqDnZ-FIEeW3CZUaZ-3o8w" elementId="forwardHistory"/>
+ <children xsi:type="menu:OpaqueToolItem" xmi:id="_LqDnaOFIEeW3CZUaZ-3o8w" elementId="pin.group"/>
+ <children xsi:type="menu:HandledToolItem" xmi:id="_LqDnaeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.window.pinEditor" iconURI="platform:/plugin/org.eclipse.ui/icons/full/etool16/pin_editor.gif" tooltip="Pin Editor" enabled="false" command="_LccCOuFIEeW3CZUaZ-3o8w"/>
+ <children xsi:type="menu:OpaqueToolItem" xmi:id="_L4V7AeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.gotoNextAnnotation"/>
+ <children xsi:type="menu:OpaqueToolItem" xmi:id="_L4WiEOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.gotoPreviousAnnotation"/>
+ <children xsi:type="menu:OpaqueToolItem" xmi:id="_L4XJIOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.gotoLastEditPosition"/>
+ </children>
+ <children xsi:type="menu:ToolBar" xmi:id="_Lp-u4eFIEeW3CZUaZ-3o8w" elementId="group.editor" toBeRendered="false">
+ <tags>toolbarSeparator</tags>
+ <children xsi:type="menu:ToolBarSeparator" xmi:id="_Lp-u4uFIEeW3CZUaZ-3o8w" elementId="group.editor" toBeRendered="false"/>
+ </children>
+ <children xsi:type="menu:ToolBar" xmi:id="_Lp-u4-FIEeW3CZUaZ-3o8w" elementId="group.help" toBeRendered="false">
+ <tags>toolbarSeparator</tags>
+ <children xsi:type="menu:ToolBarSeparator" xmi:id="_Lp-u5OFIEeW3CZUaZ-3o8w" elementId="group.help" toBeRendered="false"/>
+ </children>
+ <children xsi:type="menu:ToolBar" xmi:id="_Lp-u5eFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.workbench.help" visible="false">
+ <tags>Draggable</tags>
+ <children xsi:type="menu:OpaqueToolItem" xmi:id="_LqEOcOFIEeW3CZUaZ-3o8w" elementId="group.help"/>
+ <children xsi:type="menu:OpaqueToolItem" xmi:id="_LqEOceFIEeW3CZUaZ-3o8w" elementId="group.application" visible="false"/>
+ </children>
+ <children xsi:type="menu:ToolControl" xmi:id="_LtmqoOFIEeW3CZUaZ-3o8w" elementId="PerspectiveSpacer" contributionURI="bundleclass://org.eclipse.e4.ui.workbench.renderers.swt/org.eclipse.e4.ui.workbench.renderers.swt.LayoutModifierToolControl">
+ <tags>stretch</tags>
+ </children>
+ <children xsi:type="menu:ToolControl" xmi:id="_Ltn4wOFIEeW3CZUaZ-3o8w" elementId="Spacer Glue" contributionURI="bundleclass://org.eclipse.e4.ui.workbench.renderers.swt/org.eclipse.e4.ui.workbench.renderers.swt.LayoutModifierToolControl">
+ <tags>glue</tags>
+ </children>
+ <children xsi:type="menu:ToolControl" xmi:id="_Ltof0OFIEeW3CZUaZ-3o8w" elementId="SearchField" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.quickaccess.SearchField"/>
+ <children xsi:type="menu:ToolControl" xmi:id="_LuEksOFIEeW3CZUaZ-3o8w" elementId="Search-PS Glue" contributionURI="bundleclass://org.eclipse.e4.ui.workbench.renderers.swt/org.eclipse.e4.ui.workbench.renderers.swt.LayoutModifierToolControl">
+ <tags>glue</tags>
+ </children>
+ <children xsi:type="menu:ToolControl" xmi:id="_LuFLwOFIEeW3CZUaZ-3o8w" elementId="PerspectiveSwitcher" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.e4.ui.workbench.addons.perspectiveswitcher.PerspectiveSwitcher">
+ <tags>Draggable</tags>
+ </children>
+ </trimBars>
+ <trimBars xmi:id="_LuOVsOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.trim.status" side="Bottom">
+ <children xsi:type="menu:ToolControl" xmi:id="_LuO8wOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.StatusLine" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.StandardTrim">
+ <tags>stretch</tags>
+ </children>
+ <children xsi:type="menu:ToolControl" xmi:id="_LuXfoOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.HeapStatus" toBeRendered="false" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.StandardTrim"/>
+ <children xsi:type="menu:ToolControl" xmi:id="_Luc_MOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.ProgressBar" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.StandardTrim">
+ <tags>Draggable</tags>
+ </children>
+ </trimBars>
+ <trimBars xmi:id="_Lus20OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.trim.vertical1" toBeRendered="false" side="Left">
+ <children xsi:type="menu:ToolControl" xmi:id="_L_57kOFIEeW3CZUaZ-3o8w" elementId="PerspectiveStack(minimized)" toBeRendered="false" contributionURI="bundleclass://org.eclipse.e4.ui.workbench.addons.swt/org.eclipse.e4.ui.workbench.addons.minmax.TrimStack">
+ <tags>TrimStack</tags>
+ </children>
+ </trimBars>
+ <trimBars xmi:id="_Lutd4OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.trim.vertical2" side="Right"/>
+ </children>
+ <bindingTables xmi:id="_LbY5Q-FIEeW3CZUaZ-3o8w" contributorURI="platform:/plugin/org.eclipse.ui.workbench" bindingContext="_LbY5ROFIEeW3CZUaZ-3o8w">
+ <bindings xmi:id="_Lc7KUeFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+F2" command="_LcY-8-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_Lc7KUuFIEeW3CZUaZ-3o8w" keySequence="CTRL+INSERT" command="_LcdQSeFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_Lc7xYeFIEeW3CZUaZ-3o8w" keySequence="CTRL+A" command="_LcdQReFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_Lc9mluFIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+I" command="_LccCPeFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_Lc9ml-FIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+F1" command="_LcWiluFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_Lc-NoeFIEeW3CZUaZ-3o8w" keySequence="CTRL+SPACE" command="_LcdQd-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_Lc-Np-FIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+SPACE" command="_Lca0GOFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdB4A-FIEeW3CZUaZ-3o8w" keySequence="CTRL+1" command="_LcZl4OFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdB4COFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+F3" command="_LcgTk-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdCfFuFIEeW3CZUaZ-3o8w" keySequence="CTRL+F10" command="_LcdQZeFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdJz0-FIEeW3CZUaZ-3o8w" keySequence="CTRL+Z" command="_LcXwxOFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdJz1OFIEeW3CZUaZ-3o8w" keySequence="CTRL+Y" command="_LcaNBOFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdJz1eFIEeW3CZUaZ-3o8w" keySequence="CTRL+X" command="_LceecOFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdJz2OFIEeW3CZUaZ-3o8w" keySequence="CTRL+V" command="_LccpM-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdLpBeFIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+L" command="_LccCWOFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdOFQOFIEeW3CZUaZ-3o8w" keySequence="SHIFT+INSERT" command="_LccpM-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdaSgeFIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+D" command="_LcaM_uFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_Lda5keFIEeW3CZUaZ-3o8w" keySequence="SHIFT+DEL" command="_LceecOFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdbgoeFIEeW3CZUaZ-3o8w" keySequence="ALT+PAGE_UP" command="_LcdQc-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdbgpuFIEeW3CZUaZ-3o8w" keySequence="CTRL+C" command="_LcdQSeFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdcHtOFIEeW3CZUaZ-3o8w" keySequence="ALT+PAGE_DOWN" command="_LcZmA-FIEeW3CZUaZ-3o8w"/>
+ </bindingTables>
+ <bindingTables xmi:id="_Lc244OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.javaEditorScope" bindingContext="_Lciv2-FIEeW3CZUaZ-3o8w">
+ <bindings xmi:id="_Lc6jQOFIEeW3CZUaZ-3o8w" keySequence="CTRL+I" command="_LcdQVOFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_Lc8_h-FIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+F" command="_LcaM_eFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_Lc-No-FIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+ARROW_UP" command="_Lcd3i-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdAC0-FIEeW3CZUaZ-3o8w" keySequence="CTRL+/" command="_LcXJuOFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdAC1-FIEeW3CZUaZ-3o8w" keySequence="CTRL+7" command="_LcXJuOFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdAC2-FIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+O" command="_LcWileFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdAp6uFIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+P" command="_LcY-5uFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdBQ8-FIEeW3CZUaZ-3o8w" keySequence="CTRL+T" command="_LcdQWuFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdEUROFIEeW3CZUaZ-3o8w" keySequence="CTRL+F3" command="_Lcd3aeFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdE7VuFIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+/" command="_LccCP-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdGJduFIEeW3CZUaZ-3o8w" keySequence="CTRL+O" command="_LcYX0-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdHXluFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+U" command="_LcaNKuFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdH-pOFIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+M" command="_LcfFfuFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdM3IuFIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+ARROW_UP" command="_LcZl5OFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdM3JeFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+B" command="_LcfFdOFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdM3KOFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+ARROW_DOWN" command="_LcdQQeFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdOFQeFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+ARROW_RIGHT" command="_LcbbL-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdOFReFIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+C" command="_LcXJuOFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdPTZOFIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+\" command="_LcgTnuFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdVaAuFIEeW3CZUaZ-3o8w" keySequence="CTRL+2 R" command="_LcXwzeFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdVaBOFIEeW3CZUaZ-3o8w" keySequence="CTRL+2 L" command="_LcY-1uFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdVaBuFIEeW3CZUaZ-3o8w" keySequence="CTRL+2 F" command="_LcaNJuFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdYdUuFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+ARROW_LEFT" command="_Lcfsl-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdZEYOFIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+ARROW_DOWN" command="_LcgTmeFIEeW3CZUaZ-3o8w"/>
+ </bindingTables>
+ <bindingTables xmi:id="_Lc6jQeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.javaEditorScope" bindingContext="_Lciv2uFIEeW3CZUaZ-3o8w">
+ <bindings xmi:id="_Lc6jQuFIEeW3CZUaZ-3o8w" keySequence="CTRL+I" command="_LcYXw-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_Lc8_iuFIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+F" command="_LcfFjuFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_Lc-NpeFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+ARROW_UP" command="_LccpXOFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdAC1uFIEeW3CZUaZ-3o8w" keySequence="CTRL+/" command="_LcfFneFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdAC2eFIEeW3CZUaZ-3o8w" keySequence="CTRL+7" command="_LcfFneFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdAp4OFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+O" command="_LcaNKeFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdBQ8OFIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+P" command="_Lca0CuFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdBQ9OFIEeW3CZUaZ-3o8w" keySequence="CTRL+T" command="_LcfspOFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdEUQ-FIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+T" command="_LcbbGuFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdEUReFIEeW3CZUaZ-3o8w" keySequence="CTRL+F3" command="_LcZmE-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdE7V-FIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+/" command="_LccpZ-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdGwg-FIEeW3CZUaZ-3o8w" keySequence="CTRL+O" command="_LcfssuFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdH-oOFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+U" command="_LcXJveFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdH-puFIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+M" command="_LccCQOFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdM3I-FIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+ARROW_UP" command="_LcY-2-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdNeMeFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+ARROW_DOWN" command="_LcfFk-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdOFQuFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+ARROW_RIGHT" command="_LcWik-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdOFSOFIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+C" command="_LcfFneFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdPTZeFIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+\" command="_LcY-1eFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdVaA-FIEeW3CZUaZ-3o8w" keySequence="CTRL+2 R" command="_LcfFr-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdVaBeFIEeW3CZUaZ-3o8w" keySequence="CTRL+2 L" command="_LcaM8OFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdVaB-FIEeW3CZUaZ-3o8w" keySequence="CTRL+2 F" command="_LcZmEOFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdYdU-FIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+ARROW_LEFT" command="_Lcd3VeFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdZEYeFIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+ARROW_DOWN" command="_LcfFp-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdaShOFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+E" command="_LccpWeFIEeW3CZUaZ-3o8w"/>
+ </bindingTables>
+ <bindingTables xmi:id="_Lc6jQ-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.sse.ui.structuredTextEditorScope" bindingContext="_Lciv4-FIEeW3CZUaZ-3o8w">
+ <bindings xmi:id="_Lc6jROFIEeW3CZUaZ-3o8w" keySequence="CTRL+I" command="_LcXJueFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_Lc8_i-FIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+F" command="_LcY-2OFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_Lc9mkOFIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+>" command="_LcYX9uFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_Lc-NpuFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+ARROW_UP" command="_LccCIOFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdBQ8eFIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+P" command="_Lca0G-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdBQ-OFIEeW3CZUaZ-3o8w" keySequence="F3" command="_LcY-_eFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdE7WOFIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+/" command="_LcZl6OFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdGwhOFIEeW3CZUaZ-3o8w" keySequence="CTRL+O" command="_LceeoeFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdM3IeFIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+A" command="_Lca0POFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdM3JOFIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+ARROW_UP" command="_LcfsluFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdNeMuFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+ARROW_DOWN" command="_LcYX1uFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdOFQ-FIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+ARROW_RIGHT" command="_LcfFj-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdOsUOFIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+C" command="_LcYXxOFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdP6cOFIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+\" command="_LceegeFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdYdVOFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+ARROW_LEFT" command="_LcbbE-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdZEYuFIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+ARROW_DOWN" command="_LcXw0-FIEeW3CZUaZ-3o8w"/>
+ </bindingTables>
+ <bindingTables xmi:id="_Lc6jReFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.textEditorScope" bindingContext="_Lciv2OFIEeW3CZUaZ-3o8w">
+ <bindings xmi:id="_Lc7KUOFIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+J" command="_LceehuFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_Lc7KVeFIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+NUMPAD_MULTIPLY" command="_LccCROFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_Lc8Yc-FIEeW3CZUaZ-3o8w" keySequence="CTRL+ARROW_UP" command="_LcfFeeFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_Lc9mkeFIEeW3CZUaZ-3o8w" keySequence="ALT+CTRL+ARROW_UP" command="_LcaND-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_Lc9mleFIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+INSERT" command="_LcZmAOFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_Lc-NoOFIEeW3CZUaZ-3o8w" keySequence="ALT+ARROW_DOWN" command="_LceeceFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_Lc-NouFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+A" command="_Lcd3cuFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_Lc-NqOFIEeW3CZUaZ-3o8w" keySequence="CTRL+ARROW_DOWN" command="_LcfFdeFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdCfEOFIEeW3CZUaZ-3o8w" keySequence="CTRL+K" command="_Lcfsq-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdCfEeFIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+K" command="_LcbbIuFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdCfEuFIEeW3CZUaZ-3o8w" keySequence="CTRL+J" command="_LcdQaeFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdCfE-FIEeW3CZUaZ-3o8w" keySequence="CTRL+L" command="_LceeeuFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdCfFeFIEeW3CZUaZ-3o8w" keySequence="INSERT" command="_LccCU-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdCfF-FIEeW3CZUaZ-3o8w" keySequence="CTRL+F10" command="_Lcd3e-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdDGIeFIEeW3CZUaZ-3o8w" keySequence="SHIFT+CR" command="_LcdQdeFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdDGIuFIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+CR" command="_LcXJrOFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdDGI-FIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+X" command="_Lca0HOFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdDGJOFIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+Y" command="_Lcd3jOFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdDGJeFIEeW3CZUaZ-3o8w" keySequence="END" command="_LcbbMOFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdDGJuFIEeW3CZUaZ-3o8w" keySequence="HOME" command="_Lcd3bOFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdDtMOFIEeW3CZUaZ-3o8w" keySequence="F2" command="_LccCUOFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdDtMeFIEeW3CZUaZ-3o8w" keySequence="ALT+/" command="_LcgTr-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdLB9eFIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+Q" command="_LcZl_uFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdLB9uFIEeW3CZUaZ-3o8w" keySequence="CTRL+NUMPAD_DIVIDE" command="_LcaM9uFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdLpAOFIEeW3CZUaZ-3o8w" keySequence="CTRL+NUMPAD_MULTIPLY" command="_LcdQeOFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdLpAuFIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+NUMPAD_DIVIDE" command="_LcdQbuFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdLpA-FIEeW3CZUaZ-3o8w" keySequence="CTRL+NUMPAD_ADD" command="_LcY_AeFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdLpBOFIEeW3CZUaZ-3o8w" keySequence="CTRL+NUMPAD_SUBTRACT" command="_LcaNGeFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdLpBuFIEeW3CZUaZ-3o8w" keySequence="CTRL+HOME" command="_LcfFluFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdMQEOFIEeW3CZUaZ-3o8w" keySequence="SHIFT+END" command="_LcXJqOFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdMQFeFIEeW3CZUaZ-3o8w" keySequence="CTRL+DEL" command="_LcXww-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdMQF-FIEeW3CZUaZ-3o8w" keySequence="ALT+ARROW_UP" command="_LcaNI-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdNeM-FIEeW3CZUaZ-3o8w" keySequence="CTRL+BS" command="_LcYXwuFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdNeNOFIEeW3CZUaZ-3o8w" keySequence="CTRL+END" command="_LcXJxuFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdNeNeFIEeW3CZUaZ-3o8w" keySequence="ALT+CTRL+J" command="_LcaNBeFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdOFROFIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+ARROW_LEFT" command="_LcZl9-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdZrcOFIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+DEL" command="_LcXw2eFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdZrceFIEeW3CZUaZ-3o8w" keySequence="ALT+CTRL+ARROW_DOWN" command="_LcaNKOFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdaSg-FIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+ARROW_RIGHT" command="_LcgTkuFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdbgoOFIEeW3CZUaZ-3o8w" keySequence="SHIFT+HOME" command="_Lceeg-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdcHseFIEeW3CZUaZ-3o8w" keySequence="CTRL+ARROW_LEFT" command="_LcXwz-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdcuweFIEeW3CZUaZ-3o8w" keySequence="CTRL+D" command="_LcY-2uFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdcuwuFIEeW3CZUaZ-3o8w" keySequence="CTRL+ARROW_RIGHT" command="_LcfFo-FIEeW3CZUaZ-3o8w"/>
+ </bindingTables>
+ <bindingTables xmi:id="_Lc7KU-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.contexts.window" bindingContext="_LbY5ReFIEeW3CZUaZ-3o8w">
+ <bindings xmi:id="_Lc7KVOFIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+NUMPAD_MULTIPLY" command="_LccCK-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_Lc7xYOFIEeW3CZUaZ-3o8w" keySequence="ALT+ARROW_LEFT" command="_Lcd3guFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_Lc7xYuFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+D P" command="_LcfsseFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_Lc7xY-FIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+D O" command="_LccpNeFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_Lc7xZOFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+D E" command="_LcY-1-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_Lc8YcOFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+D Q" command="_Lceem-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_Lc8YceFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+D X" command="_LcZl-eFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_Lc8YcuFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+D R" command="_LcfFmeFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_Lc8YdOFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+D T" command="_Lcd3XeFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_Lc8YdeFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+D A" command="_LcaNFeFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_Lc8_gOFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+D J" command="_LcfskuFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_Lc8_geFIEeW3CZUaZ-3o8w" keySequence="ALT+C" command="_LcbbJ-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_Lc8_hOFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+G" command="_LcaNJOFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_Lc8_jOFIEeW3CZUaZ-3o8w" keySequence="ALT+CTRL+SHIFT+ARROW_RIGHT" command="_LcXJvOFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_Lc9mkuFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+J" command="_LcgTs-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_Lc-0sOFIEeW3CZUaZ-3o8w" keySequence="CTRL+B" command="_LccCKuFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_Lc-0seFIEeW3CZUaZ-3o8w" keySequence="ALT+ARROW_RIGHT" command="_LcaNCOFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_Lc-0uuFIEeW3CZUaZ-3o8w" keySequence="CTRL+F11" command="_LcaNDuFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_Lc-0u-FIEeW3CZUaZ-3o8w" keySequence="F11" command="_LcXwxeFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_Lc_bwOFIEeW3CZUaZ-3o8w" keySequence="CTRL+BREAK" command="_LcfFkOFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_Lc_bwuFIEeW3CZUaZ-3o8w" keySequence="ALT+X" command="_LcXwwOFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_Lc_bxeFIEeW3CZUaZ-3o8w" keySequence="SHIFT+F5" command="_LccpQeFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdAC0OFIEeW3CZUaZ-3o8w" keySequence="CTRL+U" command="_LcgTtuFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdAC0eFIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+N" command="_LcbbT-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdAp4uFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+R" command="_LcZl9eFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdBQ9uFIEeW3CZUaZ-3o8w" keySequence="F3" command="_LcZmAeFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdB4AeFIEeW3CZUaZ-3o8w" keySequence="SHIFT+F2" command="_LcfshOFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdB4BOFIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+R" command="_LcYX--FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdB4BeFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+W" command="_LccpYuFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdB4BuFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+N" command="_LcXwweFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdB4B-FIEeW3CZUaZ-3o8w" keySequence="CTRL+3" command="_LcgTleFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdDGIOFIEeW3CZUaZ-3o8w" keySequence="CTRL+Q" command="_LcZmHeFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdDGJ-FIEeW3CZUaZ-3o8w" keySequence="F2" command="_LccpZuFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdEUQOFIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+U" command="_LccCRuFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdEUQuFIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+T" command="_LcY-_OFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdEURuFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+L" command="_LcfslOFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdE7UOFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+M" command="_Lcfsn-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdE7UuFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+T" command="_LcaNEuFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdE7VOFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+Z" command="_LcXJsuFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdFiYOFIEeW3CZUaZ-3o8w" keySequence="CTRL+-" command="_LcZl9OFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdFiZuFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+V" command="_LccpUeFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdGJcuFIEeW3CZUaZ-3o8w" keySequence="ALT+F5" command="_LcYX8eFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdGJc-FIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+P" command="_Lcd3g-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdGJdeFIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+F12" command="_LcfsmeFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdGwheFIEeW3CZUaZ-3o8w" keySequence="CTRL+F12" command="_Lcd3UOFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdGwhuFIEeW3CZUaZ-3o8w" keySequence="ALT+CTRL+SHIFT+F12" command="_LcfFqOFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdHXkOFIEeW3CZUaZ-3o8w" keySequence="CTRL+F9" command="_LccCXeFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdHXkuFIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+F9" command="_LcXwteFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdHXk-FIEeW3CZUaZ-3o8w" keySequence="F4" command="_Lcd3d-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdH-oeFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+S" command="_LccpNuFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdH-p-FIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+O" command="_LcZmEuFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdIlsOFIEeW3CZUaZ-3o8w" keySequence="ALT+CTRL+SHIFT+M" command="_LccpVOFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdIluOFIEeW3CZUaZ-3o8w" keySequence="ALT+V" command="_LcdQaOFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdIlvuFIEeW3CZUaZ-3o8w" keySequence="CTRL+N" command="_LcYX6-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdJMweFIEeW3CZUaZ-3o8w" keySequence="CTRL+W" command="_LcYX6eFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdJMwuFIEeW3CZUaZ-3o8w" keySequence="CTRL+F4" command="_LcYX6eFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdJMw-FIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+W" command="_Lcfsw-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdJMxOFIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+F4" command="_Lcfsw-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdJMxeFIEeW3CZUaZ-3o8w" keySequence="CTRL+S" command="_Lcd3ceFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdJMxuFIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+S" command="_LcY-1OFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdJMx-FIEeW3CZUaZ-3o8w" keySequence="CTRL+P" command="_LcfFe-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdJMyeFIEeW3CZUaZ-3o8w" keySequence="ALT+CR" command="_LcaNIOFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdJz0OFIEeW3CZUaZ-3o8w" keySequence="F5" command="_LccpTeFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdJz2eFIEeW3CZUaZ-3o8w" keySequence="DEL" command="_LcXJyOFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdJz2uFIEeW3CZUaZ-3o8w" keySequence="CTRL+." command="_LcYX0eFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdKa4OFIEeW3CZUaZ-3o8w" keySequence="CTRL+," command="_LcXwu-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdKa4eFIEeW3CZUaZ-3o8w" keySequence="ALT+-" command="_LcZl6eFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdKa4uFIEeW3CZUaZ-3o8w" keySequence="F12" command="_LcZmEeFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdKa4-FIEeW3CZUaZ-3o8w" keySequence="CTRL+M" command="_LcY-3-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdKa5OFIEeW3CZUaZ-3o8w" keySequence="CTRL+F6" command="_LcXw2-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdKa5eFIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+F6" command="_LcdQbOFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdKa5uFIEeW3CZUaZ-3o8w" keySequence="CTRL+F7" command="_LcaNHuFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdLB8OFIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+F7" command="_LcY-9-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdLB8eFIEeW3CZUaZ-3o8w" keySequence="CTRL+F8" command="_LcgTreFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdLB8uFIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+F8" command="_LcY-_uFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdLB8-FIEeW3CZUaZ-3o8w" keySequence="ALT+F7" command="_Lcd3f-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdLB9OFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+F7" command="_LcdQWOFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdLpAeFIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+NUMPAD_DIVIDE" command="_LcaM9OFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdMQEuFIEeW3CZUaZ-3o8w" keySequence="CTRL+G" command="_LcYX2OFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdMQFOFIEeW3CZUaZ-3o8w" keySequence="CTRL+DEL" command="_LcZmDeFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdM3IOFIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+A" command="_LcZmBOFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdNeNuFIEeW3CZUaZ-3o8w" keySequence="CTRL+H" command="_LcfFl-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdOsUeFIEeW3CZUaZ-3o8w" keySequence="ALT+CTRL+SHIFT+ARROW_UP" command="_LceebOFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdOsUuFIEeW3CZUaZ-3o8w" keySequence="ALT+CTRL+SHIFT+A" command="_LccCTOFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdOsU-FIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+H" command="_LcXJpOFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdPTYOFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+I" command="_LcYX7eFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdP6cuFIEeW3CZUaZ-3o8w" keySequence="CTRL+E" command="_LccCXuFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdP6c-FIEeW3CZUaZ-3o8w" keySequence="CTRL+=" command="_LcY_D-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdQhgOFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+Q C" command="_LcbbI-FIEeW3CZUaZ-3o8w">
+ <parameters xmi:id="_LdQhgeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.views.showView.viewId" name="org.eclipse.ui.views.showView.viewId" value="org.eclipse.ui.console.ConsoleView"/>
+ </bindings>
+ <bindings xmi:id="_LdRIkOFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+Q H" command="_LcbbI-FIEeW3CZUaZ-3o8w">
+ <parameters xmi:id="_LdRIkeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.views.showView.viewId" name="org.eclipse.ui.views.showView.viewId" value="org.eclipse.ui.cheatsheets.views.CheatSheetView"/>
+ </bindings>
+ <bindings xmi:id="_LdRIkuFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+Q Z" command="_LcbbI-FIEeW3CZUaZ-3o8w">
+ <parameters xmi:id="_LdRIk-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.views.showView.viewId" name="org.eclipse.ui.views.showView.viewId" value="org.eclipse.team.ui.GenericHistoryView"/>
+ </bindings>
+ <bindings xmi:id="_LdRIlOFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+Q Y" command="_LcbbI-FIEeW3CZUaZ-3o8w">
+ <parameters xmi:id="_LdRIleFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.views.showView.viewId" name="org.eclipse.ui.views.showView.viewId" value="org.eclipse.team.sync.views.SynchronizeView"/>
+ </bindings>
+ <bindings xmi:id="_LdRvoOFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+Q S" command="_LcbbI-FIEeW3CZUaZ-3o8w">
+ <parameters xmi:id="_LdRvoeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.views.showView.viewId" name="org.eclipse.ui.views.showView.viewId" value="org.eclipse.search.ui.views.SearchView"/>
+ </bindings>
+ <bindings xmi:id="_LdRvouFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+X P" command="_LcfFkuFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdRvo-FIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+X O" command="_LcY-5OFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdSWsOFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+X E" command="_LcgTnOFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdSWseFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+Q K" command="_LcbbI-FIEeW3CZUaZ-3o8w">
+ <parameters xmi:id="_LdSWsuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.views.showView.viewId" name="org.eclipse.ui.views.showView.viewId" value="org.eclipse.mylyn.tasks.ui.views.tasks"/>
+ </bindings>
+ <bindings xmi:id="_LdS9wOFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+X M" command="_LcfsneFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdS9weFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+Q V" command="_LcbbI-FIEeW3CZUaZ-3o8w">
+ <parameters xmi:id="_LdS9wuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.views.showView.viewId" name="org.eclipse.ui.views.showView.viewId" value="org.eclipse.debug.ui.VariableView"/>
+ </bindings>
+ <bindings xmi:id="_LdS9w-FIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+Q B" command="_LcbbI-FIEeW3CZUaZ-3o8w">
+ <parameters xmi:id="_LdS9xOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.views.showView.viewId" name="org.eclipse.ui.views.showView.viewId" value="org.eclipse.debug.ui.BreakpointView"/>
+ </bindings>
+ <bindings xmi:id="_LdTk0OFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+X Q" command="_Lcd3iOFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdTk0eFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+X J" command="_LcfFiuFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdUL4OFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+X A" command="_LcgTpOFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdUL4eFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+X T" command="_LcaNH-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdUL4uFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+Q Q" command="_LcbbI-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdUy8OFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+Q X" command="_LcbbI-FIEeW3CZUaZ-3o8w">
+ <parameters xmi:id="_LdUy8eFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.views.showView.viewId" name="org.eclipse.ui.views.showView.viewId" value="org.eclipse.ui.views.ProblemView"/>
+ </bindings>
+ <bindings xmi:id="_LdUy8uFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+Q O" command="_LcbbI-FIEeW3CZUaZ-3o8w">
+ <parameters xmi:id="_LdUy8-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.views.showView.viewId" name="org.eclipse.ui.views.showView.viewId" value="org.eclipse.ui.views.ContentOutline"/>
+ </bindings>
+ <bindings xmi:id="_LdVaAOFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+Q L" command="_LcbbI-FIEeW3CZUaZ-3o8w">
+ <parameters xmi:id="_LdVaAeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.views.showView.viewId" name="org.eclipse.ui.views.showView.viewId" value="org.eclipse.pde.runtime.LogView"/>
+ </bindings>
+ <bindings xmi:id="_LdWBEOFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+X X" command="_LcdQW-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdWBEeFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+X R" command="_LceejOFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdWoIOFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+Q J" command="_LcbbI-FIEeW3CZUaZ-3o8w">
+ <parameters xmi:id="_LdWoIeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.views.showView.viewId" name="org.eclipse.ui.views.showView.viewId" value="org.eclipse.jdt.ui.JavadocView"/>
+ </bindings>
+ <bindings xmi:id="_LdWoI-FIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+Q D" command="_LcbbI-FIEeW3CZUaZ-3o8w">
+ <parameters xmi:id="_LdWoJOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.views.showView.viewId" name="org.eclipse.ui.views.showView.viewId" value="org.eclipse.jdt.ui.SourceView"/>
+ </bindings>
+ <bindings xmi:id="_LdXPMeFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+Q P" command="_LcbbI-FIEeW3CZUaZ-3o8w">
+ <parameters xmi:id="_LdXPMuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.views.showView.viewId" name="org.eclipse.ui.views.showView.viewId" value="org.eclipse.jdt.ui.PackageExplorer"/>
+ </bindings>
+ <bindings xmi:id="_LdX2QOFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+Q T" command="_LcbbI-FIEeW3CZUaZ-3o8w">
+ <parameters xmi:id="_LdX2QeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.views.showView.viewId" name="org.eclipse.ui.views.showView.viewId" value="org.eclipse.jdt.ui.TypeHierarchy"/>
+ </bindings>
+ <bindings xmi:id="_LdX2Q-FIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+C" command="_LcaNJ-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdYdUeFIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+B" command="_LcZmF-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdZEY-FIEeW3CZUaZ-3o8w" keySequence="ALT+CTRL+G" command="_LccCWuFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdZrcuFIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+E" command="_LcY-9uFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdaSgOFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+F" command="_LcgTm-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_Lda5kOFIEeW3CZUaZ-3o8w" keySequence="SHIFT+DEL" command="_LcdQXuFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_Lda5kuFIEeW3CZUaZ-3o8w" keySequence="CTRL+F" command="_LcZl--FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdcHsOFIEeW3CZUaZ-3o8w" keySequence="CTRL+#" command="_LceegOFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdcHsuFIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+G" command="_LcXwueFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_Ldcuw-FIEeW3CZUaZ-3o8w" keySequence="ALT+CTRL+H" command="_LcXwveFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LddV0eFIEeW3CZUaZ-3o8w" keySequence="ALT+CTRL+SHIFT+ARROW_DOWN" command="_Lcfsm-FIEeW3CZUaZ-3o8w"/>
+ </bindingTables>
+ <bindingTables xmi:id="_Lc8_guFIEeW3CZUaZ-3o8w" elementId="org.eclipse.datatools.sqltools.SQLEditorScope" bindingContext="_Lciv3OFIEeW3CZUaZ-3o8w">
+ <bindings xmi:id="_Lc8_g-FIEeW3CZUaZ-3o8w" keySequence="ALT+C" command="_LcbbKeFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_Lc9mmOFIEeW3CZUaZ-3o8w" keySequence="ALT+CTRL+D" command="_LcYX9-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_Lc_bweFIEeW3CZUaZ-3o8w" keySequence="ALT+CTRL+X" command="_LccpXuFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_Lc_bw-FIEeW3CZUaZ-3o8w" keySequence="ALT+X" command="_LcbbG-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_Lc_bxOFIEeW3CZUaZ-3o8w" keySequence="ALT+Q" command="_LcgToeFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdAC0uFIEeW3CZUaZ-3o8w" keySequence="CTRL+/" command="_LcaNEOFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdAp6eFIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+P" command="_LcfspeFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdDtN-FIEeW3CZUaZ-3o8w" keySequence="ALT+CTRL+R" command="_Lceeb-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdIlteFIEeW3CZUaZ-3o8w" keySequence="ALT+S" command="_LcZl5uFIEeW3CZUaZ-3o8w"/>
+ </bindingTables>
+ <bindingTables xmi:id="_Lc8_heFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ant.ui.AntEditorScope" bindingContext="_Lciv2eFIEeW3CZUaZ-3o8w">
+ <bindings xmi:id="_Lc8_huFIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+F" command="_LcaM_eFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdAC2uFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+O" command="_LcfsvOFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdAp4eFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+R" command="_LccCNeFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdBQ9eFIEeW3CZUaZ-3o8w" keySequence="F3" command="_LcY_B-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdB4AOFIEeW3CZUaZ-3o8w" keySequence="SHIFT+F2" command="_LcdQUOFIEeW3CZUaZ-3o8w"/>
+ </bindingTables>
+ <bindingTables xmi:id="_Lc8_iOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.pde.ui.pdeEditorContext" bindingContext="_LcjW7-FIEeW3CZUaZ-3o8w">
+ <bindings xmi:id="_Lc8_ieFIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+F" command="_LcdQauFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdGwguFIEeW3CZUaZ-3o8w" keySequence="CTRL+O" command="_LcfsoeFIEeW3CZUaZ-3o8w"/>
+ </bindingTables>
+ <bindingTables xmi:id="_Lc9mk-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.javascriptViewScope" bindingContext="_Lciv3uFIEeW3CZUaZ-3o8w">
+ <bindings xmi:id="_Lc9mlOFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+J" command="_LcYX5OFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdAp6OFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+R" command="_LcXJw-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdBQ9-FIEeW3CZUaZ-3o8w" keySequence="F3" command="_LcbbK-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdB4AuFIEeW3CZUaZ-3o8w" keySequence="SHIFT+F2" command="_LcXwyOFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdEUQeFIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+U" command="_Lca0J-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdEUR-FIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+L" command="_LcYX0uFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdE7UeFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+M" command="_LcaNLeFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdE7U-FIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+T" command="_LcXJpuFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdE7VeFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+Z" command="_LcXJquFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdFiaOFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+V" command="_LcZmB-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdHXleFIEeW3CZUaZ-3o8w" keySequence="F4" command="_LcgTsuFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdH-o-FIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+S" command="_Lca0EeFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdH-quFIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+O" command="_LcYX3eFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdMQE-FIEeW3CZUaZ-3o8w" keySequence="CTRL+G" command="_LccCPuFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdOsVOFIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+H" command="_LcZl7eFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdPTY-FIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+I" command="_LcdQU-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdWoIuFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+Q J" command="_Lcd3auFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdXPMOFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+Q D" command="_Lcfsu-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdXPM-FIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+Q P" command="_Lcd3WOFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdX2QuFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+Q T" command="_LcZl7-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdYdUOFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+C" command="_LcfFrOFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdcHs-FIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+G" command="_LccpPuFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LddV0OFIEeW3CZUaZ-3o8w" keySequence="ALT+CTRL+H" command="_LcgTneFIEeW3CZUaZ-3o8w"/>
+ </bindingTables>
+ <bindingTables xmi:id="_Lc9mmeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.serverViewScope" bindingContext="_Lciv1uFIEeW3CZUaZ-3o8w">
+ <bindings xmi:id="_Lc9mmuFIEeW3CZUaZ-3o8w" keySequence="ALT+CTRL+D" command="_Lca0OuFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdDtNeFIEeW3CZUaZ-3o8w" keySequence="ALT+CTRL+P" command="_LcfFceFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdDtNuFIEeW3CZUaZ-3o8w" keySequence="ALT+CTRL+S" command="_LcdQeuFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdDtOOFIEeW3CZUaZ-3o8w" keySequence="ALT+CTRL+R" command="_LcfFguFIEeW3CZUaZ-3o8w"/>
+ </bindingTables>
+ <bindingTables xmi:id="_Lc9mm-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.tasks.ui.views.tasks" bindingContext="_Lciv0-FIEeW3CZUaZ-3o8w">
+ <bindings xmi:id="_Lc9mnOFIEeW3CZUaZ-3o8w" keySequence="ALT+ARROW_DOWN" command="_LceejeFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_Lc-NpOFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+ARROW_UP" command="_LcXJtuFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdAp5eFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+R" command="_LcXwx-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdCfFOFIEeW3CZUaZ-3o8w" keySequence="INSERT" command="_LcdQfuFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdDtMuFIEeW3CZUaZ-3o8w" keySequence="CTRL+CR" command="_LcZmH-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdHXlOFIEeW3CZUaZ-3o8w" keySequence="F4" command="_Lceej-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdHXl-FIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+U" command="_LcY_AOFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdMQFuFIEeW3CZUaZ-3o8w" keySequence="ALT+ARROW_UP" command="_LcYX6uFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdNeMOFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+ARROW_DOWN" command="_LcgTmuFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdNeN-FIEeW3CZUaZ-3o8w" keySequence="SHIFT+INSERT" command="_Lceec-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdPTYeFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+I" command="_LcdQfeFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdX2ROFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+C" command="_LcfFjOFIEeW3CZUaZ-3o8w"/>
+ </bindingTables>
+ <bindingTables xmi:id="_Lc-0suFIEeW3CZUaZ-3o8w" elementId="org.eclipse.debug.ui.memory.abstractasynctablerendering" bindingContext="_LcjW6-FIEeW3CZUaZ-3o8w">
+ <bindings xmi:id="_Lc-0s-FIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+," command="_LcfsueFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_Lc-0tOFIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+." command="_LcWikOFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdMQEeFIEeW3CZUaZ-3o8w" keySequence="CTRL+G" command="_LcY-9eFIEeW3CZUaZ-3o8w"/>
+ </bindingTables>
+ <bindingTables xmi:id="_Lc-0teFIEeW3CZUaZ-3o8w" elementId="org.eclipse.debug.ui.memoryview" bindingContext="_LcjW8uFIEeW3CZUaZ-3o8w">
+ <bindings xmi:id="_Lc-0tuFIEeW3CZUaZ-3o8w" keySequence="ALT+CTRL+N" command="_LccCUuFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_Lc-0t-FIEeW3CZUaZ-3o8w" keySequence="ALT+CTRL+M" command="_LcXJs-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdBQ8uFIEeW3CZUaZ-3o8w" keySequence="CTRL+T" command="_LcZmHuFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdIlveFIEeW3CZUaZ-3o8w" keySequence="CTRL+N" command="_LcZl6-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdJMwOFIEeW3CZUaZ-3o8w" keySequence="CTRL+W" command="_LcY--eFIEeW3CZUaZ-3o8w"/>
+ </bindingTables>
+ <bindingTables xmi:id="_Lc-0uOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.debug.ui.debugging" bindingContext="_LcjW6uFIEeW3CZUaZ-3o8w">
+ <bindings xmi:id="_Lc-0ueFIEeW3CZUaZ-3o8w" keySequence="CTRL+R" command="_LcYX9OFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_Lc-0vOFIEeW3CZUaZ-3o8w" keySequence="CTRL+F2" command="_LcY-8eFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_Lc-0veFIEeW3CZUaZ-3o8w" keySequence="F8" command="_LcgTt-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_Lc_bxuFIEeW3CZUaZ-3o8w" keySequence="F6" command="_LcXJsOFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_Lc_bx-FIEeW3CZUaZ-3o8w" keySequence="F7" command="_LcbbLuFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdE7WeFIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+3" command="_LcXJq-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdFiYeFIEeW3CZUaZ-3o8w" keySequence="CTRL+F5" command="_LceecuFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdJMyuFIEeW3CZUaZ-3o8w" keySequence="F5" command="_LcfFd-FIEeW3CZUaZ-3o8w"/>
+ </bindingTables>
+ <bindingTables xmi:id="_LdAC1OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.propertiesEditorScope" bindingContext="_LcjW9eFIEeW3CZUaZ-3o8w">
+ <bindings xmi:id="_LdAC1eFIEeW3CZUaZ-3o8w" keySequence="CTRL+/" command="_LcXJuOFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdAC2OFIEeW3CZUaZ-3o8w" keySequence="CTRL+7" command="_LcXJuOFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdOFRuFIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+C" command="_LcXJuOFIEeW3CZUaZ-3o8w"/>
+ </bindingTables>
+ <bindingTables xmi:id="_LdAp4-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.jst.jsp.ui.structured.text.editor.jsp.scope" bindingContext="_LcjW7uFIEeW3CZUaZ-3o8w">
+ <bindings xmi:id="_LdAp5OFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+R" command="_Lcd3WuFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdFiZ-FIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+V" command="_LcaNAuFIEeW3CZUaZ-3o8w"/>
+ </bindingTables>
+ <bindingTables xmi:id="_LdAp5uFIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.tasks.ui.editors.task" bindingContext="_LcjW5OFIEeW3CZUaZ-3o8w">
+ <bindings xmi:id="_LdAp5-FIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+R" command="_LcXwx-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdGJd-FIEeW3CZUaZ-3o8w" keySequence="CTRL+O" command="_LcbbHOFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdHXmOFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+U" command="_LcY_AOFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdH-ouFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+S" command="_LcbbNuFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdH-peFIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+M" command="_LcYX0OFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdPTYuFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+I" command="_LcdQfeFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdX2ReFIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+C" command="_LcfFjOFIEeW3CZUaZ-3o8w"/>
+ </bindingTables>
+ <bindingTables xmi:id="_LdAp6-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.core.runtime.xml" bindingContext="_Lciv6eFIEeW3CZUaZ-3o8w">
+ <bindings xmi:id="_LdAp7OFIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+P" command="_Lcfsv-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdaSguFIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+D" command="_Lca0GuFIEeW3CZUaZ-3o8w"/>
+ </bindingTables>
+ <bindingTables xmi:id="_LdDtM-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.debug.ui.BreakpointView" bindingContext="_Lciv1eFIEeW3CZUaZ-3o8w">
+ <bindings xmi:id="_LdDtNOFIEeW3CZUaZ-3o8w" keySequence="CTRL+CR" command="_LccpTOFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdJMyOFIEeW3CZUaZ-3o8w" keySequence="ALT+CR" command="_LcfFfOFIEeW3CZUaZ-3o8w"/>
+ </bindingTables>
+ <bindingTables xmi:id="_LdFiYuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jst.jsf.facesconfig.editorContext" bindingContext="_LcjW-uFIEeW3CZUaZ-3o8w">
+ <bindings xmi:id="_LdFiY-FIEeW3CZUaZ-3o8w" keySequence="CTRL+F5" command="_Lcd3f-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdGJcOFIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+F5" command="_LcdQWOFIEeW3CZUaZ-3o8w"/>
+ </bindingTables>
+ <bindingTables xmi:id="_LdFiZOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jst.pagedesigner.editorContext" bindingContext="_LcjW6eFIEeW3CZUaZ-3o8w">
+ <bindings xmi:id="_LdFiZeFIEeW3CZUaZ-3o8w" keySequence="CTRL+F5" command="_Lcd3f-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdFiaeFIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+F10" command="_LcZmAuFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdFiauFIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+F11" command="_Lcd3h-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdGJceFIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+F5" command="_LcdQWOFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdGJdOFIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+F12" command="_Lcfsk-FIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdHXkeFIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+F9" command="_Lca0P-FIEeW3CZUaZ-3o8w"/>
+ </bindingTables>
+ <bindingTables xmi:id="_LdGwgOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.wikitext.ui.editor.markupSourceContext" bindingContext="_LcjW9-FIEeW3CZUaZ-3o8w">
+ <bindings xmi:id="_LdGwgeFIEeW3CZUaZ-3o8w" keySequence="CTRL+O" command="_Lca0LOFIEeW3CZUaZ-3o8w"/>
+ </bindingTables>
+ <bindingTables xmi:id="_LdH-qOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.wikitext.tasks.ui.markupSourceContext" bindingContext="_LcjW-OFIEeW3CZUaZ-3o8w">
+ <bindings xmi:id="_LdH-qeFIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+O" command="_Lca0LOFIEeW3CZUaZ-3o8w"/>
+ </bindingTables>
+ <bindingTables xmi:id="_LdH-q-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.internal.wikitext.ui.editor.basicMarkupSourceContext" bindingContext="_LcjW9uFIEeW3CZUaZ-3o8w">
+ <bindings xmi:id="_LdH-rOFIEeW3CZUaZ-3o8w" keySequence="F1" command="_LcYX2eFIEeW3CZUaZ-3o8w"/>
+ </bindingTables>
+ <bindingTables xmi:id="_LdIlseFIEeW3CZUaZ-3o8w" elementId="org.eclipse.tm.terminal.TerminalContext" bindingContext="_LcjW9OFIEeW3CZUaZ-3o8w">
+ <bindings xmi:id="_LdIlsuFIEeW3CZUaZ-3o8w" keySequence="ALT+N" command="_Lca0FuFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdIls-FIEeW3CZUaZ-3o8w" keySequence="ALT+P" command="_Lca0FuFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdIltOFIEeW3CZUaZ-3o8w" keySequence="ALT+R" command="_Lca0FuFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdIltuFIEeW3CZUaZ-3o8w" keySequence="ALT+S" command="_Lca0FuFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdIlt-FIEeW3CZUaZ-3o8w" keySequence="ALT+T" command="_Lca0FuFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdIlueFIEeW3CZUaZ-3o8w" keySequence="ALT+V" command="_Lca0FuFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdIluuFIEeW3CZUaZ-3o8w" keySequence="ALT+W" command="_Lca0FuFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdMQGOFIEeW3CZUaZ-3o8w" keySequence="ALT+A" command="_Lca0FuFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdP6ceFIEeW3CZUaZ-3o8w" keySequence="ALT+G" command="_Lca0FuFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_Lda5k-FIEeW3CZUaZ-3o8w" keySequence="ALT+H" command="_Lca0FuFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdbgouFIEeW3CZUaZ-3o8w" keySequence="ALT+E" command="_Lca0FuFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdcuwOFIEeW3CZUaZ-3o8w" keySequence="ALT+F" command="_Lca0FuFIEeW3CZUaZ-3o8w"/>
+ </bindingTables>
+ <bindingTables xmi:id="_LdIlu-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.tm.terminal.EditContext" bindingContext="_Lciv4uFIEeW3CZUaZ-3o8w">
+ <bindings xmi:id="_LdIlvOFIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+V" command="_LccCMuFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_LdOFR-FIEeW3CZUaZ-3o8w" keySequence="CTRL+SHIFT+C" command="_LcZl-uFIEeW3CZUaZ-3o8w"/>
+ </bindingTables>
+ <bindingTables xmi:id="_LdJz0eFIEeW3CZUaZ-3o8w" elementId="org.eclipse.debug.ui.console" bindingContext="_Lciv1-FIEeW3CZUaZ-3o8w">
+ <bindings xmi:id="_LdJz0uFIEeW3CZUaZ-3o8w" keySequence="CTRL+Z" command="_LcY-5-FIEeW3CZUaZ-3o8w">
+ <tags>platform:win32</tags>
+ </bindings>
+ </bindingTables>
+ <bindingTables xmi:id="_LdJz1uFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.RepositoriesView" bindingContext="_Lciv0uFIEeW3CZUaZ-3o8w">
+ <bindings xmi:id="_LdJz1-FIEeW3CZUaZ-3o8w" keySequence="CTRL+V" command="_LcXwuuFIEeW3CZUaZ-3o8w"/>
+ <bindings xmi:id="_Ldbgo-FIEeW3CZUaZ-3o8w" keySequence="CTRL+C" command="_LccpN-FIEeW3CZUaZ-3o8w"/>
+ </bindingTables>
+ <bindingTables xmi:id="_LdM3JuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.breadcrumbEditorScope" bindingContext="_Lciv4OFIEeW3CZUaZ-3o8w">
+ <bindings xmi:id="_LdM3J-FIEeW3CZUaZ-3o8w" keySequence="ALT+SHIFT+B" command="_LcfFdOFIEeW3CZUaZ-3o8w"/>
+ </bindingTables>
+ <bindingTables xmi:id="_LdbgpOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.ReflogView" bindingContext="_LcjW5eFIEeW3CZUaZ-3o8w">
+ <bindings xmi:id="_LdbgpeFIEeW3CZUaZ-3o8w" keySequence="CTRL+C" command="_LcYX6OFIEeW3CZUaZ-3o8w"/>
+ </bindingTables>
+ <bindingTables xmi:id="_Lg8HoOFIEeW3CZUaZ-3o8w" bindingContext="_Lg7gkOFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_Lg8useFIEeW3CZUaZ-3o8w" bindingContext="_Lg8usOFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_Lg8us-FIEeW3CZUaZ-3o8w" bindingContext="_Lg8usuFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_Lg8utuFIEeW3CZUaZ-3o8w" bindingContext="_Lg8uteFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_Lg9VwuFIEeW3CZUaZ-3o8w" bindingContext="_Lg9VweFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_Lg-j4eFIEeW3CZUaZ-3o8w" bindingContext="_Lg-j4OFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_Lg_K8eFIEeW3CZUaZ-3o8w" bindingContext="_Lg_K8OFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_Lg_yAeFIEeW3CZUaZ-3o8w" bindingContext="_Lg_yAOFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_Lg_yBOFIEeW3CZUaZ-3o8w" bindingContext="_Lg_yA-FIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_LhAZEuFIEeW3CZUaZ-3o8w" bindingContext="_LhAZEeFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_LhBnMeFIEeW3CZUaZ-3o8w" bindingContext="_LhBnMOFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_LhCOQeFIEeW3CZUaZ-3o8w" bindingContext="_LhCOQOFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_LhC1UeFIEeW3CZUaZ-3o8w" bindingContext="_LhC1UOFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_LhC1VOFIEeW3CZUaZ-3o8w" bindingContext="_LhC1U-FIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_LhDcYuFIEeW3CZUaZ-3o8w" bindingContext="_LhDcYeFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_LhDcZOFIEeW3CZUaZ-3o8w" bindingContext="_LhDcY-FIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_LhDcZuFIEeW3CZUaZ-3o8w" bindingContext="_LhDcZeFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_LhEDceFIEeW3CZUaZ-3o8w" bindingContext="_LhEDcOFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_LhEDc-FIEeW3CZUaZ-3o8w" bindingContext="_LhEDcuFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_LhEDdeFIEeW3CZUaZ-3o8w" bindingContext="_LhEDdOFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_LhEDd-FIEeW3CZUaZ-3o8w" bindingContext="_LhEDduFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_LhEqgeFIEeW3CZUaZ-3o8w" bindingContext="_LhEqgOFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_LhFRkeFIEeW3CZUaZ-3o8w" bindingContext="_LhFRkOFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_LhF4oeFIEeW3CZUaZ-3o8w" bindingContext="_LhF4oOFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_LhF4o-FIEeW3CZUaZ-3o8w" bindingContext="_LhF4ouFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_LhF4peFIEeW3CZUaZ-3o8w" bindingContext="_LhF4pOFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_LhF4p-FIEeW3CZUaZ-3o8w" bindingContext="_LhF4puFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_LhGfseFIEeW3CZUaZ-3o8w" bindingContext="_LhGfsOFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_LhGfs-FIEeW3CZUaZ-3o8w" bindingContext="_LhGfsuFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_LhGfteFIEeW3CZUaZ-3o8w" bindingContext="_LhGftOFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_LhGft-FIEeW3CZUaZ-3o8w" bindingContext="_LhGftuFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_LhHGweFIEeW3CZUaZ-3o8w" bindingContext="_LhHGwOFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_Lve58OFIEeW3CZUaZ-3o8w" bindingContext="_LveS4OFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_Lve58uFIEeW3CZUaZ-3o8w" bindingContext="_Lve58eFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_Lve59OFIEeW3CZUaZ-3o8w" bindingContext="_Lve58-FIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_Lve59uFIEeW3CZUaZ-3o8w" bindingContext="_Lve59eFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_LvfhAeFIEeW3CZUaZ-3o8w" bindingContext="_LvfhAOFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_LvfhA-FIEeW3CZUaZ-3o8w" bindingContext="_LvfhAuFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_LvfhBeFIEeW3CZUaZ-3o8w" bindingContext="_LvfhBOFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_LvfhB-FIEeW3CZUaZ-3o8w" bindingContext="_LvfhBuFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_LvgIEeFIEeW3CZUaZ-3o8w" bindingContext="_LvgIEOFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_LvgIE-FIEeW3CZUaZ-3o8w" bindingContext="_LvgIEuFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_LvgIFeFIEeW3CZUaZ-3o8w" bindingContext="_LvgIFOFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_LvruQeFIEeW3CZUaZ-3o8w" bindingContext="_LvruQOFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_LvsVUOFIEeW3CZUaZ-3o8w" bindingContext="_LvruQuFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_LvsVUuFIEeW3CZUaZ-3o8w" bindingContext="_LvsVUeFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_Lvs8YeFIEeW3CZUaZ-3o8w" bindingContext="_Lvs8YOFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_Lvs8Y-FIEeW3CZUaZ-3o8w" bindingContext="_Lvs8YuFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_LvtjceFIEeW3CZUaZ-3o8w" bindingContext="_LvtjcOFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_Lvtjc-FIEeW3CZUaZ-3o8w" bindingContext="_LvtjcuFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_LvtjdeFIEeW3CZUaZ-3o8w" bindingContext="_LvtjdOFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_LvuKgeFIEeW3CZUaZ-3o8w" bindingContext="_LvuKgOFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_LvuKg-FIEeW3CZUaZ-3o8w" bindingContext="_LvuKguFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_LvuKheFIEeW3CZUaZ-3o8w" bindingContext="_LvuKhOFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_LvuxkeFIEeW3CZUaZ-3o8w" bindingContext="_LvuxkOFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_Lvuxk-FIEeW3CZUaZ-3o8w" bindingContext="_LvuxkuFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_LvuxleFIEeW3CZUaZ-3o8w" bindingContext="_LvuxlOFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_LvvYoeFIEeW3CZUaZ-3o8w" bindingContext="_LvvYoOFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_Lvv_seFIEeW3CZUaZ-3o8w" bindingContext="_Lvv_sOFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_LvwmweFIEeW3CZUaZ-3o8w" bindingContext="_LvwmwOFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_LvxN0eFIEeW3CZUaZ-3o8w" bindingContext="_LvxN0OFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_Lvx04eFIEeW3CZUaZ-3o8w" bindingContext="_Lvx04OFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_Lvyb8eFIEeW3CZUaZ-3o8w" bindingContext="_Lvyb8OFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_LvzDAeFIEeW3CZUaZ-3o8w" bindingContext="_LvzDAOFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_LvzqEeFIEeW3CZUaZ-3o8w" bindingContext="_LvzqEOFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_Lv0RIeFIEeW3CZUaZ-3o8w" bindingContext="_Lv0RIOFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_Lv04MeFIEeW3CZUaZ-3o8w" bindingContext="_Lv04MOFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_Lv2GUeFIEeW3CZUaZ-3o8w" bindingContext="_Lv2GUOFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_Lv2tYeFIEeW3CZUaZ-3o8w" bindingContext="_Lv2tYOFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_Lv3UceFIEeW3CZUaZ-3o8w" bindingContext="_Lv3UcOFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_Lv37geFIEeW3CZUaZ-3o8w" bindingContext="_Lv37gOFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_Lv5JoeFIEeW3CZUaZ-3o8w" bindingContext="_Lv5JoOFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_Lv5wseFIEeW3CZUaZ-3o8w" bindingContext="_Lv5wsOFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_Lv6XweFIEeW3CZUaZ-3o8w" bindingContext="_Lv6XwOFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_Lv6-0eFIEeW3CZUaZ-3o8w" bindingContext="_Lv6-0OFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_Lv7l4eFIEeW3CZUaZ-3o8w" bindingContext="_Lv7l4OFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_Lv8M8eFIEeW3CZUaZ-3o8w" bindingContext="_Lv8M8OFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_Lv80AeFIEeW3CZUaZ-3o8w" bindingContext="_Lv80AOFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_Lv9bEeFIEeW3CZUaZ-3o8w" bindingContext="_Lv9bEOFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_Lv-CIeFIEeW3CZUaZ-3o8w" bindingContext="_Lv-CIOFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_Lv_QQeFIEeW3CZUaZ-3o8w" bindingContext="_Lv_QQOFIEeW3CZUaZ-3o8w"/>
+ <bindingTables xmi:id="_Lv_3UeFIEeW3CZUaZ-3o8w" bindingContext="_Lv_3UOFIEeW3CZUaZ-3o8w"/>
+ <rootContext xmi:id="_LbY5ROFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.contexts.dialogAndWindow" contributorURI="platform:/plugin/org.eclipse.ui.workbench" name="In Dialogs and Windows" description="Either a dialog or a window is open">
+ <children xmi:id="_LbY5ReFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.contexts.window" contributorURI="platform:/plugin/org.eclipse.ui.workbench" name="In Windows" description="A window is open">
+ <children xmi:id="_LbY5RuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.e4.ui.contexts.views" contributorURI="platform:/plugin/org.eclipse.ui.workbench" name="%bindingcontext.name.bindingView"/>
+ <children xmi:id="_Lciv0uFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.RepositoriesView" name="In Git Repositories View"/>
+ <children xmi:id="_Lciv0-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.tasks.ui.views.tasks" name="In Tasks View"/>
+ <children xmi:id="_Lciv1eFIEeW3CZUaZ-3o8w" elementId="org.eclipse.debug.ui.BreakpointView" name="In Breakpoints View" description="The breakpoints view context"/>
+ <children xmi:id="_Lciv1uFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.serverViewScope" name="In Servers View" description="In Servers View"/>
+ <children xmi:id="_Lciv1-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.debug.ui.console" name="In I/O Console" description="In I/O console"/>
+ <children xmi:id="_Lciv2OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.textEditorScope" name="Editing Text" description="Editing Text Context">
+ <children xmi:id="_Lciv2eFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ant.ui.AntEditorScope" name="Editing Ant Buildfiles" description="Editing Ant Buildfiles Context"/>
+ <children xmi:id="_Lciv2uFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.javaEditorScope" name="Editing JavaScript Source" description="Editing JavaScript Source Context">
+ <children xmi:id="_Lciv3uFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.javascriptViewScope" name="JavaScript View" description="JavaScript View Context"/>
+ </children>
+ <children xmi:id="_Lciv2-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.javaEditorScope" name="Editing Java Source" description="Editing Java Source Context"/>
+ <children xmi:id="_Lciv3OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.datatools.sqltools.SQLEditorScope" name="Editing SQL" description="Editing SQL Context"/>
+ <children xmi:id="_Lciv4-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.sse.ui.structuredTextEditorScope" name="Editing in Structured Text Editors" description="Editing in Structured Text Editors">
+ <children xmi:id="_Lciv5OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.html.core.htmlsource" name="Editing HTML Source" description="Editing HTML Source"/>
+ <children xmi:id="_Lciv5eFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.xml.occurrences" name="XML Source Occurrences" description="XML Source Occurrences"/>
+ <children xmi:id="_Lciv5uFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jst.jsp.core.jspsource" name="JSP Source" description="JSP Source"/>
+ <children xmi:id="_Lciv5-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.sse.comments" name="Source Comments in Structured Text Editors" description="Source Comments in Structured Text Editors"/>
+ <children xmi:id="_Lciv6OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.xml.selection" name="XML Source Selection" description="XML Source Selection"/>
+ <children xmi:id="_Lciv6eFIEeW3CZUaZ-3o8w" elementId="org.eclipse.core.runtime.xml" name="Editing XML Source" description="Editing XML Source"/>
+ <children xmi:id="_LcjW4OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.sse.hideFormat" name="Editing in Structured Text Editors" description="Editing in Structured Text Editors"/>
+ <children xmi:id="_LcjW4eFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.xml.dependencies" name="XML Source Dependencies" description="XML Source Dependencies"/>
+ <children xmi:id="_LcjW4uFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.html.occurrences" name="HTML Source Occurrences" description="HTML Source Occurrences"/>
+ <children xmi:id="_LcjW5uFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.xml.navigation" name="XML Source Navigation" description="XML Source Navigation"/>
+ <children xmi:id="_LcjW5-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.xml.cleanup" name="XML Source Cleanup" description="XML Source Cleanup"/>
+ <children xmi:id="_LcjW6OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.xml.grammar" name="XML Source Grammar" description="XML Source Grammar"/>
+ <children xmi:id="_LcjW7uFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jst.jsp.ui.structured.text.editor.jsp.scope" name="Editing JSP Source" description="Editing JSP Source"/>
+ <children xmi:id="_LcjW8-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.xml.comments" name="XML Source Comments" description="XML Source Comments"/>
+ <children xmi:id="_LcjW--FIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.css.core.csssource" name="Editing CSS Source" description="Editing CSS Source"/>
+ <children xmi:id="_LcjW_OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.xml.expand" name="XML Source Expand/Collapse" description="XML Source Expand/Collapse"/>
+ </children>
+ <children xmi:id="_LcjW5OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.tasks.ui.editors.task" name="In Tasks Editor"/>
+ <children xmi:id="_LcjW6eFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jst.pagedesigner.editorContext" name="Using Web Page Editor" description="Key binding context when using the web page editor"/>
+ <children xmi:id="_LcjW7-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.pde.ui.pdeEditorContext" name="PDE editor" description="The context used by PDE editors"/>
+ <children xmi:id="_LcjW8eFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.xsd.ui.text.editor.context" name="Editing XSD context"/>
+ <children xmi:id="_LcjW9eFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.propertiesEditorScope" name="Editing Properties Files" description="Editing Properties Files Context"/>
+ <children xmi:id="_LcjW9uFIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.internal.wikitext.ui.editor.basicMarkupSourceContext" name="WikiText Markup Source Context" description="WikiText markup editing context">
+ <children xmi:id="_LcjW9-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.wikitext.ui.editor.markupSourceContext" name="WikiText Markup Source Context" description="WikiText markup editing context"/>
+ <children xmi:id="_LcjW-OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.wikitext.tasks.ui.markupSourceContext" name="Task Markup Editor Source Context"/>
+ </children>
+ <children xmi:id="_LcjW-uFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jst.jsf.facesconfig.editorContext" name="In Faces Config Editor" description="Key binding context when using the Faces Config Editor"/>
+ </children>
+ <children xmi:id="_Lciv3-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.datatools.sqltools.schemaobjecteditor.schemaediting" name="Schema Object Editor" description="Schema Object Editor"/>
+ <children xmi:id="_Lciv4eFIEeW3CZUaZ-3o8w" elementId="org.eclipse.compare.compareEditorScope" name="Comparing in an Editor" description="Comparing in an Editor"/>
+ <children xmi:id="_Lciv4uFIEeW3CZUaZ-3o8w" elementId="org.eclipse.tm.terminal.EditContext" name="Terminal widget context" description="Override ALT+x menu access keys"/>
+ <children xmi:id="_LcjW5eFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.ReflogView" name="In Git Reflog View"/>
+ <children xmi:id="_LcjW6uFIEeW3CZUaZ-3o8w" elementId="org.eclipse.debug.ui.debugging" name="Debugging" description="Debugging programs">
+ <children xmi:id="_LcjW6-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.debug.ui.memory.abstractasynctablerendering" name="In Table Memory Rendering" description="In Table Memory Rendering"/>
+ <children xmi:id="_LcjW7OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.xsl.debug.ui.context" name="XSLT Debugging" description="Context for debugging XSLT"/>
+ <children xmi:id="_LcjW8OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.debug.ui.debugging" name="Debugging Java" description="Debugging Java programs"/>
+ </children>
+ <children xmi:id="_LcjW8uFIEeW3CZUaZ-3o8w" elementId="org.eclipse.debug.ui.memoryview" name="In Memory View" description="In memory view"/>
+ <children xmi:id="_LcjW-eFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.console.ConsoleView" name="In Console View" description="In Console View"/>
+ </children>
+ <children xmi:id="_LbY5R-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.contexts.dialog" contributorURI="platform:/plugin/org.eclipse.ui.workbench" name="In Dialogs" description="A dialog is open"/>
+ </rootContext>
+ <rootContext xmi:id="_Lciv0OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.xsd.ui.editor.designView" name="XSD Editor Design View" description="XSD Editor Design View"/>
+ <rootContext xmi:id="_Lciv0eFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.contexts.workbenchMenu" name="Workbench Menu" description="When no Workbench windows are active"/>
+ <rootContext xmi:id="_Lciv1OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.wsdl.ui.editor.designView" name="WSDL Editor Design View" description="WSDL Editor Design View"/>
+ <rootContext xmi:id="_Lciv3eFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.contexts.actionSet" name="Action Set" description="Parent context for action sets"/>
+ <rootContext xmi:id="_Lciv4OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.breadcrumbEditorScope" name="Editor Breadcrumb Navigation" description="Editor Breadcrumb Navigation Context"/>
+ <rootContext xmi:id="_LcjW4-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.wsdl.ui.editor.sourceView" name="WSDL Editor Source View" description="WSDL Editor Source View"/>
+ <rootContext xmi:id="_LcjW7eFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.xsd.ui.editor.sourceView" name="XSD Editor Source View" description="XSD Editor Source View"/>
+ <rootContext xmi:id="_LcjW9OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.tm.terminal.TerminalContext" name="Terminal widget context" description="Override ALT+x menu access keys"/>
+ <rootContext xmi:id="_Lg7gkOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ant.ui.actions.ManageBreakpointRulerAction" name="Auto::org.eclipse.ant.ui.actions.ManageBreakpointRulerAction"/>
+ <rootContext xmi:id="_Lg8usOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.debug.ui.actions.ManageBreakpointRulerAction" name="Auto::org.eclipse.jdt.debug.ui.actions.ManageBreakpointRulerAction"/>
+ <rootContext xmi:id="_Lg8usuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.emf.exporter.ui.GenModelExportActionDelegate.Editor" name="Auto::org.eclipse.emf.exporter.ui.GenModelExportActionDelegate.Editor"/>
+ <rootContext xmi:id="_Lg8uteFIEeW3CZUaZ-3o8w" elementId="org.eclipse.emf.importer.ui.GenModelReloadActionDelegate.Editor" name="Auto::org.eclipse.emf.importer.ui.GenModelReloadActionDelegate.Editor"/>
+ <rootContext xmi:id="_Lg9VweFIEeW3CZUaZ-3o8w" elementId="org.eclipse.emf.mapping.action.RemoveMappingActionID" name="Auto::org.eclipse.emf.mapping.action.RemoveMappingActionID"/>
+ <rootContext xmi:id="_Lg-j4OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.emf.mapping.action.TypeMatchMappingActionID" name="Auto::org.eclipse.emf.mapping.action.TypeMatchMappingActionID"/>
+ <rootContext xmi:id="_Lg_K8OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.emf.mapping.action.NameMatchMappingActionID" name="Auto::org.eclipse.emf.mapping.action.NameMatchMappingActionID"/>
+ <rootContext xmi:id="_Lg_yAOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.emf.mapping.action.CreateOneSidedMappingActionID" name="Auto::org.eclipse.emf.mapping.action.CreateOneSidedMappingActionID"/>
+ <rootContext xmi:id="_Lg_yA-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.emf.mapping.action.CreateMappingActionID" name="Auto::org.eclipse.emf.mapping.action.CreateMappingActionID"/>
+ <rootContext xmi:id="_LhAZEeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.emf.mapping.ecore2ecore.action.AddOuputRootActionID" name="Auto::org.eclipse.emf.mapping.ecore2ecore.action.AddOuputRootActionID"/>
+ <rootContext xmi:id="_LhBnMOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.emf.mapping.ecore2ecore.action.AddInputRootActionID" name="Auto::org.eclipse.emf.mapping.ecore2ecore.action.AddInputRootActionID"/>
+ <rootContext xmi:id="_LhCOQOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.debug.ui.SnippetExecute" name="Auto::org.eclipse.jdt.debug.ui.SnippetExecute"/>
+ <rootContext xmi:id="_LhC1UOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.debug.ui.SnippetDisplay" name="Auto::org.eclipse.jdt.debug.ui.SnippetDisplay"/>
+ <rootContext xmi:id="_LhC1U-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.debug.ui.SnippetInspect" name="Auto::org.eclipse.jdt.debug.ui.SnippetInspect"/>
+ <rootContext xmi:id="_LhDcYeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.internal.ui.javaeditor.BookmarkRulerAction" name="Auto::org.eclipse.jdt.internal.ui.javaeditor.BookmarkRulerAction"/>
+ <rootContext xmi:id="_LhDcY-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.internal.ui.javaeditor.JavaSelectRulerAction" name="Auto::org.eclipse.jdt.internal.ui.javaeditor.JavaSelectRulerAction"/>
+ <rootContext xmi:id="_LhDcZeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.internal.ui.propertiesfileeditor.BookmarkRulerAction" name="Auto::org.eclipse.jdt.internal.ui.propertiesfileeditor.BookmarkRulerAction"/>
+ <rootContext xmi:id="_LhEDcOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.internal.ui.propertiesfileeditor.SelectRulerAction" name="Auto::org.eclipse.jdt.internal.ui.propertiesfileeditor.SelectRulerAction"/>
+ <rootContext xmi:id="_LhEDcuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.texteditor.BookmarkRulerAction" name="Auto::org.eclipse.ui.texteditor.BookmarkRulerAction"/>
+ <rootContext xmi:id="_LhEDdOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.texteditor.SelectRulerAction" name="Auto::org.eclipse.ui.texteditor.SelectRulerAction"/>
+ <rootContext xmi:id="_LhEDduFIEeW3CZUaZ-3o8w" elementId="org.eclipse.m2e.jdt.downloadSourcesAction" name="Auto::org.eclipse.m2e.jdt.downloadSourcesAction"/>
+ <rootContext xmi:id="_LhEqgOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.wikitext.context.ui.editor.folding.auto" name="Auto::org.eclipse.mylyn.wikitext.context.ui.editor.folding.auto"/>
+ <rootContext xmi:id="_LhFRkOFIEeW3CZUaZ-3o8w" elementId="StructureSelectEnclosing" name="Auto::StructureSelectEnclosing"/>
+ <rootContext xmi:id="_LhF4oOFIEeW3CZUaZ-3o8w" elementId="StructureSelectNext" name="Auto::StructureSelectNext"/>
+ <rootContext xmi:id="_LhF4ouFIEeW3CZUaZ-3o8w" elementId="StructureSelectPrevious" name="Auto::StructureSelectPrevious"/>
+ <rootContext xmi:id="_LhF4pOFIEeW3CZUaZ-3o8w" elementId="StructureSelectHistory" name="Auto::StructureSelectHistory"/>
+ <rootContext xmi:id="_LhF4puFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.debug.ui.RulerToggleBreakpoint" name="Auto::org.eclipse.wst.jsdt.debug.ui.RulerToggleBreakpoint"/>
+ <rootContext xmi:id="_LhGfsOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.internal.ui.javaeditor.BookmarkRulerAction" name="Auto::org.eclipse.wst.jsdt.internal.ui.javaeditor.BookmarkRulerAction"/>
+ <rootContext xmi:id="_LhGfsuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.internal.ui.javaeditor.JavaSelectRulerAction" name="Auto::org.eclipse.wst.jsdt.internal.ui.javaeditor.JavaSelectRulerAction"/>
+ <rootContext xmi:id="_LhGftOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.internal.ui.propertiesfileeditor.BookmarkRulerAction" name="Auto::org.eclipse.wst.jsdt.internal.ui.propertiesfileeditor.BookmarkRulerAction"/>
+ <rootContext xmi:id="_LhGftuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.internal.ui.propertiesfileeditor.SelectRulerAction" name="Auto::org.eclipse.wst.jsdt.internal.ui.propertiesfileeditor.SelectRulerAction"/>
+ <rootContext xmi:id="_LhHGwOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.wsdl.ui.actions.ReloadDependenciesActionDelegate" name="Auto::org.eclipse.wst.wsdl.ui.actions.ReloadDependenciesActionDelegate"/>
+ <rootContext xmi:id="_LveS4OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ant.ui.actionSet.presentation" name="Auto::org.eclipse.ant.ui.actionSet.presentation"/>
+ <rootContext xmi:id="_Lve58eFIEeW3CZUaZ-3o8w" elementId="org.eclipse.datatools.sqltools.sqlscrapbook.actionSet" name="Auto::org.eclipse.datatools.sqltools.sqlscrapbook.actionSet"/>
+ <rootContext xmi:id="_Lve58-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.debug.ui.breakpointActionSet" name="Auto::org.eclipse.debug.ui.breakpointActionSet"/>
+ <rootContext xmi:id="_Lve59eFIEeW3CZUaZ-3o8w" elementId="org.eclipse.debug.ui.debugActionSet" name="Auto::org.eclipse.debug.ui.debugActionSet"/>
+ <rootContext xmi:id="_LvfhAOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.debug.ui.launchActionSet" name="Auto::org.eclipse.debug.ui.launchActionSet"/>
+ <rootContext xmi:id="_LvfhAuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.debug.ui.profileActionSet" name="Auto::org.eclipse.debug.ui.profileActionSet"/>
+ <rootContext xmi:id="_LvfhBOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.gitaction" name="Auto::org.eclipse.egit.ui.gitaction"/>
+ <rootContext xmi:id="_LvfhBuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.navigation" name="Auto::org.eclipse.egit.ui.navigation"/>
+ <rootContext xmi:id="_LvgIEOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.debug.ui.JDTDebugActionSet" name="Auto::org.eclipse.jdt.debug.ui.JDTDebugActionSet"/>
+ <rootContext xmi:id="_LvgIEuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.junit.JUnitActionSet" name="Auto::org.eclipse.jdt.junit.JUnitActionSet"/>
+ <rootContext xmi:id="_LvgIFOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.text.java.actionSet.presentation" name="Auto::org.eclipse.jdt.ui.text.java.actionSet.presentation"/>
+ <rootContext xmi:id="_LvruQOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.JavaElementCreationActionSet" name="Auto::org.eclipse.jdt.ui.JavaElementCreationActionSet"/>
+ <rootContext xmi:id="_LvruQuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.JavaActionSet" name="Auto::org.eclipse.jdt.ui.JavaActionSet"/>
+ <rootContext xmi:id="_LvsVUeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.A_OpenActionSet" name="Auto::org.eclipse.jdt.ui.A_OpenActionSet"/>
+ <rootContext xmi:id="_Lvs8YOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.CodingActionSet" name="Auto::org.eclipse.jdt.ui.CodingActionSet"/>
+ <rootContext xmi:id="_Lvs8YuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.SearchActionSet" name="Auto::org.eclipse.jdt.ui.SearchActionSet"/>
+ <rootContext xmi:id="_LvtjcOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jpt.jpa.ui.actionSet.jpaElementCreation" name="Auto::org.eclipse.jpt.jpa.ui.actionSet.jpaElementCreation"/>
+ <rootContext xmi:id="_LvtjcuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jst.j2ee.J2eeMainActionSet" name="Auto::org.eclipse.jst.j2ee.J2eeMainActionSet"/>
+ <rootContext xmi:id="_LvtjdOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.context.ui.actionSet" name="Auto::org.eclipse.mylyn.context.ui.actionSet"/>
+ <rootContext xmi:id="_LvuKgOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.java.actionSet" name="Auto::org.eclipse.mylyn.java.actionSet"/>
+ <rootContext xmi:id="_LvuKguFIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.java.actionSet.browsing" name="Auto::org.eclipse.mylyn.java.actionSet.browsing"/>
+ <rootContext xmi:id="_LvuKhOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.doc.actionSet" name="Auto::org.eclipse.mylyn.doc.actionSet"/>
+ <rootContext xmi:id="_LvuxkOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.tasks.ui.navigation" name="Auto::org.eclipse.mylyn.tasks.ui.navigation"/>
+ <rootContext xmi:id="_LvuxkuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.tasks.ui.navigation.additions" name="Auto::org.eclipse.mylyn.tasks.ui.navigation.additions"/>
+ <rootContext xmi:id="_LvuxlOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.pde.ui.SearchActionSet" name="Auto::org.eclipse.pde.ui.SearchActionSet"/>
+ <rootContext xmi:id="_LvvYoOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.cheatsheets.actionSet" name="Auto::org.eclipse.ui.cheatsheets.actionSet"/>
+ <rootContext xmi:id="_Lvv_sOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.rse.core.search.searchActionSet" name="Auto::org.eclipse.rse.core.search.searchActionSet"/>
+ <rootContext xmi:id="_LvwmwOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.search.searchActionSet" name="Auto::org.eclipse.search.searchActionSet"/>
+ <rootContext xmi:id="_LvxN0OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.team.cvs.ui.CVSActionSet" name="Auto::org.eclipse.team.cvs.ui.CVSActionSet"/>
+ <rootContext xmi:id="_Lvx04OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.team.ui.actionSet" name="Auto::org.eclipse.team.ui.actionSet"/>
+ <rootContext xmi:id="_Lvyb8OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.actionSet.annotationNavigation" name="Auto::org.eclipse.ui.edit.text.actionSet.annotationNavigation"/>
+ <rootContext xmi:id="_LvzDAOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.actionSet.navigation" name="Auto::org.eclipse.ui.edit.text.actionSet.navigation"/>
+ <rootContext xmi:id="_LvzqEOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.actionSet.convertLineDelimitersTo" name="Auto::org.eclipse.ui.edit.text.actionSet.convertLineDelimitersTo"/>
+ <rootContext xmi:id="_Lv0RIOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.externaltools.ExternalToolsSet" name="Auto::org.eclipse.ui.externaltools.ExternalToolsSet"/>
+ <rootContext xmi:id="_Lv04MOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.NavigateActionSet" name="Auto::org.eclipse.ui.NavigateActionSet"/>
+ <rootContext xmi:id="_Lv2GUOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.actionSet.keyBindings" name="Auto::org.eclipse.ui.actionSet.keyBindings"/>
+ <rootContext xmi:id="_Lv2tYOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.WorkingSetModificationActionSet" name="Auto::org.eclipse.ui.WorkingSetModificationActionSet"/>
+ <rootContext xmi:id="_Lv3UcOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.WorkingSetActionSet" name="Auto::org.eclipse.ui.WorkingSetActionSet"/>
+ <rootContext xmi:id="_Lv37gOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.actionSet.openFiles" name="Auto::org.eclipse.ui.actionSet.openFiles"/>
+ <rootContext xmi:id="_Lv5JoOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.actionSet.presentation" name="Auto::org.eclipse.ui.edit.text.actionSet.presentation"/>
+ <rootContext xmi:id="_Lv5wsOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.text.java.actionSet.presentation" name="Auto::org.eclipse.wst.jsdt.ui.text.java.actionSet.presentation"/>
+ <rootContext xmi:id="_Lv6XwOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.JavaElementCreationActionSet" name="Auto::org.eclipse.wst.jsdt.ui.JavaElementCreationActionSet"/>
+ <rootContext xmi:id="_Lv6-0OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.JavaActionSet" name="Auto::org.eclipse.wst.jsdt.ui.JavaActionSet"/>
+ <rootContext xmi:id="_Lv7l4OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.A_OpenActionSet" name="Auto::org.eclipse.wst.jsdt.ui.A_OpenActionSet"/>
+ <rootContext xmi:id="_Lv8M8OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.CodingActionSet" name="Auto::org.eclipse.wst.jsdt.ui.CodingActionSet"/>
+ <rootContext xmi:id="_Lv80AOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.SearchActionSet" name="Auto::org.eclipse.wst.jsdt.ui.SearchActionSet"/>
+ <rootContext xmi:id="_Lv9bEOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.server.ui.new.actionSet" name="Auto::org.eclipse.wst.server.ui.new.actionSet"/>
+ <rootContext xmi:id="_Lv-CIOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.server.ui.internal.webbrowser.actionSet" name="Auto::org.eclipse.wst.server.ui.internal.webbrowser.actionSet"/>
+ <rootContext xmi:id="_Lv_QQOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.web.ui.wizardsActionSet" name="Auto::org.eclipse.wst.web.ui.wizardsActionSet"/>
+ <rootContext xmi:id="_Lv_3UOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.ws.explorer.explorer" name="Auto::org.eclipse.wst.ws.explorer.explorer"/>
+ <descriptors xmi:id="_Le45MOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.e4.ui.compatibility.editor" allowMultiple="true" category="org.eclipse.e4.primaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityEditor">
+ <tags>Editor</tags>
+ </descriptors>
+ <descriptors xmi:id="_Le78gOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ant.ui.views.AntView" label="Ant" iconURI="platform:/plugin/org.eclipse.ant.ui/icons/full/eview16/ant_view.gif" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:Ant</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfCqMOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.datatools.connectivity.DataSourceExplorerNavigator" label="Data Source Explorer" iconURI="platform:/plugin/org.eclipse.datatools.connectivity.ui.dse/icons/full/cview16/enterprise_explorer.gif" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:Data Management</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfD4UOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.datatools.sqltools.plan.planView" label="Execution Plan" iconURI="platform:/plugin/org.eclipse.datatools.sqltools.plan/icons/sqlplan.gif" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:Data Management</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfFGcOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.datatools.sqltools.result.resultView" label="SQL Results" iconURI="platform:/plugin/org.eclipse.datatools.sqltools.result.ui/icons/sqlresult.gif" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:Data Management</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfGUkOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.debug.ui.DebugView" label="Debug" iconURI="platform:/plugin/org.eclipse.debug.ui/icons/full/eview16/debug_view.gif" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:Debug</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfG7oOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.debug.ui.BreakpointView" label="Breakpoints" iconURI="platform:/plugin/org.eclipse.debug.ui/icons/full/eview16/breakpoint_view.gif" allowMultiple="true" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:Debug</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfHisOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.debug.ui.VariableView" label="Variables" iconURI="platform:/plugin/org.eclipse.debug.ui/icons/full/eview16/variable_view.gif" allowMultiple="true" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:Debug</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfHiseFIEeW3CZUaZ-3o8w" elementId="org.eclipse.debug.ui.ExpressionView" label="Expressions" iconURI="platform:/plugin/org.eclipse.debug.ui/icons/full/eview16/watchlist_view.gif" allowMultiple="true" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:Debug</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfIJwOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.debug.ui.RegisterView" label="Registers" iconURI="platform:/plugin/org.eclipse.debug.ui/icons/full/eview16/register_view.gif" allowMultiple="true" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:Debug</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfIJweFIEeW3CZUaZ-3o8w" elementId="org.eclipse.debug.ui.ModuleView" label="Modules" iconURI="platform:/plugin/org.eclipse.debug.ui/icons/full/eview16/module_view.gif" allowMultiple="true" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:Debug</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfIJwuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.debug.ui.MemoryView" label="Memory" iconURI="platform:/plugin/org.eclipse.debug.ui/icons/full/eview16/memory_view.gif" allowMultiple="true" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:Debug</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfIw0OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.RepositoriesView" label="Git Repositories" iconURI="platform:/plugin/org.eclipse.egit.ui/icons/eview16/repo_rep.gif" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:Git</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfJX4OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.StagingView" label="Git Staging" iconURI="platform:/plugin/org.eclipse.egit.ui/icons/eview16/staging.png" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:Git</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfJX4eFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.InteractiveRebaseView" label="Git Interactive Rebase" iconURI="platform:/plugin/org.eclipse.egit.ui/icons/eview16/rebase_interactive.gif" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:Git</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfJX4uFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.CompareTreeView" label="Git Tree Compare" iconURI="platform:/plugin/org.eclipse.egit.ui/icons/obj16/gitrepository.gif" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:Git</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfJ-8OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.ReflogView" label="Git Reflog" iconURI="platform:/plugin/org.eclipse.egit.ui/icons/eview16/reflog.gif" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:Git</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfJ-8eFIEeW3CZUaZ-3o8w" elementId="org.eclipse.gef.ui.palette_view" label="Palette" iconURI="platform:/plugin/org.eclipse.gef/icons/palette_view.gif" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:General</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfLNEOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.help.ui.HelpView" label="Help" iconURI="platform:/plugin/org.eclipse.help.ui/icons/view16/help_view.gif" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:Help</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfMbMOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.debug.ui.DisplayView" label="Display" iconURI="platform:/plugin/org.eclipse.jdt.debug.ui/icons/full/etool16/disp_sbook.gif" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:Debug</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfNCQOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.junit.ResultView" label="JUnit" iconURI="platform:/plugin/org.eclipse.jdt.junit/icons/full/eview16/junit.gif" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:Java</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfOQYOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.PackageExplorer" label="Package Explorer" iconURI="platform:/plugin/org.eclipse.jdt.ui/icons/full/eview16/package.gif" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:Java</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfO3cOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.TypeHierarchy" label="Type Hierarchy" iconURI="platform:/plugin/org.eclipse.jdt.ui/icons/full/eview16/class_hi.gif" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:Java</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfPegOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.ProjectsView" label="Projects" iconURI="platform:/plugin/org.eclipse.jdt.ui/icons/full/eview16/projects.gif" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:Java Browsing</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfPegeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.PackagesView" label="Packages" iconURI="platform:/plugin/org.eclipse.jdt.ui/icons/full/eview16/packages.gif" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:Java Browsing</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfQFkOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.TypesView" label="Types" iconURI="platform:/plugin/org.eclipse.jdt.ui/icons/full/eview16/types.gif" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:Java Browsing</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfQFkeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.MembersView" label="Members" iconURI="platform:/plugin/org.eclipse.jdt.ui/icons/full/eview16/members.gif" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:Java Browsing</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfQFkuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.callhierarchy.view" label="Call Hierarchy" iconURI="platform:/plugin/org.eclipse.jdt.ui/icons/full/eview16/call_hierarchy.gif" allowMultiple="true" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:Java</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfQsoOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.texteditor.TemplatesView" label="Templates" iconURI="platform:/plugin/org.eclipse.jdt.ui/icons/full/eview16/templates.gif" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:General</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfQsoeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.SourceView" label="Declaration" iconURI="platform:/plugin/org.eclipse.jdt.ui/icons/full/eview16/source.gif" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:Java</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfRTsOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.JavadocView" label="Javadoc" iconURI="platform:/plugin/org.eclipse.jdt.ui/icons/full/eview16/javadoc.gif" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:Java</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfRTseFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jpt.ui.jpaStructureView" label="JPA Structure" iconURI="platform:/plugin/org.eclipse.jpt.jpa.ui/images/views/jpa-structure.gif" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:JPA</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfSh0OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jpt.ui.jpaDetailsView" label="JPA Details" iconURI="platform:/plugin/org.eclipse.jpt.jpa.ui/images/views/jpa-details.gif" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:JPA</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfTI4OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jst.jsf.ui.component.ComponentTreeView" label="JSF Component Tree" iconURI="platform:/plugin/org.eclipse.ui/icons/full/eview16/defaultview_misc.gif" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:JavaServer Faces</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfTI4eFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jst.jsf.ui.tagregistry.TagRegistryView" label="Tag Registry" iconURI="platform:/plugin/org.eclipse.jst.jsf.ui/icons/obj16/library_obj.gif" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:JavaServer Faces</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfUXAOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jst.ws.jaxws.ui.views.AnnotationsView" label="Annotation Properties" iconURI="platform:/plugin/org.eclipse.jst.ws.jaxws.ui/icons/eview16/prop_ps.gif" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:Web Services</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfVlIOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.m2e.core.views.MavenRepositoryView" label="Maven Repositories" iconURI="platform:/plugin/org.eclipse.m2e.core.ui/icons/maven_indexes.gif" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:Maven</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfWMMOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.m2e.core.views.MavenBuild" label="Maven Workspace Build" iconURI="platform:/plugin/org.eclipse.ui/icons/full/eview16/defaultview_misc.gif" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:Maven</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfWzQOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.commons.repositories.ui.navigator.Repositories" label="Team Repositories" iconURI="platform:/plugin/org.eclipse.mylyn.commons.repositories.ui/icons/eview16/repositories.gif" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:Mylyn</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfXaUOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.tasks.ui.views.tasks" label="Task List" iconURI="platform:/plugin/org.eclipse.mylyn.tasks.ui/icons/eview16/task-list.gif" allowMultiple="true" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:Mylyn</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfYBYOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.tasks.ui.views.repositories" label="Task Repositories" iconURI="platform:/plugin/org.eclipse.mylyn.tasks.ui/icons/eview16/repositories.gif" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:Mylyn</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfYBYeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.pde.api.tools.ui.views.apitooling.views.apitoolingview" label="API Tools" iconURI="platform:/plugin/org.eclipse.pde.api.tools.ui/icons/full/obj16/api_tools.gif" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:API Tools</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfYocOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.pde.runtime.RegistryBrowser" label="Plug-in Registry" iconURI="platform:/plugin/org.eclipse.pde.runtime/icons/eview16/registry.gif" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:Plug-in Development</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfZ2kOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.pde.ui.PluginsView" label="Plug-ins" iconURI="platform:/plugin/org.eclipse.pde.ui/icons/eview16/plugin_depend.gif" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:Plug-in Development</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfbEsOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.pde.ui.DependenciesView" label="Plug-in Dependencies" iconURI="platform:/plugin/org.eclipse.pde.ui/icons/obj16/req_plugins_obj.gif" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:Plug-in Development</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfbEseFIEeW3CZUaZ-3o8w" elementId="org.eclipse.pde.ui.TargetPlatformState" label="Target Platform State" iconURI="platform:/plugin/org.eclipse.pde.ui/icons/obj16/target_profile_xml_obj.gif" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:Plug-in Development</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfbEsuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.pde.ui.ImageBrowserView" label="Plug-in Image Browser" iconURI="platform:/plugin/org.eclipse.pde.ui/icons/obj16/psearch_obj.gif" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:Plug-in Development</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfbrwOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.rse.shells.ui.view.commandsView" label="Remote Shell" iconURI="platform:/plugin/org.eclipse.rse.shells.ui/icons/full/cview16/commands_view.gif" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:Remote Systems</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfcS0OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.rse.terminals.ui.view.TerminalView" label="Terminals" iconURI="platform:/plugin/org.eclipse.rse.terminals.ui/icons/terminal_view.gif" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:Remote Systems</tags>
+ </descriptors>
+ <descriptors xmi:id="_Lfc54OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.rse.ui.view.systemView" label="Remote Systems" iconURI="platform:/plugin/org.eclipse.rse.ui/icons/full/cview16/system_view.gif" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:Remote Systems</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfevEOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.rse.ui.view.teamView" label="Team" iconURI="platform:/plugin/org.eclipse.rse.ui/icons/full/cview16/team_view.gif" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:Remote Systems</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfevEeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.rse.ui.view.systemTableView" label="Remote System Details" iconURI="platform:/plugin/org.eclipse.rse.ui/icons/full/cview16/system_view.gif" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:Remote Systems</tags>
+ </descriptors>
+ <descriptors xmi:id="_LffWIOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.rse.ui.view.SystemSearchView" label="Remote Search" iconURI="platform:/plugin/org.eclipse.rse.ui/icons/full/obj16/system_search.gif" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:Remote Systems</tags>
+ </descriptors>
+ <descriptors xmi:id="_LffWIeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.rse.ui.view.scratchpad.SystemScratchpadViewPart" label="Remote Scratchpad" iconURI="platform:/plugin/org.eclipse.rse.ui/icons/full/view16/scratchpad_view.gif" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:Remote Systems</tags>
+ </descriptors>
+ <descriptors xmi:id="_LffWIuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.rse.ui.view.monitorView" label="Remote Monitor" iconURI="platform:/plugin/org.eclipse.rse.ui/icons/full/view16/system_view.gif" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:Remote Systems</tags>
+ </descriptors>
+ <descriptors xmi:id="_Lff9MOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.search.SearchResultView" label="Classic Search" iconURI="platform:/plugin/org.eclipse.search/icons/full/eview16/searchres.gif" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:General</tags>
+ </descriptors>
+ <descriptors xmi:id="_Lff9MeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.search.ui.views.SearchView" label="Search" iconURI="platform:/plugin/org.eclipse.search/icons/full/eview16/searchres.gif" allowMultiple="true" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:General</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfgkQOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.team.ccvs.ui.RepositoriesView" label="CVS Repositories" iconURI="platform:/plugin/org.eclipse.team.cvs.ui/icons/full/eview16/repo_rep.gif" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:CVS</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfhLUOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.team.ccvs.ui.EditorsView" label="CVS Editors" iconURI="platform:/plugin/org.eclipse.team.cvs.ui/icons/full/eview16/rep_editors_view.gif" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:CVS</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfhLUeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.team.sync.views.SynchronizeView" label="Synchronize" iconURI="platform:/plugin/org.eclipse.team.ui/icons/full/eview16/synch_synch.gif" allowMultiple="true" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:Team</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfhyYOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.team.ui.GenericHistoryView" label="History" iconURI="platform:/plugin/org.eclipse.team.ui/icons/full/eview16/history_view.gif" allowMultiple="true" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:Team</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfhyYeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.tm.terminal.view.TerminalView" label="Terminal" iconURI="platform:/plugin/org.eclipse.tm.terminal.view/icons/cview16/terminal_view.gif" allowMultiple="true" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:Terminal</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfiZcOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.internal.introview" label="Welcome" iconURI="platform:/plugin/org.eclipse.ui/icons/full/eview16/defaultview_misc.gif" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:General</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfjAgOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.browser.view" label="Internal Web Browser" iconURI="platform:/plugin/org.eclipse.ui.browser/icons/obj16/internal_browser.gif" allowMultiple="true" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:General</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfjnkOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.cheatsheets.views.CheatSheetView" label="Cheat Sheets" iconURI="platform:/plugin/org.eclipse.ui.cheatsheets/icons/view16/cheatsheet_view.gif" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:Help</tags>
+ </descriptors>
+ <descriptors xmi:id="_Lfk1sOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.console.ConsoleView" label="Console" iconURI="platform:/plugin/org.eclipse.ui.console/icons/full/cview16/console_view.gif" allowMultiple="true" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:General</tags>
+ </descriptors>
+ <descriptors xmi:id="_LflcwOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.views.ProgressView" label="Progress" iconURI="platform:/plugin/org.eclipse.ui.ide/icons/full/eview16/pview.gif" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:General</tags>
+ </descriptors>
+ <descriptors xmi:id="_LflcweFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.views.ResourceNavigator" label="Navigator" iconURI="platform:/plugin/org.eclipse.ui.ide/icons/full/eview16/filenav_nav.gif" category="org.eclipse.e4.primaryNavigationStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:General</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfmD0OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.views.BookmarkView" label="Bookmarks" iconURI="platform:/plugin/org.eclipse.ui.ide/icons/full/eview16/bkmrk_nav.gif" allowMultiple="true" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:General</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfmD0eFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.views.TaskList" label="Tasks" iconURI="platform:/plugin/org.eclipse.ui.ide/icons/full/eview16/tasks_tsk.gif" allowMultiple="true" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:General</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfmD0uFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.views.ProblemView" label="Problems" iconURI="platform:/plugin/org.eclipse.ui.ide/icons/full/eview16/problems_view.gif" allowMultiple="true" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:General</tags>
+ </descriptors>
+ <descriptors xmi:id="_Lfmq4OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.views.AllMarkersView" label="Markers" iconURI="platform:/plugin/org.eclipse.ui.ide/icons/full/eview16/problems_view.gif" allowMultiple="true" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:General</tags>
+ </descriptors>
+ <descriptors xmi:id="_Lfmq4eFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.navigator.ProjectExplorer" label="Project Explorer" iconURI="platform:/plugin/org.eclipse.ui.navigator.resources/icons/full/eview16/resource_persp.gif" category="org.eclipse.e4.primaryNavigationStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:General</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfnR8OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.views.PropertySheet" label="Properties" iconURI="platform:/plugin/org.eclipse.ui.views/icons/full/eview16/prop_ps.gif" allowMultiple="true" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:General</tags>
+ </descriptors>
+ <descriptors xmi:id="_Lfn5AOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.views.ContentOutline" label="Outline" iconURI="platform:/plugin/org.eclipse.ui.views/icons/full/eview16/outline_co.gif" category="org.eclipse.e4.secondaryNavigationStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:General</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfogEOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.pde.runtime.LogView" label="Error Log" iconURI="platform:/plugin/org.eclipse.ui.views.log/icons/eview16/error_log.gif" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:General</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfpuMOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.common.snippets.internal.ui.SnippetsView" label="Snippets" iconURI="platform:/plugin/org.eclipse.wst.common.snippets/icons/snippets_view.gif" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:General</tags>
+ </descriptors>
+ <descriptors xmi:id="_Lfq8UOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.internet.monitor.view" label="TCP/IP Monitor" iconURI="platform:/plugin/org.eclipse.wst.internet.monitor.ui/icons/cview16/monitorView.gif" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:Debug</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfrjYOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.TypeHierarchy" label="Hierarchy" iconURI="platform:/plugin/org.eclipse.wst.jsdt.ui/icons/full/eview16/class_hi.gif" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:JavaScript</tags>
+ </descriptors>
+ <descriptors xmi:id="_Lft_oOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.PackageExplorer" label="Script Explorer" iconURI="platform:/plugin/org.eclipse.wst.jsdt.ui/icons/full/eview16/package.gif" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:JavaScript</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfumsOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.callhierarchy.view" label="Call Hierarchy" iconURI="platform:/plugin/org.eclipse.wst.jsdt.ui/icons/full/eview16/call_hierarchy.gif" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:JavaScript</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfumseFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.SourceView" label="Declaration" iconURI="platform:/plugin/org.eclipse.wst.jsdt.ui/icons/full/eview16/source.gif" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:JavaScript</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfumsuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.JavadocView" label="Documentation" iconURI="platform:/plugin/org.eclipse.wst.jsdt.ui/icons/full/eview16/javadoc.gif" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:JavaScript</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfvNwOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.server.ui.ServersView" label="Servers" iconURI="platform:/plugin/org.eclipse.wst.server.ui/icons/cview16/servers_view.gif" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:Server</tags>
+ </descriptors>
+ <descriptors xmi:id="_Lfwb4OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.xml.ui.views.annotations.XMLAnnotationsView" label="Documentation" iconURI="platform:/plugin/org.eclipse.wst.xml.ui/icons/full/obj16/comment_obj.gif" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:XML</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfxC8OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.xml.ui.contentmodel.view" label="Content Model" iconURI="platform:/plugin/org.eclipse.wst.xml.ui/icons/full/view16/hierarchy.gif" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:XML</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfxC8eFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.xml.views.XPathView" label="XPath" iconURI="platform:/plugin/org.eclipse.wst.xml.xpath.ui/icons/full/xpath.gif" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:XML</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfyREOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.xsl.jaxp.debug.ui.resultview" label="Result" iconURI="platform:/plugin/org.eclipse.ui/icons/full/eview16/defaultview_misc.gif" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:XML</tags>
+ </descriptors>
+ <descriptors xmi:id="_LfyREeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.xsl.ui.view.outline" label="Stylesheet Model" iconURI="platform:/plugin/org.eclipse.wst.xsl.ui/icons/full/hierarchy.gif" category="org.eclipse.e4.secondaryDataStack" closeable="true" contributionURI="bundleclass://org.eclipse.ui.workbench/org.eclipse.ui.internal.e4.compatibility.CompatibilityView">
+ <tags>View</tags>
+ <tags>categoryTag:XML</tags>
+ </descriptors>
+ <commands xmi:id="_LcWikOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.debug.ui.command.nextpage" commandName="Next Page of Memory" description="Load next page of memory" category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcWikeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.team.cvs.ui.GenerateDiff" commandName="Create Patch" description="Compare your workspace contents with the server and generate a diff file that can be used as a patch file." category="_LcVUceFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcWikuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.removeTrailingWhitespace" commandName="Remove Trailing Whitespace" description="Removes the trailing whitespace of each line" category="_LcVUeuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcWik-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.select.next" commandName="Select Next Element" description="Expand selection to include next sibling" category="_LcVUj-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcWilOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jpt.jpa.eclipselink.ui.upgradeToEclipseLinkMappingFile" commandName="Upgrade to EclipseLink Mapping File" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcWileFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.toggleMarkOccurrences" commandName="Toggle Mark Occurrences" description="Toggles mark occurrences in Java editors" category="_LcV7ieFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcWiluFIEeW3CZUaZ-3o8w" elementId="org.eclipse.pde.runtime.spy.commands.spyCommand" commandName="Plug-in Selection Spy" description="Show the Plug-in Spy" category="_LcVUeOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXJoOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.tasks.ui.discoveryWizardCommand" commandName="%command.name" description="%command.description" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXJoeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.use.supertype" commandName="Use Supertype Where Possible" description="Change occurrences of a type to use a supertype instead" category="_LcV7iuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXJouFIEeW3CZUaZ-3o8w" elementId="org.eclipse.datatools.connectivity.commands.import" commandName="Import Profiles Command" description="Command to import connection profiles" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXJo-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.select.textStart" commandName="Select Text Start" description="Select to the beginning of the text" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXJpOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.navigate.open.type.in.hierarchy" commandName="Open Type in Hierarchy" description="Open a type in the type hierarchy view" category="_LcV7h-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXJpeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.JavaBrowsingPerspective" commandName="Java Browsing" description="Show the Java Browsing perspective" category="_LcVUcOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXJpuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.refactor.quickMenu" commandName="Show Refactor Quick Menu" description="Shows the refactor quick menu" category="_LcVUheFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXJp-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.search.read.access.in.project" commandName="Read Access in Project" description="Search for read references to the selected element in the enclosing project" category="_LcVUjOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXJqOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.select.lineEnd" commandName="Select Line End" description="Select to the end of the line of text" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXJqeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.team.CompareWithHead" commandName="Compare with HEAD Revision" category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXJquFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.surround.with.quickMenu" commandName="Surround With Quick Menu" description="Shows the Surround With quick menu" category="_LcVUguFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXJq-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.debug.ui.script.opensource" commandName="Open Source" description="Shows the JavaScript source for the selected script element" category="_LcVUkeFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXJrOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.smartEnterInverse" commandName="Insert Line Above Current Line" description="Adds a new line above the current line" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXJreFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.externalTools.commands.OpenExternalToolsConfigurations" commandName="External Tools..." description="Open external tools launch configuration dialog" category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXJruFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.JavaPerspective" commandName="JavaScript" description="Show the JavaScript perspective" category="_LcVUcOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXJr-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.team.ui.TeamSynchronizingPerspective" commandName="Team Synchronizing" description="Open the Team Synchronizing Perspective" category="_LcVUcOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXJsOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.debug.ui.commands.StepOver" commandName="Step Over" description="Step over" category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXJseFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.RepositoriesViewOpenInEditor" commandName="Open in Editor" category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXJsuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.surround.with.quickMenu" commandName="Surround With Quick Menu" description="Shows the Surround With quick menu" category="_LcV7ieFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXJs-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.debug.ui.commands.addMemoryMonitor" commandName="Add Memory Block" description="Add memory block" category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXJtOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.RepositoriesViewRebase" commandName="Rebase" category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXJteFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.revertToSaved" commandName="Revert to Saved" description="Revert to the last saved state" category="_LcVUj-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXJtuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.tasks.ui.command.markTaskReadGoToPreviousUnread" commandName="Mark Task Read and Go To Previous Unread Task" category="_LcVUjuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXJt-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.search.implement.occurrences" commandName="Search Implement Occurrences in File" description="Search for implement occurrences of a selected type" category="_LcVUjOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXJuOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.toggle.comment" commandName="Toggle Comment" description="Toggle comment the selected lines" category="_LcV7ieFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXJueFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.sse.ui.format.active.elements" commandName="Format Active Elements" description="Format active elements" category="_LcVUj-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXJuuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.surround.with.try.catch" commandName="Surround with try/catch Block" description="Surround the selected text with a try/catch block" category="_LcV7ieFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXJu-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.convert.anonymous.to.nested" commandName="Convert Anonymous Class to Nested" description="Convert an anonymous class to a nested class" category="_LcV7iuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXJvOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.context.ui.commands.open.context.dialog" commandName="Show Context Quick View" description="Show Context Quick View" category="_LcV7huFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXJveFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.remove.occurrence.annotations" commandName="Remove Occurrence Annotations" description="Removes the occurrence annotations from the current editor" category="_LcVUguFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXJvuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.PushHeadToGerrit" commandName="Push Current Head to Gerrit" category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXJv-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.select.lineDown" commandName="Select Line Down" description="Extend the selection to the next line of text" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXJwOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jpt.jaxb.ui.generateJaxbClasses" commandName="JAXB Classes..." category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXJweFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.window.showContextMenu" commandName="Show Context Menu" description="Show the context menu" category="_LcVUc-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXJwuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.team.stash.drop" commandName="Delete Stashed Commit..." category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXJw-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.rename.element" commandName="Rename - Refactoring " description="Rename the selected element" category="_LcVUheFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXJxOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.ide.markCompleted" commandName="Mark Completed" description="Mark the selected tasks as completed" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXJxeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.datatools.sqltools.sqleditor.attachProfileAction" commandName="Set Connection Information" category="_LcVUdOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXJxuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.goto.textEnd" commandName="Text End" description="Go to the end of the text" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXJx-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.copy.qualified.name" commandName="Copy Qualified Name" description="Copy a fully qualified name to the system clipboard" category="_LcV7ieFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXJyOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.delete" commandName="Delete" description="Delete the selection" category="_LcVUj-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXwsOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jpt.jpa.ui.persistentAttributeMapAs" commandName="Map As" category="_LcVUgOFIEeW3CZUaZ-3o8w">
+ <parameters xmi:id="_LcXwseFIEeW3CZUaZ-3o8w" elementId="specifiedPersistentAttributeMappingKey" name="specified mapping key" optional="false"/>
+ <parameters xmi:id="_LcXwsuFIEeW3CZUaZ-3o8w" elementId="defaultPersistentAttributeMappingKey" name="default mapping key" optional="false"/>
+ </commands>
+ <commands xmi:id="_LcXws-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.RepositoriesViewChangeCredentials" commandName="Change Credentials" category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXwtOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.surround.with.try.multicatch" commandName="Surround with try/multi-catch Block" description="Surround the selected text with a try/multi-catch block" category="_LcV7ieFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXwteFIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.tasks.ui.command.deactivateAllTasks" commandName="Deactivate Task" category="_LcV7h-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXwtuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.history.CreateTag" commandName="Create Tag..." category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXwt-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.debug.ui.commands.ProfileLast" commandName="Profile" description="Launch in profile mode" category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXwuOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jpt.jpa.ui.persistentAttributeAddToXml" commandName="Add Attribute to XML" category="_LcVUgOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXwueFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.search.references.in.workspace" commandName="References in Workspace" description="Search for references to the selected element in the workspace" category="_LcVUjOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXwuuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.RepositoriesViewPaste" commandName="Paste Repository Path or URI" category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXwu-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.navigate.previous" commandName="Previous" description="Navigate to the previous item" category="_LcV7h-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXwvOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.toggleBreadcrumb" commandName="Toggle Java Editor Breadcrumb" description="Toggle the Java editor breadcrumb" category="_LcV7ieFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXwveFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.open.call.hierarchy" commandName="Open Call Hierarchy" description="Open a call hierarchy on the selected element" category="_LcV7h-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXwvuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.m2e.actions.LifeCycleInstall.run" commandName="Run Maven Install" description="Run Maven Install" category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXwv-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.correction.extractConstant.assist" commandName="Quick Assist - Extract constant" description="Invokes quick assist and selects 'Extract constant'" category="_LcV7ieFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXwwOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.datatools.enablement.sybase.asa.schemaobjecteditor.examples.tableschemaeditor.cutcolumn" commandName="Cut" category="_LcVUcuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXwweFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.file.newQuickMenu" commandName="New menu" description="Open the New menu" category="_LcVUeuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXwwuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.deleteNext" commandName="Delete Next" description="Delete the next character" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXww-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.deleteNextWord" commandName="Delete Next Word" description="Delete the next word" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXwxOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.undo" commandName="Undo" description="Undo the last operation" category="_LcVUj-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXwxeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.debug.ui.commands.DebugLast" commandName="Debug" description="Launch in debug mode" category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXwxuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jpt.jpa.eclipselink.ui.generateDynamicEntities" commandName="Generate Dynamic Entities from Tables..." category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXwx-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.tasks.ui.command.markTaskRead" commandName="Mark Task Read" category="_LcVUjuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXwyOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.open.external.javadoc" commandName="Open External JSDoc" description="Open the JSDoc of the selected element in an external browser" category="_LcV7h-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXwyeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.debug.ui.commands.ToggleLineBreakpoint" commandName="Toggle Line Breakpoint" description="Creates or removes a line breakpoint" category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXwyuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.context.ui.commands.task.attachContext" commandName="Attach Context" category="_LcV7huFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXwy-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.editors.lineNumberToggle" commandName="Show Line Numbers" description="Toggle display of line numbers" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXwzOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.search.read.access.in.workspace" commandName="Read Access in Workspace" description="Search for read references to the selected element in the workspace" category="_LcVUjOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXwzeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.correction.renameInFile.assist" commandName="Quick Assist - Rename in file" description="Invokes quick assist and selects 'Rename in file'" category="_LcV7ieFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXwzuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.window.newEditor" commandName="New Editor" description="Open another editor on the active editor's input" category="_LcVUc-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXwz-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.goto.wordPrevious" commandName="Previous Word" description="Go to the previous word" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXw0OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.help.installationDialog" commandName="Installation Information" description="Open the installation dialog" category="_LcV7guFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXw0eFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.team.CompareWithIndex" commandName="Compare with Git Index" category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXw0uFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.shiftRight" commandName="Shift Right" description="Shift a block of text to the right" category="_LcVUj-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXw0-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.xml.ui.nextSibling" commandName="Next Sibling" description="Go to Next Sibling" category="_LcVUj-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXw1OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.specific_content_assist.command" commandName="Content Assist" description="A parameterizable command that invokes content assist with a single completion proposal category" category="_LcVUj-FIEeW3CZUaZ-3o8w">
+ <parameters xmi:id="_LcXw1eFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.specific_content_assist.category_id" name="type" optional="false"/>
+ </commands>
+ <commands xmi:id="_LcXw1uFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.history.Merge" commandName="Merge" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXw1-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.search.references.in.working.set" commandName="References in Working Set" description="Search for references to the selected element in a working set" category="_LcVUjOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXw2OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.search.ui.performTextSearchWorkingSet" commandName="Find Text in Working Set" description="Searches the files in the working set for specific text." category="_LcVUjOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXw2eFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.delete.line.to.end" commandName="Delete to End of Line" description="Delete to the end of a line of text" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXw2uFIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.tasks.ui.command.deactivateSelectedTask" commandName="Deactivate Selected Task" category="_LcV7h-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXw2-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.window.nextEditor" commandName="Next Editor" description="Switch to the next editor" category="_LcVUc-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXw3OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.introduce.factory" commandName="Introduce Factory" description="Introduce a factory method to encapsulate invocation of the selected constructor" category="_LcV7iuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXw3eFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.team.ShowBlame" commandName="Show Annotations" category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXw3uFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.navigate.forward" commandName="Forward" description="Navigate forward" category="_LcV7h-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXw3-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.xml.ui.cmnd.contentmodel.sych" commandName="Synch" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcXw4OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.team.cvs.ui.updateSwitch" commandName="Switch to Another Branch or Version" description="Switch to Another Branch or Version" category="_LcVUceFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcYXwOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.replace.invocations" commandName="Replace Invocations" description="Replace invocations of the selected method" category="_LcV7iuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcYXweFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.file.closeAllSaved" commandName="Close All Saved" description="Close all saved editors" category="_LcVUeuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcYXwuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.deletePreviousWord" commandName="Delete Previous Word" description="Delete the previous word" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcYXw-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.indent" commandName="Indent Line" description="Indents the current line" category="_LcVUguFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcYXxOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.sse.ui.toggle.comment" commandName="Toggle Comment" description="Toggle Comment" category="_LcVUj-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcYXxeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.deletePrevious" commandName="Delete Previous" description="Delete the previous character" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcYXxuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.set.mark" commandName="Set Mark" description="Set the mark" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcYXx-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.team.OpenCommit" commandName="Open Git Commit" category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcYXyOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.team.RenameBranch" commandName="Rename Branch" category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcYXyeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.epp.mpc.ui.command.showMarketplaceWizard" commandName="Eclipse Marketplace" description="Show the Eclipse Marketplace wizard" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcYXyuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.file.exit" commandName="Exit" description="Exit the application" category="_LcVUeuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcYXy-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.team.ConfigurePush" commandName="Configure Upstream Push" category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcYXzOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.ide.deleteCompleted" commandName="Delete Completed Tasks" description="Delete the tasks marked as completed" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcYXzeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.debug.ui.DebugPerspective" commandName="Debug" description="Open the debug perspective" category="_LcVUcOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcYXzuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.generate.javadoc" commandName="Generate JSDoc" description="Generates JSDoc for a selectable set of JavaScript resources" category="_LcVUduFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcYXz-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.ltk.ui.refactoring.commands.deleteResources" commandName="Delete Resources" description="Delete the selected resources and notify LTK participants." category="_LcV7iOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcYX0OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.tasks.ui.command.maximizePart" commandName="Maximize Part" description="Maximize Part" category="_LcVUgeFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcYX0eFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.navigate.next" commandName="Next" description="Navigate to the next item" category="_LcV7h-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcYX0uFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.extract.local.variable" commandName="Extract Local Variable" description="Extracts an expression into a new local variable and uses the new local variable" category="_LcVUheFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcYX0-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.show.outline" commandName="Quick Outline" description="Show the quick outline for the editor input" category="_LcV7h-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcYX1OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.search.references.in.project" commandName="References in Project" description="Search for references to the selected element in the enclosing project" category="_LcVUjOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcYX1eFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.project.buildAutomatically" commandName="Build Automatically" description="Toggle the workspace build automatically function" category="_LcVUduFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcYX1uFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.sse.ui.structure.select.last" commandName="Restore Last Selection" description="Restore last selection" category="_LcVUj-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcYX1-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.jpt.jpa.ui.xmlFileUpgradeToLatestVersion" commandName="Upgrade JPA Document Version" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcYX2OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.search.declarations.in.workspace" commandName="Declaration in Workspace" description="Search for declarations of the selected element in the workspace" category="_LcVUjOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcYX2eFIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.wikitext.ui.editor.showCheatSheetCommand" commandName="Show Markup Cheat Sheet" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcYX2uFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.search.references.in.hierarchy" commandName="References in Hierarchy" description="Search for references of the selected element in its hierarchy" category="_LcVUjOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcYX2-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.pde.ui.openDependencies" commandName="Open Plug-in Dependencies" description="Opens the plug-in dependencies view for the current plug-in" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcYX3OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.ProjectsView" commandName="JavaScript Projects" description="Show the Projects view" category="_LcVUd-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcYX3eFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.organize.imports" commandName="Organize Imports" description="Evaluate all required imports and replace the current imports" category="_LcVUguFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcYX3uFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.junit.junitShortcut.rerunFailedFirst" commandName="Rerun JUnit Test - Failures First" description="Rerun JUnit Test - Failures First" category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcYX3-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.extract.interface" commandName="Extract Interface" description="Extract a set of members into a new interface and try to use the new interface" category="_LcVUheFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcYX4OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.browser.openBundleResource" commandName="Open Resource in Browser" description="Opens a bundle resource in the default web browser." category="_LcVUc-FIEeW3CZUaZ-3o8w">
+ <parameters xmi:id="_LcYX4eFIEeW3CZUaZ-3o8w" elementId="plugin" name="Plugin"/>
+ <parameters xmi:id="_LcYX4uFIEeW3CZUaZ-3o8w" elementId="path" name="Path"/>
+ </commands>
+ <commands xmi:id="_LcYX4-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.ContinueRebase" commandName="Continue Rebase" category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcYX5OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.add.javadoc.comment" commandName="Add JSDoc Comment" description="Add a JSDoc comment stub to the member element" category="_LcVUguFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcYX5eFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.window.preferences" commandName="Preferences" description="Open the preferences dialog" category="_LcVUc-FIEeW3CZUaZ-3o8w">
+ <parameters xmi:id="_LcYX5uFIEeW3CZUaZ-3o8w" elementId="preferencePageId" name="Preference Page"/>
+ </commands>
+ <commands xmi:id="_LcYX5-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.toggleShowWhitespaceCharacters" commandName="Show Whitespace Characters" description="Shows whitespace characters in current text editor" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcYX6OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.internal.reflog.CopyCommand" commandName="Copy SHA-1" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcYX6eFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.file.close" commandName="Close" description="Close the active editor" category="_LcVUeuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcYX6uFIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.tasks.ui.command.goToPreviousUnread" commandName="Go To Previous Unread Task" category="_LcV7h-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcYX6-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.newWizard" commandName="New" description="Open the New item wizard" category="_LcVUeuFIEeW3CZUaZ-3o8w">
+ <parameters xmi:id="_LcYX7OFIEeW3CZUaZ-3o8w" elementId="newWizardId" name="New Wizard"/>
+ </commands>
+ <commands xmi:id="_LcYX7eFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.inline" commandName="Inline" description="Inline a constant, local variable or method" category="_LcV7iuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcYX7uFIEeW3CZUaZ-3o8w" elementId="org.eclipse.team.cvs.ui.showHistory" commandName="Show History" description="Show History" category="_LcVUceFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcYX7-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.help.tipsAndTricksAction" commandName="Tips and Tricks" description="Open the tips and tricks help page" category="_LcV7guFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcYX8OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.search.write.access.in.hierarchy" commandName="Write Access in Hierarchy" description="Search for write references of the selected element in its hierarchy" category="_LcVUjOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcYX8eFIEeW3CZUaZ-3o8w" elementId="org.eclipse.m2e.core.ui.command.updateProject" commandName="Update Project" description="Update Maven Project configuration and dependencies" category="_LcVUc-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcYX8uFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jpt.jpa.ui.newMappingFile" commandName="JPA ORM Mapping File" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcYX8-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.correction.extractConstant.assist" commandName="Quick Assist - Extract constant" description="Invokes quick assist and selects 'Extract constant'" category="_LcVUguFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcYX9OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.debug.ui.commands.RunToLine" commandName="Run to Line" description="Resume and break when execution reaches the current line" category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcYX9eFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.quick.format" commandName="Format Element" description="Format enclosing text element" category="_LcVUguFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcYX9uFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.xml.ui.gotoMatchingTag" commandName="Matching Tag" description="Go to Matching Tag" category="_LcVUj-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcYX9-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.datatools.sqltools.sqleditor.debugAction" commandName="Debug" category="_LcVUdOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcYX-OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.infer.type.arguments" commandName="Infer Generic Type Arguments" description="Infer type arguments for references to generic classes and remove unnecessary casts" category="_LcV7iuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcYX-eFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jpt.jpa.ui.newEntity" commandName="JPA Entity" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcYX-uFIEeW3CZUaZ-3o8w" elementId="org.eclipse.debug.ui.commands.Restart" commandName="Restart" description="Restart a process or debug target without terminating and re-launching" category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcYX--FIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.navigate.openResource" commandName="Open Resource" description="Open an editor on a particular resource" category="_LcV7h-FIEeW3CZUaZ-3o8w">
+ <parameters xmi:id="_LcY-0OFIEeW3CZUaZ-3o8w" elementId="filePath" name="File Path" typeId="org.eclipse.ui.ide.resourcePath"/>
+ </commands>
+ <commands xmi:id="_LcY-0eFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.debug.ui.commands.InstanceCount" commandName="Instance Count" description="View the instance count of the selected type loaded in the target VM" category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcY-0uFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.help.helpContents" commandName="Help Contents" description="Open the help contents" category="_LcV7guFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcY-0-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.correction.qualifyField" commandName="Quick Fix - Qualify field access" description="Invokes quick assist and selects 'Qualify field access'" category="_LcV7ieFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcY-1OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.file.saveAll" commandName="Save All" description="Save all current contents" category="_LcVUeuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcY-1eFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.remove.block.comment" commandName="Remove Block Comment" description="Remove the block comment enclosing the selection" category="_LcVUguFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcY-1uFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.correction.assignToLocal.assist" commandName="Quick Assist - Assign to local variable" description="Invokes quick assist and selects 'Assign to local variable'" category="_LcV7ieFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcY-1-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.pde.ui.runtimeWorkbenchShortcut.debug" commandName="Debug Eclipse Application" description="Debug Eclipse Application" category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcY-2OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.sse.ui.format.document" commandName="Format" description="Format selection" category="_LcVUj-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcY-2eFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.select.textEnd" commandName="Select Text End" description="Select to the end of the text" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcY-2uFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.delete.line" commandName="Delete Line" description="Delete a line of text" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcY-2-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.goto.previous.member" commandName="Go to Previous Member" description="Move the caret to the previous member of the JavaScript file" category="_LcV7h-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcY-3OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.search.ui.performTextSearchProject" commandName="Find Text in Project" description="Searches the files in the project for specific text." category="_LcVUjOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcY-3eFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.commands.openElementInEditor" commandName="Open Java Element" description="Open a Java element in its editor" category="_LcV7h-FIEeW3CZUaZ-3o8w">
+ <parameters xmi:id="_LcY-3uFIEeW3CZUaZ-3o8w" elementId="elementRef" name="Java element reference" typeId="org.eclipse.jdt.ui.commands.javaElementReference" optional="false"/>
+ </commands>
+ <commands xmi:id="_LcY-3-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.window.maximizePart" commandName="Maximize Active View or Editor" description="Toggles maximize/restore state of active view or editor" category="_LcVUc-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcY-4OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.ide.configureColumns" commandName="Configure Columns..." description="Configure the columns in the markers view" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcY-4eFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.debug.ui.commands.AddClassPrepareBreakpoint" commandName="Add Class Load Breakpoint" description="Add a class load breakpoint" category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcY-4uFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jpt.jpa.eclipselink.ui.newEclipseLinkMappingFile" commandName="EclipseLink ORM Mapping File" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcY-4-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.commit.CherryPick" commandName="Cherry Pick" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcY-5OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.pde.ui.EquinoxLaunchShortcut.run" commandName="Run OSGi Framework" description="Run OSGi Framework" category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcY-5eFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.editors.revisions.id.toggle" commandName="Toggle Revision Id Display" description="Toggles the display of the revision id" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcY-5uFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.goto.matching.bracket" commandName="Go to Matching Bracket" description="Moves the cursor to the matching bracket" category="_LcV7h-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcY-5-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.debug.ui.commands.eof" commandName="EOF" description="Send end of file" category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcY-6OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.rse.terminals.ui.actions.LaunchTerminalCommand" commandName="Launch Terminal " category="_LcVUe-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcY-6eFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.search.method.exits" commandName="Search Method Exit Occurrences in File" description="Search for method exit occurrences of a selected return type" category="_LcVUjOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcY-6uFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.editors.quickdiff.revert" commandName="Revert Lines" description="Revert the current selection, block or deleted lines" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcY-6-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.xsd.ui.refactor.makeElementGlobal" commandName="Make Local Element &Global" description="Promotes local element to global level and replaces its references" category="_LcVUj-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcY-7OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.goto.pageDown" commandName="Page Down" description="Go down one page" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcY-7eFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.navigate.goInto" commandName="Go Into" description="Navigate into the selected item" category="_LcV7h-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcY-7uFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.goto.windowStart" commandName="Window Start" description="Go to the start of the window" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcY-7-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.open.super.implementation" commandName="Open Super Implementation" description="Open the Implementation in the Super Type" category="_LcV7h-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcY-8OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.correction.addBlock.assist" commandName="Quick Assist - Replace statement with block" description="Invokes quick assist and selects 'Replace statement with block'" category="_LcVUguFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcY-8eFIEeW3CZUaZ-3o8w" elementId="org.eclipse.debug.ui.commands.Terminate" commandName="Terminate" description="Terminate" category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcY-8uFIEeW3CZUaZ-3o8w" elementId="org.eclipse.pde.ui.createAntBuildFile" commandName="Create Ant Build File" description="Creates an Ant build file for the current project" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcY-8-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.pde.runtime.spy.commands.menuSpyCommand" commandName="Plug-in Menu Spy" description="Show the Plug-in Spy" category="_LcVUeOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcY-9OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.use.supertype" commandName="Use Supertype Where Possible" description="Change occurrences of a type to use a supertype instead" category="_LcVUheFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcY-9eFIEeW3CZUaZ-3o8w" elementId="org.eclipse.debug.ui.command.gotoaddress" commandName="Go to Address" description="Go to Address" category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcY-9uFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.window.switchToEditor" commandName="Switch to Editor" description="Switch to an editor" category="_LcVUc-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcY-9-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.window.previousView" commandName="Previous View" description="Switch to the previous view" category="_LcVUc-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcY--OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.search.write.access.in.hierarchy" commandName="Write Access in Hierarchy" description="Search for write references of the selected element in its hierarchy" category="_LcVUjOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcY--eFIEeW3CZUaZ-3o8w" elementId="org.eclipse.debug.ui.commands.closeRendering" commandName="Close Rendering" description="Close the selected rendering." category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcY--uFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.navigate.linkWithEditor" commandName="Toggle Link with Editor " description="Toggles linking of a view's selection with the active editor's selection" category="_LcV7h-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcY---FIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.convert.anonymous.to.nested" commandName="Convert Anonymous Class to Nested" description="Convert an anonymous class to a nested class" category="_LcVUheFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcY-_OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.navigate.open.type" commandName="Open Type" description="Open a type in a Java editor" category="_LcV7h-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcY-_eFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.sse.ui.open.file.from.source" commandName="Open Selection" description="Open an editor on the selected link" category="_LcVUj-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcY-_uFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.window.previousPerspective" commandName="Previous Perspective" description="Switch to the previous perspective" category="_LcVUc-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcY-_-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.team.Disconnect" commandName="Disconnect" category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcY_AOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.tasks.ui.command.markTaskUnread" commandName="Mark Task Unread" category="_LcVUjuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcY_AeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.folding.expand" commandName="Expand" description="Expands the folded region at the current selection" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcY_AuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.RepositoriesViewRemove" commandName="Remove Repository" category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcY_A-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.team.PushTags" commandName="Push Tags..." category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcY_BOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.search.read.access.in.working.set" commandName="Read Access in Working Set" description="Search for read references to the selected element in a working set" category="_LcVUjOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcY_BeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.junit.gotoTest" commandName="Referring Tests" description="Referring Tests" category="_LcVUjOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcY_BuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.history.CompareWithWorkingTree" commandName="Compare with Working Directory" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcY_B-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.ant.ui.open.declaration.command" commandName="Open Declaration" description="Opens the Ant editor on the referenced element" category="_LcV7ieFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcY_COFIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.context.ui.commands.task.copyContext" commandName="Copy Context" category="_LcV7huFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcY_CeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.search.implementors.in.project" commandName="Implementors in Project" description="Search for implementors of the selected interface in the enclosing project" category="_LcVUjOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcY_CuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.file.closePart" commandName="Close Part" description="Close the active workbench part" category="_LcVUc-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcY_C-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.history.OpenInCommitViewerCommand" commandName="Open in Commit Viewer" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcY_DOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ltk.ui.refactor.apply.refactoring.script" commandName="Apply Script" description="Perform refactorings from a refactoring script on the local workspace" category="_LcV7iuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcY_DeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.infer.type.arguments" commandName="Infer Generic Type Arguments" description="Infer type arguments for references to generic classes and remove unnecessary casts" category="_LcVUheFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcY_DuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jpt.jpa.eclipselink.ui.newDynamicEntity" commandName="EclipseLink Dynamic Entity" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcY_D-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.gef.zoom_in" commandName="Zoom In" description="Zoom In" category="_LcV7geFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcZl4OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.correction.assist.proposals" commandName="Quick Fix" description="Suggest possible fixes for a problem" category="_LcVUj-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcZl4eFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.debug.ui.commands.Watch" commandName="Watch" description="Create new watch expression" category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcZl4uFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.team.Untrack" commandName="Untrack" category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcZl4-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.tasks.ui.command.activateSelectedTask" commandName="Activate Selected Task" category="_LcV7h-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcZl5OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.goto.previous.member" commandName="Go to Previous Member" description="Move the caret to the previous member of the compilation unit" category="_LcV7h-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcZl5eFIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.commons.ui.command.AddRepository" commandName="Add Repository" category="_LcVUjeFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcZl5uFIEeW3CZUaZ-3o8w" elementId="org.eclipse.datatools.sqltools.sqleditor.ExecuteCurrentAction" commandName="Execute Current Text" category="_LcVUdOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcZl5-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.project.buildProject" commandName="Build Project" description="Build the selected project" category="_LcVUduFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcZl6OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.sse.ui.add.block.comment" commandName="Add Block Comment" description="Add Block Comment" category="_LcVUj-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcZl6eFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.window.showSystemMenu" commandName="Show System Menu" description="Show the system menu" category="_LcVUc-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcZl6uFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.self.encapsulate.field" commandName="Encapsulate Field" description="Create getting and setting methods for the field and use only those to access the field" category="_LcV7iuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcZl6-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.debug.ui.commands.newRendering" commandName="New Rendering" description="Add a new rendering." category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcZl7OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.select.pageDown" commandName="Select Page Down" description="Select to the bottom of the page" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcZl7eFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.navigate.open.type.in.hierarchy" commandName="Open Type in Hierarchy" description="Open a type in the type hierarchy view" category="_LcV7h-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcZl7uFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.team.SimplePush" commandName="Push to Upstream" category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcZl7-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.TypeHierarchy" commandName="JavaScript Type Hierarchy" description="Show the Type Hierarchy view" category="_LcVUd-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcZl8OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.history.OpenInTextEditorCommand" commandName="Open in Text Editor" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcZl8eFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.open.hyperlink" commandName="Open Hyperlink" description="Opens the hyperlink at the caret location or opens a chooser if more than one hyperlink is available" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcZl8uFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jpt.jpa.ui.convertJavaGenerators" commandName="Move Java Generators to XML..." category="_LcVUhOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcZl8-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.compare.selectPreviousChange" commandName="Select Previous Change" description="Select Previous Change" category="_LcV7heFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcZl9OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.gef.zoom_out" commandName="Zoom Out" description="Zoom Out" category="_LcV7geFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcZl9eFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.rename.element" commandName="Rename - Refactoring " description="Rename the selected element" category="_LcV7iuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcZl9uFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.ToggleCoolbarAction" commandName="Toggle Toolbar Visibility" description="Toggles the visibility of the window toolbar" category="_LcVUc-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcZl9-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.select.wordPrevious" commandName="Select Previous Word" description="Select the previous word" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcZl-OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.RebaseInteractiveCurrent" commandName="%RebaseInteractiveCurrentHandler.name" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcZl-eFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.xsl.debug.ui.launchshortcut.debug" commandName="Debug XSLT Transformation" description="Create a configuration to debug an XSLT transformation" category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcZl-uFIEeW3CZUaZ-3o8w" elementId="org.eclipse.tm.terminal.copy" commandName="Copy" category="_LcV7g-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcZl--FIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.findReplace" commandName="Find and Replace" description="Find and replace text" category="_LcVUj-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcZl_OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.compare.copyLeftToRight" commandName="Copy from Left to Right" description="Copy Current Change from Left to Right" category="_LcV7heFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcZl_eFIEeW3CZUaZ-3o8w" elementId="org.eclipse.team.ui.applyPatch" commandName="Apply Patch..." description="Apply a patch to one or more workspace projects." category="_LcV7gOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcZl_uFIEeW3CZUaZ-3o8w" elementId="org.eclipse.quickdiff.toggle" commandName="Quick Diff Toggle" description="Toggles quick diff information display on the line number ruler" category="_LcVUj-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcZl_-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.RepositoriesViewRenameBranch" commandName="Rename Branch..." category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcZmAOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.toggleInsertMode" commandName="Toggle Insert Mode" description="Toggle insert mode" category="_LcVUj-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcZmAeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.open.editor" commandName="Open Declaration" description="Open an editor on the selected element" category="_LcV7h-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcZmAuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jst.pagedesigner.horizotal" commandName="Horizontal Layout" category="_LcV7hOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcZmA-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.navigate.nextSubTab" commandName="Next Sub-Tab" description="Switch to the next sub-tab" category="_LcV7h-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcZmBOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.pde.ui.openPluginArtifact" commandName="Open Plug-in Artifact" description="Open a plug-in artifact in the manifest editor" category="_LcV7h-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcZmBeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.quick.format" commandName="Format Element" description="Format enclosing text element" category="_LcV7ieFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcZmBuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.addBookmark" commandName="Add Bookmark" description="Add a bookmark" category="_LcVUj-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcZmB-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.move.element" commandName="Move - Refactoring " description="Move the selected element to a new location" category="_LcVUheFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcZmCOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.tasks.ui.command.task.clearOutgoing" commandName="Clear Outgoing Changes" category="_LcVUjuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcZmCeFIEeW3CZUaZ-3o8w" elementId="refresh.schema.editor.action.id" commandName="Refresh from Server" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcZmCuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.context.ui.commands.task.retrieveContext" commandName="Retrieve Context" category="_LcV7huFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcZmC-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.RepositoriesViewAddRepository" commandName="Add a Git Repository" category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcZmDOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.MembersView" commandName="JavaScript Members" description="Show the Members view" category="_LcVUd-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcZmDeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.datatools.sqltools.result.removeInstance" commandName="Remove Result" category="_LcVUg-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcZmDuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.project.rebuildAll" commandName="Rebuild All" description="Rebuild all projects" category="_LcVUduFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcZmD-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.move.inner.to.top.level" commandName="Convert Member Type to Top Level" description="Convert member type to top level" category="_LcVUheFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcZmEOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.correction.assignToField.assist" commandName="Quick Assist - Assign to var" description="Invokes quick assist and selects 'Assign to var'" category="_LcVUguFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcZmEeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.window.activateEditor" commandName="Activate Editor" description="Activate the editor" category="_LcVUc-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcZmEuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.organize.imports" commandName="Organize Imports" description="Evaluate all required imports and replace the current imports" category="_LcV7ieFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcZmE-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.navigate.java.open.structure" commandName="Open Structure" description="Show the structure of the selected element" category="_LcV7h-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcZmFOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.compare.copyAllRightToLeft" commandName="Copy All from Right to Left" description="Copy All Changes from Right to Left" category="_LcV7heFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcZmFeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.history.PushCommit" commandName="Push Commit..." category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcZmFuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.project.closeUnrelatedProjects" commandName="Close Unrelated Projects" description="Close unrelated projects" category="_LcVUduFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcZmF-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.debug.ui.commands.ToggleBreakpoint" commandName="Toggle Breakpoint" description="Creates or removes a breakpoint" category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcZmGOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.compare.ignoreWhiteSpace" commandName="Ignore White Space" description="Ignore white space where applicable" category="_LcV7heFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcZmGeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.RepositoriesViewConfigureGerritRemote" commandName="Gerrit Configuration..." category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcZmGuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.goto.lineDown" commandName="Line Down" description="Go down one line of text" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcZmG-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.navigate.previousTab" commandName="Previous Tab" description="Switch to the previous tab" category="_LcV7h-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcZmHOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.SkipRebase" commandName="Skip commit and continue" category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcZmHeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.gotoLastEditPosition" commandName="Last Edit Location" description="Last edit location" category="_LcV7h-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcZmHuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.debug.ui.commands.toggleMemoryMonitorsPane" commandName="Toggle Memory Monitors Pane" description="Toggle visibility of the Memory Monitors Pane" category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcZmH-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.tasks.ui.command.openSelectedTask" commandName="Open Selected Task" category="_LcVUjuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcaM8OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.correction.assignToLocal.assist" commandName="Quick Assist - Assign to local variable" description="Invokes quick assist and selects 'Assign to local variable'" category="_LcVUguFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcaM8eFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.ide.copyBuildIdCommand" commandName="Copy Build Id To Clipboard" description="Copies the build id to the clipboard." category="_LcVUj-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcaM8uFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.search.declarations.in.hierarchy" commandName="Declaration in Hierarchy" description="Search for declarations of the selected element in its hierarchy" category="_LcVUjOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcaM8-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.correction.inlineLocal.assist" commandName="Quick Assist - Inline local variable" description="Invokes quick assist and selects 'Inline local variable'" category="_LcV7ieFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcaM9OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.navigate.collapseAll" commandName="Collapse All" description="Collapse the current tree" category="_LcV7h-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcaM9eFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.team.submodule.update" commandName="Update Submodule" category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcaM9uFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.folding.toggle" commandName="Toggle Folding" description="Toggles folding in the current editor" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcaM9-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.xml.ui.referencedFileErrors" commandName="Show Details..." description="Show Details..." category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcaM-OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.commands.showElementInTypeHierarchyView" commandName="Show JavaScript Element Type Hierarchy" description="Show a JavaScript element in the Type Hierarchy view" category="_LcV7h-FIEeW3CZUaZ-3o8w">
+ <parameters xmi:id="_LcaM-eFIEeW3CZUaZ-3o8w" elementId="elementRef" name="JavaScript element reference" typeId="org.eclipse.wst.jsdt.ui.commands.javaElementReference" optional="false"/>
+ </commands>
+ <commands xmi:id="_LcaM-uFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.comment" commandName="Comment" description="Turn the selected lines into Java comments" category="_LcV7ieFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcaM--FIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.search.implementors.in.workspace" commandName="Implementors in Workspace" description="Search for implementors of the selected interface" category="_LcVUjOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcaM_OFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.correction.addNonNLS" commandName="Quick Fix - Add non-NLS tag" description="Invokes quick assist and selects 'Add non-NLS tag'" category="_LcV7ieFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcaM_eFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.format" commandName="Format" description="Format the selected text" category="_LcV7ieFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcaM_uFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.debug.ui.commands.Display" commandName="Display" description="Display result of evaluating selected text" category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcaM_-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.folding.collapseMembers" commandName="Collapse Members" description="Collapse all members" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcaNAOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.file.revert" commandName="Revert" description="Revert to the last saved state" category="_LcVUeuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcaNAeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.clean.up" commandName="Clean Up" description="Solve problems and improve code style on selected resources" category="_LcV7ieFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcaNAuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jst.jsp.ui.refactor.move" commandName="Move" description="Move a Java Element to another package" category="_LcVUj-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcaNA-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.java.ui.editor.folding.auto" commandName="Toggle Active Folding" description="Toggle Active Folding" category="_LcVUiOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcaNBOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.redo" commandName="Redo" description="Redo the last operation" category="_LcVUj-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcaNBeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.join.lines" commandName="Join Lines" description="Join lines of text" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcaNBuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.externalize.strings" commandName="Externalize Strings" description="Finds all strings that are not externalized and moves them into a separate property file" category="_LcV7ieFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcaNB-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.pull.up" commandName="Pull Up" description="Move members to a superclass" category="_LcVUheFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcaNCOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.navigate.forwardHistory" commandName="Forward History" description="Move forward in the editor navigation history" category="_LcV7h-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcaNCeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.tasks.ui.command.SynchronizeAll" commandName="Synchronize Changed" category="_LcVUjuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcaNCuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.pde.ui.internationalize" commandName="Internationalize Plug-ins" description="Sets up internationalization for a plug-in" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcaNC-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.m2e.discovery.ui" commandName="m2e Marketplace" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcaNDOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.team.cvs.ui.commit" commandName="Commit" description="Commit resources to the repository" category="_LcVUceFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcaNDeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jpt.jpa.ui.persistentAttributeAddToXmlAndMap" commandName="Add Attribute to XML and Map..." category="_LcVUgOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcaNDuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.debug.ui.commands.RunLast" commandName="Run" description="Launch in run mode" category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcaND-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.copyLineUp" commandName="Duplicate Lines" description="Duplicates the selected lines and leaves the selection unchanged" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcaNEOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.datatools.sqltools.sqleditor.toggleCommentAction" commandName="Toggle Comment" category="_LcVUj-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcaNEeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.correction.addCast" commandName="Quick Fix - Add cast" description="Invokes quick assist and selects 'Add cast'" category="_LcV7ieFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcaNEuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.refactor.quickMenu" commandName="Show Refactor Quick Menu" description="Shows the refactor quick menu" category="_LcV7iuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcaNE-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.commit.CreateBranch" commandName="Create Branch..." category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcaNFOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.navigate.removeFromWorkingSet" commandName="Remove From Working Set" description="Removes the selected object from a working set." category="_LcVUj-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcaNFeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.debug.ui.javaAppletShortcut.debug" commandName="Debug Java Applet" description="Debug Java Applet" category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcaNFuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.team.ReplaceWithCommit" commandName="Replace with commit" category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcaNF-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.team.DeleteBranch" commandName="Delete Branch" category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcaNGOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.team.ApplyPatch" commandName="Apply Patch" category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcaNGeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.folding.collapse" commandName="Collapse" description="Collapses the folded region at the current selection" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcaNGuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.navigate.gotopackage" commandName="Go to Package" description="Go to Package" category="_LcV7h-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcaNG-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.search.write.access.in.project" commandName="Write Access in Project" description="Search for write references to the selected element in the enclosing project" category="_LcVUjOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcaNHOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.equinox.p2.ui.sdk.install" commandName="Install New Software..." category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcaNHeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jpt.jpa.core.synchronizeClasses" commandName="Synchronize Class List" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcaNHuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.window.nextView" commandName="Next View" description="Switch to the next view" category="_LcVUc-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcaNH-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.junit.junitShortcut.run" commandName="Run JUnit Test" description="Run JUnit Test" category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcaNIOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.file.properties" commandName="Properties" description="Display the properties of the selected item" category="_LcVUeuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcaNIeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.search.exception.occurrences" commandName="Search Exception Occurrences in File" description="Search for exception occurrences of a selected exception type" category="_LcVUjOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcaNIuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.debug.ui.actions.WatchCommand" commandName="Watch" description="Create a watch expression from the current selection and add it to the Expressions view" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcaNI-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.moveLineUp" commandName="Move Lines Up" description="Moves the selected lines up" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcaNJOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.emf.codegen.ecore.ui.Generate" commandName="Generate Code" description="Generate code for the EMF models in the workspace" category="_LcVUf-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcaNJeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.TypesView" commandName="JavaScript Types" description="Show the Types view" category="_LcVUd-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcaNJuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.correction.assignToField.assist" commandName="Quick Assist - Assign to field" description="Invokes quick assist and selects 'Assign to field'" category="_LcV7ieFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcaNJ-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.modify.method.parameters" commandName="Change Method Signature" description="Change method signature includes parameter names and parameter order" category="_LcV7iuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcaNKOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.copyLineDown" commandName="Copy Lines" description="Duplicates the selected lines and moves the selection to the copy" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcaNKeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.toggleMarkOccurrences" commandName="Toggle Mark Occurrences" description="Toggles mark occurrences in JavaScript editors" category="_LcVUguFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcaNKuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.remove.occurrence.annotations" commandName="Remove Occurrence Annotations" description="Removes the occurrence annotations from the current editor" category="_LcV7ieFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcaNK-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.correction.addBlock.assist" commandName="Quick Assist - Replace statement with block" description="Invokes quick assist and selects 'Replace statement with block'" category="_LcV7ieFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcaNLOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.history.CherryPick" commandName="Cherry Pick" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcaNLeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.extract.method" commandName="Extract Function" description="Extract a set of statements or an expression into a new function and use the new function" category="_LcVUheFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lca0AOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.ConfigureUpstreamFetch" commandName="Configure Upstream Fetch" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lca0AeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.team.Merge" commandName="Merge" category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lca0AuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.introduce.parameter" commandName="Introduce Parameter" description="Introduce a new method parameter based on the selected expression" category="_LcV7iuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lca0A-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.refactor.migrate.jar" commandName="Migrate JAR File" description="Migrate a JAR File to a new version" category="_LcVUheFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lca0BOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.introduce.parameter" commandName="Introduce Parameter" description="Introduce a new function parameter based on the selected expression" category="_LcVUheFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lca0BeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.history.ResetQuickdiffBaseline" commandName="Reset quickdiff baseline" category="_LcVUkOFIEeW3CZUaZ-3o8w">
+ <parameters xmi:id="_Lca0BuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.history.ResetQuickdiffBaselineTarget" name="Reset target (HEAD, HEAD^1)" optional="false"/>
+ </commands>
+ <commands xmi:id="_Lca0B-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.find.broken.nls.keys" commandName="Find Broken Externalized Strings" description="Finds undefined, duplicate and unused externalized string keys in property files" category="_LcVUguFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lca0COFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.team.submodule.add" commandName="Add Submodule" category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lca0CeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.project.rebuildProject" commandName="Rebuild Project" description="Rebuild the selected projects" category="_LcVUduFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lca0CuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.goto.matching.bracket" commandName="Go to Matching Bracket" description="Moves the cursor to the matching bracket" category="_LcV7h-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lca0C-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.clear.mark" commandName="Clear Mark" description="Clear the mark" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lca0DOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.wikitext.ui.convertToHtmlCommand" commandName="Generate HTML" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lca0DeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.pde.ui.updateClasspath" commandName="Update Classpath" description="Updates the plug-in classpath from latest settings" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lca0DuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.team.ReplaceWithHead" commandName="Replace with HEAD revision" category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lca0D-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.cheatsheets.openCheatSheet" commandName="Open Cheat Sheet" description="Open a Cheat Sheet." category="_LcV7guFIEeW3CZUaZ-3o8w">
+ <parameters xmi:id="_Lca0EOFIEeW3CZUaZ-3o8w" elementId="cheatSheetId" name="Identifier"/>
+ </commands>
+ <commands xmi:id="_Lca0EeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.source.quickMenu" commandName="Show Source Quick Menu" description="Shows the source quick menu" category="_LcVUguFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lca0EuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.datatools.sqltools.sqleditor.saveAsTemplateAction" commandName="Save as Template" category="_LcVUdOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lca0E-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.RepositoriesViewOpen" commandName="Open" category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lca0FOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.RepositoriesToggleBranchCommit" commandName="Toggle Latest Branch Commit" category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lca0FeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jpt.jpa.ui.makePersistent" commandName="Make Persistent..." category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lca0FuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.tm.terminal.command1" commandName="Terminal view insert" category="_LcV7g-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lca0F-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.history.CompareVersions" commandName="Compare with each other" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lca0GOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.contentAssist.contextInformation" commandName="Context Information" description="Show Context Information" category="_LcVUj-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lca0GeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.introduce.indirection" commandName="Introduce Indirection" description="Introduce an indirection to encapsulate invocations of a selected method" category="_LcV7iuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lca0GuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.m2e.core.ui.command.addDependency" commandName="Add Maven Dependency" description="Add Maven Dependency" category="_LcVUj-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lca0G-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.sse.ui.goto.matching.bracket" commandName="Matching Character" description="Go to Matching Character" category="_LcV7h-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lca0HOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.upperCase" commandName="To Upper Case" description="Changes the selection to upper case" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lca0HeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.search.declarations.in.hierarchy" commandName="Declaration in Hierarchy" description="Search for declarations of the selected element in its hierarchy" category="_LcVUjOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lca0HuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.context.ui.commands.focus.view" commandName="Focus View" category="_LcVUkOFIEeW3CZUaZ-3o8w">
+ <parameters xmi:id="_Lca0H-FIEeW3CZUaZ-3o8w" elementId="viewId" name="View ID to Focus" optional="false"/>
+ </commands>
+ <commands xmi:id="_Lca0IOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.debug.ui.commands.DropToFrame" commandName="Drop to Frame" description="Drop to Frame" category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lca0IeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.RepositoriesViewNewRemote" commandName="Create Remote..." category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lca0IuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.wsdl.ui.refactor.rename.element" commandName="Rename WSDL component" description="Renames WSDL component" category="_LcVUj-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lca0I-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.search.ui.openFileSearchPage" commandName="File Search" description="Open the Search dialog's file search page" category="_LcVUjOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lca0JOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.history.CreatePatch" commandName="Create Patch" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lca0JeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.sse.ui.generate.xml" commandName="&XML File..." category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lca0JuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.team.clean" commandName="Clean..." category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lca0J-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.search.occurrences.in.file.quickMenu" commandName="Show Occurrences in File Quick Menu" description="Shows the Occurrences in File quick menu" category="_LcVUjOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lca0KOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.extract.class" commandName="Extract Class..." description="Extracts fields into a new class" category="_LcV7iuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lca0KeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.navigate.selectWorkingSets" commandName="Select Working Sets" description="Select the working sets that are applicable for this window." category="_LcVUc-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lca0KuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.extract.superclass" commandName="Extract Superclass" description="Extract a set of members into a new superclass and try to use the new superclass" category="_LcVUheFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lca0K-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.search.read.access.in.hierarchy" commandName="Read Access in Hierarchy" description="Search for read references of the selected element in its hierarchy" category="_LcVUjOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lca0LOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.wikitext.ui.quickOutlineCommand" commandName="Quick Outline" description="Open a popup dialog with a quick outline of the current document" category="_LcV7h-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lca0LeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.command.configureTrace" commandName="Configure Git Debug Trace" category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lca0LuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.folding.collapseMembers" commandName="Collapse Members" description="Collapse all members" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lca0L-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.search.write.access.in.working.set" commandName="Write Access in Working Set" description="Search for write references to the selected element in a working set" category="_LcVUjOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lca0MOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.compare.selectNextChange" commandName="Select Next Change" description="Select Next Change" category="_LcV7heFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lca0MeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.debug.ui.commands.RemoveAllBreakpoints" commandName="Remove All Breakpoints" description="Removes all breakpoints" category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lca0MuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.window.newWindow" commandName="New Window" description="Open another window" category="_LcVUc-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lca0M-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.navigate.showResourceByPath" commandName="Show Resource in Navigator" description="Show a resource in the Navigator given its path" category="_LcV7h-FIEeW3CZUaZ-3o8w">
+ <parameters xmi:id="_Lca0NOFIEeW3CZUaZ-3o8w" elementId="resourcePath" name="Resource Path" typeId="org.eclipse.ui.ide.resourcePath" optional="false"/>
+ </commands>
+ <commands xmi:id="_Lca0NeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.correction.addImport" commandName="Quick Fix - Add import" description="Invokes quick assist and selects 'Add import'" category="_LcV7ieFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lca0NuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.correction.extractLocal.assist" commandName="Quick Assist - Extract local variable (replace all occurrences)" description="Invokes quick assist and selects 'Extract local variable (replace all occurrences)'" category="_LcV7ieFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lca0N-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.introduce.parameter.object" commandName="Introduce Parameter Object" description="Introduce a parameter object to a selected method" category="_LcV7iuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lca0OOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.shiftLeft" commandName="Shift Left" description="Shift a block of text to the left" category="_LcVUj-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lca0OeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.search.implementors.in.working.set" commandName="Implementors in Working Set" description="Search for implementors of the selected interface in a working set" category="_LcVUjOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lca0OuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.server.debug" commandName="Debug" description="Debug server" category="_LcVUieFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lca0O-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.create.delegate.methods" commandName="Generate Delegate Methods" description="Add delegate methods for a type's fields" category="_LcV7ieFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lca0POFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.sse.ui.search.find.occurrences" commandName="Occurrences in File" description="Find occurrences of the selection in the file" category="_LcVUj-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lca0PeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.team.cvs.ui.showAnnotation" commandName="Show Annotation" description="Show Annotation" category="_LcVUceFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lca0PuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.project.cleanAction" commandName="Build Clean" description="Discard old built state" category="_LcVUduFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lca0P-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.jst.pagedesigner.vertical" commandName="Vertical Layout" category="_LcV7hOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lca0QOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.team.cvs.ui.replace" commandName="Replace With Latest from Repository" description="Replace with last committed content from CVS Server" category="_LcVUceFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcbbEOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.search.implement.occurrences" commandName="Search Implement Occurrences in File" description="Search for implement occurrences of a selected type" category="_LcVUjOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcbbEeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.pde.ui.imagebrowser.saveToWorkspace" commandName="Save Image" description="Save the selected image into a project in the workspace" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcbbEuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.correction.addThrowsDecl" commandName="Quick Fix - Add throws declaration" description="Invokes quick assist and selects 'Add throws declaration'" category="_LcVUguFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcbbE-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.sse.ui.structure.select.previous" commandName="Select Previous Element" description="Expand selection to include previous sibling" category="_LcVUj-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcbbFOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.m2e.actions.LifeCycleTest.run" commandName="Run Maven Test" description="Run Maven Test" category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcbbFeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.create.getter.setter" commandName="Generate Getters and Setters" description="Generate Getter and Setter methods for type's fields" category="_LcV7ieFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcbbFuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.select.windowStart" commandName="Select Window Start" description="Select to the start of the window" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcbbF-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.refactor.migrate.jar" commandName="Migrate JAR File" description="Migrate a JAR File to a new version" category="_LcV7iuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcbbGOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.sse.ui.outline.customFilter" commandName="&Filters" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcbbGeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.open.super.implementation" commandName="Open Super Implementation" description="Open the Implementation in the Super Type" category="_LcV7h-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcbbGuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.navigate.open.type" commandName="Open Type" description="Open a type in a JavaScript editor" category="_LcV7h-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcbbG-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.datatools.sqltools.sqleditor.ExecuteSelectionAction" commandName="Execute Selected Text" category="_LcVUdOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcbbHOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.task.ui.editor.QuickOutline" commandName="Quick Outline" description="Show the quick outline for the editor input" category="_LcVUjuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcbbHeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.extract.constant" commandName="Extract Constant" description="Extracts a constant into a new static var and uses the new static var" category="_LcVUheFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcbbHuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.window.closeAllPerspectives" commandName="Close All Perspectives" description="Close all open perspectives" category="_LcVUc-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcbbH-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.jpt.jpa.ui.convertJavaProjectToJpa" commandName="Convert to JPA Project..." category="_LcVUeuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcbbIOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jpt.jpa.ui.entityMappingsAddPersistentClass" commandName="Add Class..." category="_LcVUgOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcbbIeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.correction.changeToStatic" commandName="Quick Fix - Change to static access" description="Invokes quick assist and selects 'Change to static access'" category="_LcVUguFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcbbIuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.findPrevious" commandName="Find Previous" description="Find previous item" category="_LcVUj-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcbbI-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.views.showView" commandName="Show View" description="Shows a particular view" category="_LcVUd-FIEeW3CZUaZ-3o8w">
+ <parameters xmi:id="_LcbbJOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.views.showView.viewId" name="View"/>
+ <parameters xmi:id="_LcbbJeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.views.showView.secondaryId" name="Secondary Id"/>
+ <parameters xmi:id="_LcbbJuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.views.showView.makeFast" name="As FastView"/>
+ </commands>
+ <commands xmi:id="_LcbbJ-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.datatools.enablement.sybase.asa.schemaobjecteditor.examples.tableschemaeditor.copycolumn" commandName="Copy" category="_LcVUcuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcbbKOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.extract.superclass" commandName="Extract Superclass" description="Extract a set of members into a new superclass and try to use the new superclass" category="_LcV7iuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcbbKeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.datatools.sqltools.sqleditor.ExecuteAsOneStatementAction" commandName="Execute Selected Text As One Statement" category="_LcVUdOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcbbKuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.cut.line.to.beginning" commandName="Cut to Beginning of Line" description="Cut to the beginning of a line of text" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcbbK-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.open.editor" commandName="Open Declaration" description="Open an editor on the selected element" category="_LcV7h-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcbbLOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.navigate.goToResource" commandName="Go to" description="Go to a particular resource in the active view" category="_LcV7h-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcbbLeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.team.CompareIndexWithHead" commandName="Compare File in Git Index with HEAD Revision" category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcbbLuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.debug.ui.commands.StepReturn" commandName="Step Return" description="Step return" category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcbbL-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.select.next" commandName="Select Next Element" description="Expand selection to include next sibling" category="_LcVUj-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcbbMOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.goto.lineEnd" commandName="Line End" description="Go to the end of the line of text" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcbbMeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.search.write.access.in.workspace" commandName="Write Access in Workspace" description="Search for write references to the selected element in the workspace" category="_LcVUjOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcbbMuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.delimiter.unix" commandName="Convert Line Delimiters to Unix (LF, \n, 0A, ¶)" description="Converts the line delimiters to Unix (LF, \n, 0A, ¶)" category="_LcVUeuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcbbM-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.correction.inlineLocal.assist" commandName="Quick Assist - Inline local variable" description="Invokes quick assist and selects 'Inline local variable'" category="_LcVUguFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcbbNOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.correction.convertLocalToField.assist" commandName="Quick Assist - Convert local variable to field" description="Invokes quick assist and selects 'Convert local variable to field'" category="_LcV7ieFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcbbNeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.tasks.ui.command.task.clearActiveTime" commandName="Clear Active Time" category="_LcVUjuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcbbNuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.tasks.ui.command.submitTask" commandName="Submit Task" description="Submits the currently open task" category="_LcVUgeFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcbbN-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.dialogs.openMessageDialog" commandName="Open Message Dialog" description="Open a Message Dialog" category="_LcVUiuFIEeW3CZUaZ-3o8w">
+ <parameters xmi:id="_LcbbOOFIEeW3CZUaZ-3o8w" elementId="title" name="Title"/>
+ <parameters xmi:id="_LcbbOeFIEeW3CZUaZ-3o8w" elementId="message" name="Message"/>
+ <parameters xmi:id="_LcbbOuFIEeW3CZUaZ-3o8w" elementId="imageType" name="Image Type Constant" typeId="org.eclipse.ui.dialogs.Integer"/>
+ <parameters xmi:id="_LcbbO-FIEeW3CZUaZ-3o8w" elementId="defaultIndex" name="Default Button Index" typeId="org.eclipse.ui.dialogs.Integer"/>
+ <parameters xmi:id="_LcbbPOFIEeW3CZUaZ-3o8w" elementId="buttonLabel0" name="First Button Label"/>
+ <parameters xmi:id="_LcbbPeFIEeW3CZUaZ-3o8w" elementId="buttonLabel1" name="Second Button Label"/>
+ <parameters xmi:id="_LcbbPuFIEeW3CZUaZ-3o8w" elementId="buttonLabel2" name="Third Button Label"/>
+ <parameters xmi:id="_LcbbP-FIEeW3CZUaZ-3o8w" elementId="buttonLabel3" name="Fourth Button Label"/>
+ <parameters xmi:id="_LcbbQOFIEeW3CZUaZ-3o8w" elementId="cancelReturns" name="Return Value on Cancel"/>
+ </commands>
+ <commands xmi:id="_LcbbQeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.debug.ui.commands.OpenDebugConfigurations" commandName="Debug..." description="Open debug launch configuration dialog" category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcbbQuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.RepositoriesViewClearCredentials" commandName="Clear Credentials" category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcbbQ-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.team.cvs.ui.add" commandName="Add to Version Control" description="Add the Selected Resources to Version Control" category="_LcVUceFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcbbROFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.correction.convertAnonymousToLocal.assist" commandName="Quick Assist - Convert anonymous to local class" description="Invokes quick assist and selects 'Convert anonymous to local class'" category="_LcVUguFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcbbReFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.correction.convertLocalToField.assist" commandName="Quick Assist - Convert local variable to var" description="Invokes quick assist and selects 'Convert local variable to var'" category="_LcVUguFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcbbRuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.file.closeOthers" commandName="Close Others" description="Close all editors except the one that is active" category="_LcVUeuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcbbR-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.change.type" commandName="Generalize Declared Type" description="Change the declaration of a selected variable to a more general type consistent with usage" category="_LcVUheFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcbbSOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.editors.revisions.author.toggle" commandName="Toggle Revision Author Display" description="Toggles the display of the revision author" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcbbSeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.sort.members" commandName="Sort Members" description="Sort all members using the member order preference" category="_LcV7ieFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcbbSuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.team.cvs.ui.replaceWithBase" commandName="Revert to Base" description="Revert to Base revisions" category="_LcVUceFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcbbS-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.xsd.ui.refactor.makeTypeGlobal" commandName="Make &Anonymous Type Global" description="Promotes anonymous type to global level and replaces its references" category="_LcVUj-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcbbTOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.search.implementors.in.project" commandName="Implementors in Project" description="Search for implementors of the selected interface in the enclosing project" category="_LcVUjOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcbbTeFIEeW3CZUaZ-3o8w" elementId="sed.tabletree.expandAll" commandName="Expand All" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcbbTuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.create.delegate.methods" commandName="Generate Delegate Functions" description="Add delegate functions for a type's vars" category="_LcVUguFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcbbT-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.debug.ui.commands.AllInstances" commandName="All Instances" description="View all instances of the selected type loaded in the target VM" category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcbbUOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.showChangeRulerInformation" commandName="Show Quick Diff Ruler Tooltip" description="Displays quick diff or revision information for the caret line in a focused hover" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccCIOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.sse.ui.structure.select.enclosing" commandName="Select Enclosing Element" description="Expand selection to include enclosing element" category="_LcVUj-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccCIeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.RepositoriesViewClone" commandName="Clone a Git Repository" category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccCIuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.xml.ui.disable.grammar.constraints" commandName="Turn off Grammar Constraints" description="Turn off grammar Constraints" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccCI-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.datatools.connectivity.commands.export" commandName="Export Profiles Command" description="Command to export connection profiles" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccCJOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.RepositoriesViewRefresh" commandName="Refresh" category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccCJeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.cheatsheets.openCheatSheetURL" commandName="Open Cheat Sheet from URL" description="Open a Cheat Sheet from file at a specified URL." category="_LcV7guFIEeW3CZUaZ-3o8w">
+ <parameters xmi:id="_LccCJuFIEeW3CZUaZ-3o8w" elementId="cheatSheetId" name="Identifier" optional="false"/>
+ <parameters xmi:id="_LccCJ-FIEeW3CZUaZ-3o8w" elementId="name" name="Name" optional="false"/>
+ <parameters xmi:id="_LccCKOFIEeW3CZUaZ-3o8w" elementId="url" name="URL" optional="false"/>
+ </commands>
+ <commands xmi:id="_LccCKeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.window.lockToolBar" commandName="Lock the Toolbars" description="Lock the Toolbars" category="_LcVUc-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccCKuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.project.buildAll" commandName="Build All" description="Build all projects" category="_LcVUduFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccCK-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.navigate.expandAll" commandName="Expand All" description="Expand the current tree" category="_LcV7h-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccCLOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.file.import" commandName="Import" description="Import" category="_LcVUeuFIEeW3CZUaZ-3o8w">
+ <parameters xmi:id="_LccCLeFIEeW3CZUaZ-3o8w" elementId="importWizardId" name="Import Wizard"/>
+ </commands>
+ <commands xmi:id="_LccCLuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.help.helpSearch" commandName="Help Search" description="Open the help search" category="_LcV7guFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccCL-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.pde.ui.importFromRepository" commandName="Import Plug-in from a Repository" description="Imports a plug-in from a source repository" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccCMOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.goto.windowEnd" commandName="Window End" description="Go to the end of the window" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccCMeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.search.occurrences.in.file" commandName="Search All Occurrences in File" description="Search for all occurrences of the selected element in its declaring file" category="_LcVUjOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccCMuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.tm.terminal.paste" commandName="Paste" category="_LcV7g-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccCM-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.team.cvs.ui.update" commandName="Update" description="Update resources with new content from the repository" category="_LcVUceFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccCNOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.help.ui.indexcommand" commandName="Index" description="Show Keyword Index" category="_LcV7guFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccCNeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ant.ui.renameInFile" commandName="Rename In File" description="Renames all references within the same buildfile" category="_LcV7ieFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccCNuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jpt.jpa.eclipselink.ui.convertJavaConverters" commandName="Move Java Converters to XML..." category="_LcVUhOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccCN-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.history.RenameBranch" commandName="Rename Branch..." category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccCOOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.create.getter.setter" commandName="Generate Getters and Setters" description="Generate Getter and Setter functions for type's vars" category="_LcVUguFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccCOeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.team.Rebase" commandName="Rebase" category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccCOuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.window.pinEditor" commandName="Pin Editor" description="Pin the current editor" category="_LcVUc-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccCO-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.correction.encapsulateField.assist" commandName="Quick Assist - Create getter/setter for field" description="Invokes quick assist and selects 'Create getter/setter for field'" category="_LcV7ieFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccCPOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.sort.members" commandName="Sort Members" description="Sort all members using the member order preference" category="_LcVUguFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccCPeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.debug.ui.commands.Inspect" commandName="Inspect" description="Inspect result of evaluating selected text" category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccCPuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.search.declarations.in.workspace" commandName="Declaration in Workspace" description="Search for declarations of the selected element in the workspace" category="_LcVUjOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccCP-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.add.block.comment" commandName="Add Block Comment" description="Enclose the selection with a block comment" category="_LcV7ieFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccCQOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.add.import" commandName="Add Import" description="Create import statement on selection" category="_LcVUguFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccCQeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.navigate.gototype" commandName="Go to Type" description="Go to Type" category="_LcV7h-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccCQuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.team.Tag" commandName="Tag" category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccCQ-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.team.ShowRepositoriesView" commandName="Show Git Repositories View" category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccCROFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.folding.restore" commandName="Reset Structure" description="Resets the folding structure" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccCReFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.file.restartWorkbench" commandName="Restart" description="Restart the workbench" category="_LcVUeuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccCRuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.search.occurrences.in.file.quickMenu" commandName="Show Occurrences in File Quick Menu" description="Shows the Occurrences in File quick menu" category="_LcVUjOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccCR-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.RepositoriesViewConfigurePush" commandName="Configure Push..." category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccCSOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.file.export" commandName="Export" description="Export" category="_LcVUeuFIEeW3CZUaZ-3o8w">
+ <parameters xmi:id="_LccCSeFIEeW3CZUaZ-3o8w" elementId="exportWizardId" name="Export Wizard"/>
+ </commands>
+ <commands xmi:id="_LccCSuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ltk.ui.refactoring.commands.renameResource" commandName="Rename Resource" description="Rename the selected resource and notify LTK participants." category="_LcV7iOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccCS-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.window.resetPerspective" commandName="Reset Perspective" description="Reset the current perspective to its default state" category="_LcVUc-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccCTOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.pde.ui.searchTargetRepositories" commandName="Add Artifact to Target Platform" description="Add an artifact to your target platform" category="_LcVUkOFIEeW3CZUaZ-3o8w">
+ <parameters xmi:id="_LccCTeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.pde.ui.searchTargetRepositories.term" name="The initial search pattern for the artifact search dialog"/>
+ </commands>
+ <commands xmi:id="_LccCTuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.ConfigureUpstreamPush" commandName="Configure Upstream Push" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccCT-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.window.savePerspective" commandName="Save Perspective As" description="Save the current perspective" category="_LcVUc-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccCUOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.showInformation" commandName="Show Tooltip Description" description="Displays information for the current caret location in a focused hover" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccCUeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.team.ConfigureFetch" commandName="Configure Upstream Fetch" category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccCUuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.debug.ui.commands.nextMemoryBlock" commandName="Next Memory Monitor" description="Show renderings from next memory monitor." category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccCU-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.toggleOverwrite" commandName="Toggle Overwrite" description="Toggle overwrite mode" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccCVOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.correction.addCast" commandName="Quick Fix - Add cast" description="Invokes quick assist and selects 'Add cast'" category="_LcVUguFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccCVeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.search.write.access.in.project" commandName="Write Access in Project" description="Search for write references to the selected element in the enclosing project" category="_LcVUjOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccCVuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.specific_content_assist.command" commandName="Content Assist" description="A parameterizable command that invokes content assist with a single completion proposal category" category="_LcVUj-FIEeW3CZUaZ-3o8w">
+ <parameters xmi:id="_LccCV-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.specific_content_assist.category_id" name="type" optional="false"/>
+ </commands>
+ <commands xmi:id="_LccCWOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.window.showKeyAssist" commandName="Show Key Assist" description="Show the key assist dialog" category="_LcVUc-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccCWeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.file.saveAs" commandName="Save As" description="Save the current contents to another location" category="_LcVUeuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccCWuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.search.ui.performTextSearchWorkspace" commandName="Find Text in Workspace" description="Searches the files in the workspace for specific text." category="_LcVUjOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccCW-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.search.implementors.in.working.set" commandName="Implementors in Working Set" description="Search for implementors of the selected interface in a working set" category="_LcVUjOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccCXOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.JavaPerspective" commandName="Java" description="Show the Java perspective" category="_LcVUcOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccCXeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.tasks.ui.command.activateTask" commandName="Activate Task" category="_LcV7h-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccCXuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.window.openEditorDropDown" commandName="Quick Switch Editor" description="Open the editor drop down list" category="_LcVUc-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccCX-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.correction.changeToStatic" commandName="Quick Fix - Change to static access" description="Invokes quick assist and selects 'Change to static access'" category="_LcV7ieFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccpMOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.tasks.index.ui.command.ResetIndex" commandName="Refresh Search Index" category="_LcVUjuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccpMeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.override.methods" commandName="Override/Implement Methods" description="Override or implement methods from super types" category="_LcV7ieFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccpMuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.search.ui.performTextSearchFile" commandName="Find Text in File" description="Searches the files in the file for specific text." category="_LcVUjOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccpM-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.paste" commandName="Paste" description="Paste from the clipboard" category="_LcVUj-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccpNOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.correction.convertAnonymousToLocal.assist" commandName="Quick Assist - Convert anonymous to local class" description="Invokes quick assist and selects 'Convert anonymous to local class'" category="_LcV7ieFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccpNeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.pde.ui.EquinoxLaunchShortcut.debug" commandName="Debug OSGi Framework" description="Debug OSGi Framework" category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccpNuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.source.quickMenu" commandName="Show Source Quick Menu" description="Shows the source quick menu" category="_LcV7ieFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccpN-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.RepositoriesViewCopyPath" commandName="Copy Path to Clipboard" category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccpOOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.team.Ignore" commandName="Ignore" category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccpOeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.team.RemoveFromIndex" commandName="Remove from Git Index" category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccpOuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.externalize.strings" commandName="Externalize Strings" description="Finds all strings that are not externalized and moves them into a separate property file" category="_LcVUguFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccpO-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.goto.lineUp" commandName="Line Up" description="Go up one line of text" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccpPOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.context.ui.commands.attachment.retrieveContext" commandName="Retrieve Context Attachment" category="_LcV7huFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccpPeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.search.write.access.in.working.set" commandName="Write Access in Working Set" description="Search for write references to the selected element in a working set" category="_LcVUjOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccpPuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.search.references.in.workspace" commandName="References in Workspace" description="Search for references to the selected element in the workspace" category="_LcVUjOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccpP-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.navigate.back" commandName="Back" description="Navigate back" category="_LcV7h-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccpQOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.tasks.bugs.commands.newTaskFromMarker" commandName="New Task from Marker..." description="Report as Bug from Marker" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccpQeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.debug.ui.commands.ToggleStepFilters" commandName="Use Step Filters" description="Toggles enablement of debug step filters" category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccpQuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.introduce.indirection" commandName="Introduce Indirection" description="Introduce an indirection to encapsulate invocations of a selected function" category="_LcVUheFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccpQ-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.RepositoriesLinkWithSelection" commandName="Link with Selection" category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccpROFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.team.Fetch" commandName="Fetch" category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccpReFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.org.eclipse.egit.ui.AbortRebase" commandName="Abort Rebase" category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccpRuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.history.SetQuickdiffBaseline" commandName="Set quickdiff baseline" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccpR-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.RepositoriesViewDelete" commandName="Delete Repository" category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccpSOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.history.ShowBlame" commandName="Show Annotations" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccpSeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.team.Pull" commandName="Pull" category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccpSuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.recenter" commandName="Recenter" description="Recenter the window based on the cursor" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccpS-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.team.cvs.ui.tag" commandName="Tag as Version" description="Tag the resources with a CVS version tag" category="_LcVUceFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccpTOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.debug.ui.breakpoint.properties" commandName="JavaScript Breakpoint Properties" description="View and edit the properties for a given JavaScript breakpoint" category="_LcVUkeFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccpTeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.file.refresh" commandName="Refresh" description="Refresh the selected items" category="_LcVUeuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccpTuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.gef.ui.palette_view" commandName="Palette" category="_LcVUd-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccpT-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.add.unimplemented.constructors" commandName="Generate Constructors from Superclass" description="Evaluate and add constructors from superclass" category="_LcV7ieFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccpUOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.history.CreateBranch" commandName="Create Branch" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccpUeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.move.element" commandName="Move - Refactoring " description="Move the selected element to a new location" category="_LcV7iuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccpUuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.goto.pageUp" commandName="Page Up" description="Go up one page" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccpU-FIEeW3CZUaZ-3o8w" elementId="sed.tabletree.collapseAll" commandName="Collapse All" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccpVOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.pde.ui.openManifest" commandName="Open Manifest" description="Open the plug-in manifest" category="_LcV7h-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccpVeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.debug.ui.commands.OpenRunConfigurations" commandName="Run..." description="Open run launch configuration dialog" category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccpVuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.team.AssumeUnchanged" commandName="Assume Unchanged" category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccpV-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.commands.showElementInTypeHierarchyView" commandName="Show Java Element Type Hierarchy" description="Show a Java element in the Type Hierarchy view" category="_LcV7h-FIEeW3CZUaZ-3o8w">
+ <parameters xmi:id="_LccpWOFIEeW3CZUaZ-3o8w" elementId="elementRef" name="Java element reference" typeId="org.eclipse.jdt.ui.commands.javaElementReference" optional="false"/>
+ </commands>
+ <commands xmi:id="_LccpWeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.debug.ui.evaluate.command" commandName="Evaluate" description="Evaluates the selected text in the JavaScript editor" category="_LcVUkeFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccpWuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.debug.ui.commands.SkipAllBreakpoints" commandName="Skip All Breakpoints" description="Sets whether or not any breakpoint should suspend execution" category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccpW-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.correction.extractLocalNotReplaceOccurrences.assist" commandName="Quick Assist - Extract local variable" description="Invokes quick assist and selects 'Extract local variable'" category="_LcV7ieFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccpXOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.select.enclosing" commandName="Select Enclosing Element" description="Expand selection to include enclosing element" category="_LcVUj-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccpXeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ltk.ui.refactor.show.refactoring.history" commandName="Open Refactoring History " description="Opens the refactoring history" category="_LcV7iuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccpXuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.datatools.sqltools.sqleditor.ExecuteSQLAction" commandName="Execute All" category="_LcVUdOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccpX-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.team.AddToIndex" commandName="Add to Git Index" category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccpYOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.search.read.access.in.workspace" commandName="Read Access in Workspace" description="Search for read references to the selected element in the workspace" category="_LcVUjOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccpYeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.window.customizePerspective" commandName="Customize Perspective" description="Customize the current perspective" category="_LcVUc-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccpYuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.navigate.showInQuickMenu" commandName="Show In..." description="Open the Show In menu" category="_LcV7h-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccpY-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.search.read.access.in.hierarchy" commandName="Read Access in Hierarchy" description="Search for read references of the selected element in its hierarchy" category="_LcVUjOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccpZOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.change.type" commandName="Generalize Declared Type" description="Change the declaration of a selected variable to a more general type consistent with usage" category="_LcV7iuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccpZeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.CheckoutCommand" commandName="Checkout" category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccpZuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.rename" commandName="Rename" description="Rename the selected item" category="_LcVUeuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccpZ-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.add.block.comment" commandName="Add Block Comment" description="Enclose the selection with a block comment" category="_LcVUguFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccpaOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.datatools.sqltools.sqlscrapbook.commands.openscrapbook" commandName="Open SQL Scrapboo&k" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccpaeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jst.ws.jaxws.ui.configure.handlers" commandName="Configure Handlers" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccpauFIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.tasks.ui.command.previousTask" commandName="Previous Task Command" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lccpa-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.search.occurrences.in.file" commandName="Search All Occurrences in File" description="Search for all occurrences of the selected element in its declaring file" category="_LcVUjOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccpbOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.open.implementation" commandName="Open Implementation" description="Opens the Implementations of a method in its hierarchy" category="_LcV7h-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccpbeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.JavaBrowsingPerspective" commandName="JavaScript Browsing" description="Show the JavaScript Browsing perspective" category="_LcVUcOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccpbuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.internal.reflog.OpenInCommitViewerCommand" commandName="Open in Commit Viewer" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lccpb-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.select.lineUp" commandName="Select Line Up" description="Extend the selection to the previous line of text" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccpcOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.search.read.access.in.project" commandName="Read Access in Project" description="Search for read references to the selected element in the enclosing project" category="_LcVUjOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccpceFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.team.ShowHistory" commandName="Show in History" category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LccpcuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.show.in.package.view" commandName="Show in Script Explorer" description="Show the selected element in the Script Explorer" category="_LcV7h-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lccpc-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.compare.compareWithOther" commandName="Compare With Other Resource" description="Compare resources, clipboard contents or editors" category="_LcV7heFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcdQQOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.team.cvs.ui.replaceWithTag" commandName="Replace With Another Branch or Version" description="Replace with Branch or Version on the CVS Server" category="_LcVUceFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcdQQeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.select.last" commandName="Restore Last Selection" description="Restore last selection" category="_LcVUj-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcdQQuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.team.Push" commandName="Push" category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcdQQ-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.team.stash.apply" commandName="Apply Stashed Changes" category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcdQROFIEeW3CZUaZ-3o8w" elementId="org.eclipse.compare.copyAllLeftToRight" commandName="Copy All from Left to Right" description="Copy All Changes from Left to Right" category="_LcV7heFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcdQReFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.selectAll" commandName="Select All" description="Select all" category="_LcVUj-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcdQRuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.help.ui.ignoreMissingPlaceholders" commandName="Do not warn of missing documentation" description="Sets the help preferences to no longer report a warning about the current set of missing documents." category="_LcV7guFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcdQR-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.wikitext.ui.convertToDocbookCommand" commandName="Generate Docbook" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcdQSOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.replace.invocations" commandName="Replace Invocations" description="Replace invocations of the selected function" category="_LcVUheFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcdQSeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.copy" commandName="Copy" description="Copy the selection to the clipboard" category="_LcVUj-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcdQSuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.history.Revert" commandName="Revert Commit" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcdQS-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.search.declarations.in.project" commandName="Declaration in Project" description="Search for declarations of the selected element in the enclosing project" category="_LcVUjOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcdQTOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.RepositoriesViewCreateBranch" commandName="Create Branch..." category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcdQTeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.datatools.connectivity.commands.addprofile" commandName="New Connection Profile Command" description="Command to create a new connection profile" category="_LcVUkOFIEeW3CZUaZ-3o8w">
+ <parameters xmi:id="_LcdQTuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.datatools.connectivity.ui.ignoreCategory" name="ignoreCategory"/>
+ <parameters xmi:id="_LcdQT-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.datatools.connectivity.ui.useSelection" name="useSelection"/>
+ </commands>
+ <commands xmi:id="_LcdQUOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ant.ui.openExternalDoc" commandName="Open External Documentation" description="Open the External documentation for the current task in the Ant editor" category="_LcV7ieFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcdQUeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.tasks.ui.command.UpdateRepositoryConfiguration" commandName="Update Repository Configuration" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcdQUuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.JavaHierarchyPerspective" commandName="Java Type Hierarchy" description="Show the Java Type Hierarchy perspective" category="_LcVUcOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcdQU-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.inline" commandName="Inline" description="Inline a constant, local variable or function" category="_LcVUheFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcdQVOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.indent" commandName="Correct Indentation" description="Corrects the indentation of the selected lines" category="_LcV7ieFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcdQVeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.ide.copyConfigCommand" commandName="Copy Configuration Data To Clipboard" description="Copies the configuration data (system properties, installed bundles, etc) to the clipboard." category="_LcVUj-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcdQVuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.search.exception.occurrences" commandName="Search Exception Occurrences in File" description="Search for exception occurrences of a selected exception type" category="_LcVUjOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcdQV-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.datatools.connectivity.commands.addrepository" commandName="New Repository Profile Command" description="Command to create a new repository profile" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcdQWOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.part.previousPage" commandName="Previous Page" description="Switch to the previous page" category="_LcV7h-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcdQWeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.team.Synchronize" commandName="Synchronize" category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcdQWuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.open.hierarchy" commandName="Quick Hierarchy" description="Show the quick hierarchy of the selected element" category="_LcV7h-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcdQW-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.xsl.debug.ui.launchshortcut.run" commandName="Run XSLT Transformation" description="Create a configuration to debug an XSLT transformation" category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcdQXOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.sse.ui.format" commandName="Format" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcdQXeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jpt.jpa.ui.generateEntities" commandName="Generate Entities from Tables..." category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcdQXuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.datatools.sqltools.result.removeAllInstances" commandName="Remove All Visible Results" category="_LcVUg-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcdQX-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.pde.ui.externalizeStrings" commandName="Externalize Strings in Plug-ins" description="Extract translatable strings from plug-in files" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcdQYOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.team.GarbageCollect" commandName="Collect Garbage" category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcdQYeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.m2e.actions.LifeCycleClean.run" commandName="Run Maven Clean" description="Run Maven Clean" category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcdQYuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.search.references.in.hierarchy" commandName="References in Hierarchy" description="Search for references of the selected element in its hierarchy" category="_LcVUjOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcdQY-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.comment" commandName="Comment" description="Turn the selected lines into JavaScript comments" category="_LcVUguFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcdQZOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.team.PushBranch" commandName="Push Branch..." category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcdQZeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.window.showViewMenu" commandName="Show View Menu" description="Show the view menu" category="_LcVUc-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcdQZuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.refactor.create.refactoring.script" commandName="Create Script" description="Create a refactoring script from refactorings on the local workspace" category="_LcVUheFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcdQZ-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.folding.collapseComments" commandName="Collapse Comments" description="Collapse all comments" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcdQaOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.datatools.enablement.sybase.asa.schemaobjecteditor.examples.tableschemaeditor.pastecolumn" commandName="Paste" category="_LcVUcuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcdQaeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.findIncremental" commandName="Incremental Find" description="Incremental find" category="_LcVUj-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcdQauFIEeW3CZUaZ-3o8w" elementId="org.eclipse.pde.ui.edit.text.format" commandName="Format Source" description="Format a PDE Source Page" category="_LcVUfuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcdQa-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.history.DeleteBranch" commandName="Delete Branch..." category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcdQbOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.window.previousEditor" commandName="Previous Editor" description="Switch to the previous editor" category="_LcVUc-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcdQbeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.self.encapsulate.field" commandName="Encapsulate Var" description="Create getting and setting functions for the var and use only those to access the var" category="_LcVUheFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcdQbuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.folding.collapse_all" commandName="Collapse All" description="Collapses all folded regions" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcdQb-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.perspectives.showPerspective" commandName="Show Perspective" description="Show a particular perspective" category="_LcVUcOFIEeW3CZUaZ-3o8w">
+ <parameters xmi:id="_LcdQcOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.perspectives.showPerspective.perspectiveId" name="Parameter"/>
+ <parameters xmi:id="_LcdQceFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.perspectives.showPerspective.newWindow" name="In New Window"/>
+ </commands>
+ <commands xmi:id="_LcdQcuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.xml.ui.reload.dependencies" commandName="Reload Dependencies" description="Reload Dependencies" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcdQc-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.navigate.previousSubTab" commandName="Previous Sub-Tab" description="Switch to the previous sub-tab" category="_LcV7h-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcdQdOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.refactor.apply.refactoring.script" commandName="Apply Script" description="Perform refactorings from a refactoring script on the local workspace" category="_LcVUheFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcdQdeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.smartEnter" commandName="Insert Line Below Current Line" description="Adds a new line below the current line" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcdQduFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.team.Reset" commandName="Reset..." category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcdQd-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.contentAssist.proposals" commandName="Content Assist" description="Content Assist" category="_LcVUj-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcdQeOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.folding.expand_all" commandName="Expand All" description="Expands all folded regions" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcdQeeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.navigate.nextTab" commandName="Next Tab" description="Switch to the next tab" category="_LcV7h-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcdQeuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.server.stop" commandName="Stop" description="Stop the server" category="_LcVUieFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcdQe-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.team.Discard" commandName="Replace with File in Git Index" category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcdQfOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.ide.OpenMarkersView" commandName="Open Another" description="Open another view" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcdQfeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.tasks.ui.command.markTaskIncomplete" commandName="Mark Task Incomplete" category="_LcVUjuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcdQfuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.tasks.ui.command.new.local.task" commandName="New Local Task" category="_LcVUjuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcdQf-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.team.NoAssumeUnchanged" commandName="No Assume Unchanged" category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lcd3UOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.tasks.ui.command.openTask" commandName="Open Task" category="_LcV7h-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lcd3UeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.select.windowEnd" commandName="Select Window End" description="Select to the end of the window" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lcd3UuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.command.shareProject" commandName="Share with Git" description="Share the project using Git" category="_LcVUkOFIEeW3CZUaZ-3o8w">
+ <parameters xmi:id="_Lcd3U-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.command.projectNameParameter" name="Project" optional="false"/>
+ </commands>
+ <commands xmi:id="_Lcd3VOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.debug.ui.commands.Suspend" commandName="Suspend" description="Suspend" category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lcd3VeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.select.previous" commandName="Select Previous Element" description="Expand selection to include previous sibling" category="_LcVUj-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lcd3VuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.commands.showElementInPackageView" commandName="Show Java Element in Package Explorer" description="Select Java element in the Package Explorer view" category="_LcV7h-FIEeW3CZUaZ-3o8w">
+ <parameters xmi:id="_Lcd3V-FIEeW3CZUaZ-3o8w" elementId="elementRef" name="Java element reference" typeId="org.eclipse.jdt.ui.commands.javaElementReference" optional="false"/>
+ </commands>
+ <commands xmi:id="_Lcd3WOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.PackageExplorer" commandName="JavaScript Script Explorer" description="Show the Script Explorer" category="_LcVUd-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lcd3WeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.team.ui.synchronizeAll" commandName="Synchronize..." description="Synchronize resources in the workspace with another location" category="_LcV7gOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lcd3WuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jst.jsp.ui.refactor.rename" commandName="Rename" description="Rename a Java Element" category="_LcVUj-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lcd3W-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.help.displayHelp" commandName="Display Help" description="Display a Help topic" category="_LcV7guFIEeW3CZUaZ-3o8w">
+ <parameters xmi:id="_Lcd3XOFIEeW3CZUaZ-3o8w" elementId="href" name="Help topic href"/>
+ </commands>
+ <commands xmi:id="_Lcd3XeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.junit.junitShortcut.debug" commandName="Debug JUnit Test" description="Debug JUnit Test" category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lcd3XuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.team.Branch" commandName="Branch" category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lcd3X-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.context.ui.commands.task.clearContext" commandName="Clear Context" category="_LcV7huFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lcd3YOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.project.closeProject" commandName="Close Project" description="Close the selected project" category="_LcVUduFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lcd3YeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.correction.assignParamToField.assist" commandName="Quick Assist - Assign parameter to field" description="Invokes quick assist and selects 'Assign parameter to field'" category="_LcV7ieFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lcd3YuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.team.cvs.ui.commitAll" commandName="Commit All Outgoing Changes" description="Commit all outgoing changes to the repository" category="_LcVUceFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lcd3Y-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.correction.addImport" commandName="Quick Fix - Add import" description="Invokes quick assist and selects 'Add import'" category="_LcVUguFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lcd3ZOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.tasks.ui.command.RefreshRepositoryTasks" commandName="Synchronize Changed" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lcd3ZeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.team.cvs.ui.cvsPerspective" commandName="CVS Repository Exploring" description="Open the CVS Repository Exploring Perspective" category="_LcVUcOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lcd3ZuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.FetchGerritChange" commandName="Fetch From Gerrit" category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lcd3Z-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.junit.junitShortcut.rerunLast" commandName="Rerun JUnit Test" description="Rerun JUnit Test" category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lcd3aOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.callhierarchy.view" commandName="JavaScript Call Hierarchy" description="Show the Call Hierarchy view" category="_LcVUd-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lcd3aeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.navigate.java.open.structure" commandName="Open Structure" description="Show the structure of the selected element" category="_LcV7h-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lcd3auFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.JavadocView" commandName="Documentation" description="Show the JavaScript Documentation view" category="_LcVUd-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lcd3a-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.rse.shells.ui.actions.LaunchShellCommand" commandName="Launch Shell" category="_LcVUe-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lcd3bOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.goto.lineStart" commandName="Line Start" description="Go to the start of the line of text" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lcd3beFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.xsd.ui.refactor.rename.element" commandName="&Rename XSD element" description="Rename XSD element" category="_LcVUj-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lcd3buFIEeW3CZUaZ-3o8w" elementId="org.eclipse.help.ui.closeTray" commandName="Close User Assistance Tray" description="Close the user assistance tray containing context help information and cheat sheets." category="_LcV7guFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lcd3b-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.search.declarations.in.working.set" commandName="Declaration in Working Set" description="Search for declarations of the selected element in a working set" category="_LcVUjOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lcd3cOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.project.properties" commandName="Properties" description="Display the properties of the selected item's project " category="_LcVUduFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lcd3ceFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.file.save" commandName="Save" description="Save the current contents" category="_LcVUeuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lcd3cuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.toggleBlockSelectionMode" commandName="Toggle Block Selection" description="Toggle block / column selection in the current text editor" category="_LcVUj-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lcd3c-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.team.cvs.ui.checkout" commandName="Checkout from CVS" description="Checkout from CVS" category="_LcVUceFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lcd3dOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.debug.ui.commands.ToggleWatchpoint" commandName="Toggle Watchpoint" description="Creates or removes a watchpoint" category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lcd3deFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.RepositoriesViewConfigureBranch" commandName="Configure Branch" category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lcd3duFIEeW3CZUaZ-3o8w" elementId="org.eclipse.team.cvs.ui.compareWithRemote" commandName="Compare With Latest from Repository" description="Compare with Content on CVS Server" category="_LcVUceFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lcd3d-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.open.type.hierarchy" commandName="Open Type Hierarchy" description="Open a type hierarchy on the selected element" category="_LcV7h-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lcd3eOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.tasks.ui.viewSource.command" commandName="View Unformatted Text" category="_LcVUjuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lcd3eeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.editors.revisions.rendering.cycle" commandName="Cycle Revision Coloring Mode" description="Cycles through the available coloring modes for revisions" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lcd3euFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.PackagesView" commandName="JavaScript Folders" description="Show the Folders view" category="_LcVUd-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lcd3e-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.showRulerContextMenu" commandName="Show Ruler Context Menu" description="Show the context menu for the ruler" category="_LcVUc-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lcd3fOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.debug.ui.commands.ToggleMethodBreakpoint" commandName="Toggle Method Breakpoint" description="Creates or removes a method breakpoint" category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lcd3feFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.window.minimizePart" commandName="Minimize Active View or Editor" description="Minimizes the active view or editor" category="_LcVUc-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lcd3fuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.search.write.access.in.workspace" commandName="Write Access in Workspace" description="Search for write references to the selected element in the workspace" category="_LcVUjOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lcd3f-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.part.nextPage" commandName="Next Page" description="Switch to the next page" category="_LcV7h-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lcd3gOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.team.ReplaceWithRef" commandName="Replace with branch, tag, or reference" category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lcd3geFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.delete.line.to.beginning" commandName="Delete to Beginning of Line" description="Delete to the beginning of a line of text" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lcd3guFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.navigate.backwardHistory" commandName="Backward History" description="Move backward in the editor navigation history" category="_LcV7h-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lcd3g-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.m2e.core.ui.command.openPom" commandName="Open Maven POM" category="_LcV7h-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lcd3hOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.swap.mark" commandName="Swap Mark" description="Swap the mark with the cursor position" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lcd3heFIEeW3CZUaZ-3o8w" elementId="org.eclipse.datatools.connectivity.commands.showcategory" commandName="Show Category" description="Show Category" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lcd3huFIEeW3CZUaZ-3o8w" elementId="org.eclipse.team.cvs.ui.replaceWithRevision" commandName="Replace With Revision" description="Replace with Revision on CVS Server" category="_LcVUceFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lcd3h-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.jst.pagedesigner.design" commandName="Graphical Designer" category="_LcV7hOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lcd3iOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ant.ui.antShortcut.run" commandName="Run Ant Build" description="Run Ant Build" category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lcd3ieFIEeW3CZUaZ-3o8w" elementId="org.eclipse.team.cvs.ui.compareWithRevision" commandName="Compare With Revision" description="Compare with Revision on CVS Server" category="_LcVUceFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lcd3iuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.surround.with.try.catch" commandName="Surround with try/catch Block" description="Surround the selected text with a try/catch block" category="_LcVUguFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lcd3i-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.select.enclosing" commandName="Select Enclosing Element" description="Expand selection to include enclosing element" category="_LcVUj-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lcd3jOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.lowerCase" commandName="To Lower Case" description="Changes the selection to lower case" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LceeYOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.equinox.p2.ui.discovery.commands.ShowBundleCatalog" commandName="Show Bundle Catalog" category="_LcVUkOFIEeW3CZUaZ-3o8w">
+ <parameters xmi:id="_LceeYeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.equinox.p2.ui.discovery.commands.DirectoryParameter" name="Directory URL"/>
+ <parameters xmi:id="_LceeYuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.equinox.p2.ui.discovery.commands.TagsParameter" name="Tags"/>
+ </commands>
+ <commands xmi:id="_LceeY-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.team.MergeTool" commandName="Merge Tool" category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LceeZOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.openLocalFile" commandName="Open File..." description="Open a file" category="_LcVUeuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LceeZeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.toggleShowSelectedElementOnly" commandName="Show Selected Element Only" description="Show Selected Element Only" category="_LcVUc-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LceeZuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.history.Reset" commandName="Reset..." category="_LcVUkOFIEeW3CZUaZ-3o8w">
+ <parameters xmi:id="_LceeZ-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.history.ResetMode" name="Reset mode" optional="false"/>
+ </commands>
+ <commands xmi:id="_LceeaOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.pde.ui.addAllPluginsToJavaSearch" commandName="Add All Plug-ins to Java Search" description="Adds all plug-ins in the target platform to java search" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LceeaeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.add.unimplemented.constructors" commandName="Generate Constructors from Superclass" description="Evaluate and add constructors from superclass" category="_LcVUguFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LceeauFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.debug.ui.commands.AddExceptionBreakpoint" commandName="Add Java Exception Breakpoint" description="Add a Java exception breakpoint" category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lceea-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.team.cvs.ui.branch" commandName="Branch" description="Branch" category="_LcVUceFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LceebOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.context.ui.commands.interest.increment" commandName="Make Landmark" description="Make Landmark" category="_LcV7huFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LceebeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.history.CompareVersionsInTree" commandName="Compare in Tree" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LceebuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.project.openProject" commandName="Open Project" description="Open a project" category="_LcVUduFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lceeb-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.datatools.sqltools.sqleditor.runAction" commandName="Run" category="_LcVUdOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LceecOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.cut" commandName="Cut" description="Cut the selection to the clipboard" category="_LcVUj-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LceeceFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.moveLineDown" commandName="Move Lines Down" description="Moves the selected lines down" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LceecuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.debug.ui.commands.StepIntoSelection" commandName="Step Into Selection" description="Step into the current selected statement" category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lceec-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.tasks.ui.command.new.subtask" commandName="New Subtask" category="_LcVUjuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LceedOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.xml.views.XPathView.processor.xpathprocessor" commandName="XPath Processor" category="_LcVUdeFIEeW3CZUaZ-3o8w">
+ <parameters xmi:id="_LceedeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.commands.radioStateParameter" name="State" optional="false"/>
+ </commands>
+ <commands xmi:id="_LceeduFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ltk.ui.refactoring.commands.moveResources" commandName="Move Resources" description="Move the selected resources and notify LTK participants." category="_LcV7iOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lceed-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.generate.constructor.using.fields" commandName="Generate Constructor using Fields" description="Choose fields to initialize and constructor from superclass to call " category="_LcV7ieFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LceeeOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.commands.showElementInPackageView" commandName="Show JavaScript Element in Script Explorer" description="Select JavaScript element in the Script Explorer view" category="_LcV7h-FIEeW3CZUaZ-3o8w">
+ <parameters xmi:id="_LceeeeFIEeW3CZUaZ-3o8w" elementId="elementRef" name="JavaScript element reference" typeId="org.eclipse.wst.jsdt.ui.commands.javaElementReference" optional="false"/>
+ </commands>
+ <commands xmi:id="_LceeeuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.goto.line" commandName="Go to Line" description="Go to a specified line of text" category="_LcV7h-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lceee-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.RepositoriesViewRemoveRemote" commandName="Delete Remote" category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LceefOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.team.stash.create" commandName="Stash Changes" category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LceefeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.externaltools.ExternalToolMenuDelegateToolbar" commandName="Run Last Launched External Tool" description="Runs the last launched external Tool" category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LceefuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.goto.columnPrevious" commandName="Previous Column" description="Go to the previous column" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lceef-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.common.project.facet.ui.ConvertProjectToFacetedForm" commandName="Convert to Faceted Form..." category="_LcVUeuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LceegOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.team.Commit" commandName="Commit..." category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LceegeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.sse.ui.remove.block.comment" commandName="Remove Block Comment" description="Remove Block Comment" category="_LcVUj-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LceeguFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.history.CheckoutCommand" commandName="Checkout" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lceeg-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.select.lineStart" commandName="Select Line Start" description="Select to the beginning of the line of text" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LceehOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.cut.line.to.end" commandName="Cut to End of Line" description="Cut to the end of a line of text" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LceeheFIEeW3CZUaZ-3o8w" elementId="org.eclipse.equinox.p2.ui.sdk.update" commandName="Check for Updates" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LceehuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.findIncrementalReverse" commandName="Incremental Find Reverse" description="Incremental find reverse" category="_LcVUj-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lceeh-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.commands.openElementInEditor" commandName="Open JavaScript Element" description="Open a JavaScript element in its editor" category="_LcV7h-FIEeW3CZUaZ-3o8w">
+ <parameters xmi:id="_LceeiOFIEeW3CZUaZ-3o8w" elementId="elementRef" name="JavaScript element reference" typeId="org.eclipse.wst.jsdt.ui.commands.javaElementReference" optional="false"/>
+ </commands>
+ <commands xmi:id="_LceeieFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.generate.hashcode.equals" commandName="Generate hashCode() and equals()" description="Generates hashCode() and equals() functions for the type" category="_LcVUguFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LceeiuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.generate.javadoc" commandName="Generate Javadoc" description="Generates Javadoc for a selectable set of Java resources" category="_LcVUduFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lceei-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.search.declarations.in.working.set" commandName="Declaration in Working Set" description="Search for declarations of the selected element in a working set" category="_LcVUjOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LceejOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.server.launchShortcut.run" commandName="Run on Server" description="Run the current selection on a server" category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LceejeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.tasks.ui.command.goToNextUnread" commandName="Go To Next Unread Task" category="_LcV7h-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LceejuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.RebaseCurrent" commandName="Rebase" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lceej-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.tasks.ui.command.showToolTip" commandName="Show Tooltip Description" category="_LcVUjuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LceekOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.tasks.ui.command.disconnected" commandName="Disconnected" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LceekeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.team.cvs.ui.ignore" commandName="Add to .cvsignore" description="Ignore the Selected Resources when Synchronizing" category="_LcVUceFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LceekuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.dialogs.openInputDialog" commandName="Open Input Dialog" description="Open an Input Dialog" category="_LcVUiuFIEeW3CZUaZ-3o8w">
+ <parameters xmi:id="_Lceek-FIEeW3CZUaZ-3o8w" elementId="title" name="Title"/>
+ <parameters xmi:id="_LceelOFIEeW3CZUaZ-3o8w" elementId="message" name="Message"/>
+ <parameters xmi:id="_LceeleFIEeW3CZUaZ-3o8w" elementId="initialValue" name="Initial Value"/>
+ <parameters xmi:id="_LceeluFIEeW3CZUaZ-3o8w" elementId="cancelReturns" name="Return Value on Cancel"/>
+ </commands>
+ <commands xmi:id="_Lceel-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.history.ShowVersions" commandName="Open" category="_LcVUkOFIEeW3CZUaZ-3o8w">
+ <parameters xmi:id="_LceemOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.history.CompareMode" name="Compare mode"/>
+ </commands>
+ <commands xmi:id="_LceemeFIEeW3CZUaZ-3o8w" elementId="revert.schema.editor.action.id" commandName="Revert Object" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LceemuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.tasks.ui.command.attachment.open" commandName="Open Attachment" category="_LcVUgeFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lceem-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.ant.ui.antShortcut.debug" commandName="Debug Ant Build" description="Debug Ant Build" category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LceenOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.views.properties.NewPropertySheetCommand" commandName="Properties" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LceeneFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.search.return.continue.targets" commandName="Search break/continue Target Occurrences in File" description="Search for break/continue target occurrences of a selected target name" category="_LcVUjOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LceenuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.search.implementors.in.workspace" commandName="Implementors in Workspace" description="Search for implementors of the selected interface" category="_LcVUjOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lceen-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.navigate.gotopackage" commandName="Go to Folder" description="Go to Folder" category="_LcV7h-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LceeoOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.move.inner.to.top.level" commandName="Move Type to New File" description="Move Type to New File" category="_LcV7iuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LceeoeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.sse.ui.quick_outline" commandName="Quick Outline" description="Show the quick outline for the editor input" category="_LcV7h-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfFcOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.commit.Revert" commandName="Revert Commit" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfFceFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.server.publish" commandName="Publish" description="Publish to server" category="_LcVUieFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfFcuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.RepositoriesViewCreateRepository" commandName="Create a Repository" category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfFc-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.introduce.factory" commandName="Introduce Factory" description="Introduce a factory function to encapsulate invocation of the selected constructor" category="_LcVUheFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfFdOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.gotoBreadcrumb" commandName="Show In Breadcrumb" description="Shows the Java editor breadcrumb and sets the keyboard focus into it" category="_LcV7h-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfFdeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.scroll.lineDown" commandName="Scroll Line Down" description="Scroll down one line of text" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfFduFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.team.SimpleFetch" commandName="Fetch from Upstream" category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfFd-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.debug.ui.commands.StepInto" commandName="Step Into" description="Step into" category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfFeOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.commit.Checkout" commandName="Checkout" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfFeeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.scroll.lineUp" commandName="Scroll Line Up" description="Scroll up one line of text" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfFeuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.debug.ui.commands.TerminateAndRelaunch" commandName="Terminate and Relaunch" description="Terminate and Relaunch" category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfFe-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.file.print" commandName="Print" description="Print" category="_LcVUeuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfFfOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.debug.ui.breakpoint.properties" commandName="Java Breakpoint Properties" description="View and edit the properties for a given Java breakpoint" category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfFfeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.select.pageUp" commandName="Select Page Up" description="Select to the top of the page" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfFfuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.add.import" commandName="Add Import" description="Create import statement on selection" category="_LcV7ieFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfFf-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.team.CompareWithPrevious" commandName="Compare with Previous Revision" category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfFgOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.extract.interface" commandName="Extract Interface" description="Extract a set of members into a new interface and try to use the new interface" category="_LcV7iuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfFgeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.help.dynamicHelp" commandName="Dynamic Help" description="Open the dynamic help" category="_LcV7guFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfFguFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.server.run" commandName="Run" description="Run server" category="_LcVUieFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfFg-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.search.read.access.in.working.set" commandName="Read Access in Working Set" description="Search for read references to the selected element in a working set" category="_LcVUjOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfFhOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.datatools.sqltools.sqleditor.saveToDatabaseAction" commandName="Save to Database" category="_LcVUdOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfFheFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.promote.local.variable" commandName="Convert Local Variable to Var" description="Convert a local variable to a var" category="_LcVUheFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfFhuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.xml.views.XPathView.prefixes" commandName="&Edit Namespace Prefixes" category="_LcVUdeFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfFh-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.jpt.jaxb.eclipselink.ui.command.addEclipseLinkJaxbProperty" commandName="Add EclipseLink JAXB property" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfFiOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.push.down" commandName="Push Down" description="Move members to subclasses" category="_LcVUheFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfFieFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.correction.splitJoinVariableDeclaration.assist" commandName="Quick Assist - Split/Join variable declaration" description="Invokes quick assist and selects 'Split/Join variable declaration'" category="_LcVUguFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfFiuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.debug.ui.localJavaShortcut.run" commandName="Run Java Application" description="Run Java Application" category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfFi-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.RepositoriesToggleBranchHierarchy" commandName="Toggle Branch Representation" category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfFjOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.tasks.ui.command.markTaskComplete" commandName="Mark Task Complete" category="_LcVUjuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfFjeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.showRulerAnnotationInformation" commandName="Show Ruler Annotation Tooltip" description="Displays annotation information for the caret line in a focused hover" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfFjuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.format" commandName="Format" description="Format the selected text" category="_LcVUguFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfFj-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.sse.ui.structure.select.next" commandName="Select Next Element" description="Expand selection to include next sibling" category="_LcVUj-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfFkOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.datatools.sqltools.result.terminate" commandName="Terminate Result" category="_LcVUg-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfFkeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jpt.jaxb.ui.command.createPackageInfo" commandName="Create package-info.java" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfFkuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.pde.ui.junitWorkbenchShortcut.run" commandName="Run JUnit Plug-in Test" description="Run JUnit Plug-in Test" category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfFk-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.select.last" commandName="Restore Last Selection" description="Restore last selection" category="_LcVUj-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfFlOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.project.buildLast" commandName="Repeat Working Set Build" description="Repeat the last working set build" category="_LcVUduFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfFleFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.correction.addNonNLS" commandName="Quick Fix - Add non-NLS tag" description="Invokes quick assist and selects 'Add non-NLS tag'" category="_LcVUguFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfFluFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.goto.textStart" commandName="Text Start" description="Go to the beginning of the text" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfFl-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.search.ui.openSearchDialog" commandName="Open Search Dialog" description="Open the Search dialog" category="_LcVUjOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfFmOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.file.openWorkspace" commandName="Switch Workspace" description="Open the workspace selection dialog" category="_LcVUeuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfFmeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.server.launchShortcut.debug" commandName="Debug on Server" description="Debug the current selection on a server" category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfFmuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.pull.up" commandName="Pull Up" description="Move members to a superclass" category="_LcV7iuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfFm-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.ide.configureFilters" commandName="Configure Contents..." description="Configure the filters to apply to the markers view" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfFnOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.uncomment" commandName="Uncomment" description="Uncomment the selected JavaScript comment lines" category="_LcVUguFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfFneFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.toggle.comment" commandName="Toggle Comment" description="Toggle comment the selected lines" category="_LcVUguFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfFnuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.find.broken.nls.keys" commandName="Find Broken Externalized Strings" description="Finds undefined, duplicate and unused externalized string keys in property files" category="_LcV7ieFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfFn-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.xsd.ui.refactor.renameTargetNamespace" commandName="Rename Target Namespace" description="Changes the target namespace of the schema" category="_LcVUj-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfFoOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.m2e.actions.LifeCycleGenerateSources.run" commandName="Run Maven Generate Sources" description="Run Maven Generate Sources" category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfFoeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.sse.ui.cleanup.document" commandName="Cleanup Document..." description="Cleanup document" category="_LcVUj-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfFouFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.uncomment" commandName="Uncomment" description="Uncomment the selected Java comment lines" category="_LcV7ieFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfFo-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.goto.wordNext" commandName="Next Word" description="Go to the next word" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfFpOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.team.cvs.ui.addLocation" commandName="Add Repository Location" description="Add a new CVS repository location" category="_LcVUceFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfFpeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.navigate.up" commandName="Up" description="Navigate up one level" category="_LcV7h-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfFpuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.correction.splitJoinVariableDeclaration.assist" commandName="Quick Assist - Split/Join variable declaration" description="Invokes quick assist and selects 'Split/Join variable declaration'" category="_LcV7ieFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfFp-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.goto.next.member" commandName="Go to Next Member" description="Move the caret to the next member of the JavaScript file" category="_LcV7h-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfFqOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.tasks.ui.command.openRemoteTask" commandName="Open Remote Task" category="_LcV7h-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfFqeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.window.closePerspective" commandName="Close Perspective" description="Close the current perspective" category="_LcVUc-FIEeW3CZUaZ-3o8w">
+ <parameters xmi:id="_LcfFquFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.window.closePerspective.perspectiveId" name="Perspective Id"/>
+ </commands>
+ <commands xmi:id="_LcfFq-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.window.hideShowEditors" commandName="Toggle Editor Area Visibility" description="Toggles the visibility of the editor area" category="_LcVUc-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfFrOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.modify.method.parameters" commandName="Change Function Signature" description="Change function signature includes parameter names and parameter order" category="_LcVUheFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfFreFIEeW3CZUaZ-3o8w" elementId="org.eclipse.pde.ui.organizeManifest" commandName="Organize Manifests" description="Cleans up plug-in manifest files" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfFruFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.move" commandName="Move..." description="Move the selected item" category="_LcVUeuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfFr-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.correction.renameInFile.assist" commandName="Quick Assist - Rename in file" description="Invokes quick assist and selects 'Rename in file'" category="_LcVUguFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfFsOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.tasks.ui.command.addTaskRepository" commandName="Add Task Repository..." category="_LcVUjuFIEeW3CZUaZ-3o8w">
+ <parameters xmi:id="_LcfsgOFIEeW3CZUaZ-3o8w" elementId="connectorKind" name="Repository Type"/>
+ </commands>
+ <commands xmi:id="_LcfsgeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.team.cvs.ui.updateAll" commandName="Update All Incoming Changes" description="Update all incoming changes with new content from the repository" category="_LcVUceFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfsguFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.generate.tostring" commandName="Generate toString()" description="Generates the toString() method for the type" category="_LcV7ieFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lcfsg-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.debug.ui.commands.OpenProfileConfigurations" commandName="Profile..." description="Open profile launch configuration dialog" category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfshOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.open.external.javadoc" commandName="Open Attached Javadoc" description="Open the attached Javadoc of the selected element in a browser" category="_LcV7h-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfsheFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.correction.assignParamToField.assist" commandName="Quick Assist - Assign parameter to var" description="Invokes quick assist and selects 'Assign parameter to var'" category="_LcVUguFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfshuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.search.declarations.in.project" commandName="Declaration in Project" description="Search for declarations of the selected element in the enclosing project" category="_LcVUjOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lcfsh-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.generate.hashcode.equals" commandName="Generate hashCode() and equals()" description="Generates hashCode() and equals() methods for the type" category="_LcV7ieFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfsiOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.browser.openBrowser" commandName="Open Browser" description="Opens the default web browser." category="_LcVUc-FIEeW3CZUaZ-3o8w">
+ <parameters xmi:id="_LcfsieFIEeW3CZUaZ-3o8w" elementId="url" name="URL"/>
+ <parameters xmi:id="_LcfsiuFIEeW3CZUaZ-3o8w" elementId="browserId" name="Browser Id"/>
+ <parameters xmi:id="_Lcfsi-FIEeW3CZUaZ-3o8w" elementId="name" name="Browser Name"/>
+ <parameters xmi:id="_LcfsjOFIEeW3CZUaZ-3o8w" elementId="tooltip" name="Browser Tooltip"/>
+ </commands>
+ <commands xmi:id="_LcfsjeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.navigate.gototype" commandName="Go to Type" description="Go to Type" category="_LcV7h-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfsjuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.wikitext.ui.convertToEclipseHelpCommand" commandName="Generate Eclipse Help (*.html and *-toc.xml)" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lcfsj-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.select.columnNext" commandName="Select Next Column" description="Select the next column" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfskOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.team.cvs.ui.merge" commandName="Merge" description="Merge" category="_LcVUceFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfskeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jpt.jpa.ui.convertJavaQueries" commandName="Move Java Queries to XML..." category="_LcVUhOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfskuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.debug.ui.localJavaShortcut.debug" commandName="Debug Java Application" description="Debug Java Application" category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lcfsk-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.jst.pagedesigner.source" commandName="Source Code" category="_LcV7hOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfslOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.extract.local.variable" commandName="Extract Local Variable" description="Extracts an expression into a new local variable and uses the new local variable" category="_LcV7iuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfsleFIEeW3CZUaZ-3o8w" elementId="org.eclipse.team.ui.synchronizeLast" commandName="Repeat last synchronization" description="Repeat the last synchronization" category="_LcV7gOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfsluFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.xml.ui.previousSibling" commandName="Previous Sibling" description="Go to Previous Sibling" category="_LcVUj-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lcfsl-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.select.previous" commandName="Select Previous Element" description="Expand selection to include previous sibling" category="_LcVUj-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfsmOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.goto.columnNext" commandName="Next Column" description="Go to the next column" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfsmeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.tasks.ui.command.searchForTask" commandName="Search Repository for Task" category="_LcV7h-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfsmuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.help.aboutAction" commandName="About" description="Open the about dialog" category="_LcV7guFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lcfsm-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.context.ui.commands.interest.decrement" commandName="Make Less Interesting" description="Make Less Interesting" category="_LcV7huFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfsnOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.compare.copyRightToLeft" commandName="Copy from Right to Left" description="Copy Current Change from Right to Left" category="_LcV7heFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfsneFIEeW3CZUaZ-3o8w" elementId="org.eclipse.m2e.core.pomFileAction.run" commandName="Run Maven Build" description="Run Maven Build" category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfsnuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jpt.dbws.ui.generateDbws" commandName="Generate Database Web Services" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lcfsn-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.extract.method" commandName="Extract Method" description="Extract a set of statements or an expression into a new method and use the new method" category="_LcV7iuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfsoOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.datatools.sqltools.sqleditor.refreshFromDatabaseAction" commandName="Refresh from Database" category="_LcVUdOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfsoeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.pde.ui.quickOutline" commandName="Quick Outline" description="Open a quick outline popup dialog for a given editor input" category="_LcV7h-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfsouFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.clean.up" commandName="Clean Up" description="Solve problems and improve code style on selected resources" category="_LcVUguFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lcfso-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.search.references.in.project" commandName="References in Project" description="Search for references to the selected element in the enclosing project" category="_LcVUjOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfspOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.open.hierarchy" commandName="Quick Hierarchy" description="Show the quick hierarchy of the selected element" category="_LcV7h-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfspeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.datatools.sqltools.sqleditor.GotoMatchingTokenAction" commandName="Goto Matching Token" category="_LcVUdOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfspuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.correction.addThrowsDecl" commandName="Quick Fix - Add throws declaration" description="Invokes quick assist and selects 'Add throws declaration'" category="_LcV7ieFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lcfsp-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.activeContextInfo" commandName="Show activeContext Info" category="_LcVUc-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfsqOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.override.methods" commandName="Override/Implement Functions" description="Override or implement functions from super types" category="_LcVUguFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfsqeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.team.cvs.ui.compareWithTag" commandName="Compare With Another Branch or Version" description="Compare with a Branch or a Version on the CVS Server" category="_LcVUceFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfsquFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.generate.constructor.using.fields" commandName="Generate Constructor using Vars" description="Choose vars to initialize and constructor from superclass to call " category="_LcVUguFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lcfsq-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.findNext" commandName="Find Next" description="Find next item" category="_LcVUj-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfsrOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.correction.addSuppressWarnings" commandName="Quick Fix - Add @SuppressWarnings" description="Invokes quick fix and selects 'Add @SuppressWarnings' " category="_LcV7ieFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfsreFIEeW3CZUaZ-3o8w" elementId="org.eclipse.debug.ui.commands.Disconnect" commandName="Disconnect" description="Disconnect" category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfsruFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.correction.extractLocal.assist" commandName="Quick Assist - Extract local variable" description="Invokes quick assist and selects 'Extract local variable'" category="_LcVUguFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lcfsr-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.commit.CreateTag" commandName="Create Tag..." category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfssOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.correction.addSuppressWarnings" commandName="Quick Fix - Add @SuppressWarnings" description="Invokes quick fix and selects 'Add @SuppressWarnings' " category="_LcVUguFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfsseFIEeW3CZUaZ-3o8w" elementId="org.eclipse.pde.ui.junitWorkbenchShortcut.debug" commandName="Debug JUnit Plug-in Test" description="Debug JUnit Plug-in Test" category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfssuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.show.outline" commandName="Quick Outline" description="Show the quick outline for the editor input" category="_LcV7h-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lcfss-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.team.cvs.ui.setKeywordSubstitution" commandName="Change ASCII/Binary Property" description="Change whether the selected resources should be treated as ASCII or binary on the CVS Server" category="_LcVUceFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfstOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.internal.reflog.CheckoutCommand" commandName="Checkout" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfsteFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.search.references.in.working.set" commandName="References in Working Set" description="Search for references to the selected element in a working set" category="_LcVUjOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfstuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.help.quickStartAction" commandName="Welcome" description="Show help for beginning users" category="_LcV7guFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lcfst-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.addTask" commandName="Add Task..." description="Add a task" category="_LcVUj-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfsuOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.editors.quickdiff.revertLine" commandName="Revert Line" description="Revert the current line" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfsueFIEeW3CZUaZ-3o8w" elementId="org.eclipse.debug.ui.command.prevpage" commandName="Previous Page of Memory" description="Load previous page of memory" category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfsuuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.push.down" commandName="Push Down" description="Move members to subclasses" category="_LcV7iuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lcfsu-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.SourceView" commandName="JavaScript Declaration" description="Show the Declaration view" category="_LcVUd-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfsvOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ant.ui.toggleMarkOccurrences" commandName="Toggle Ant Mark Occurrences" description="Toggles mark occurrences in Ant editors" category="_LcV7ieFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfsveFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.correction.qualifyField" commandName="Quick Fix - Qualify var access" description="Invokes quick assist and selects 'Qualify var access'" category="_LcVUguFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfsvuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ltk.ui.refactor.create.refactoring.script" commandName="Create Script" description="Create a refactoring script from refactorings on the local workspace" category="_LcV7iuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lcfsv-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.m2e.core.ui.command.addPlugin" commandName="Add Maven Plugin" description="Add Maven Plugin" category="_LcVUj-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfswOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.delimiter.windows" commandName="Convert Line Delimiters to Windows (CRLF, \r\n, 0D0A, ¤¶)" description="Converts the line delimiters to Windows (CRLF, \r\n, 0D0A, ¤¶)" category="_LcVUeuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfsweFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.cut.line" commandName="Cut Line" description="Cut a line of text" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcfswuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.select.columnPrevious" commandName="Select Previous Column" description="Select the previous column" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lcfsw-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.file.closeAll" commandName="Close All" description="Close all editors" category="_LcVUeuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcgTkOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jpt.jpa.eclipselink.ui.persistentTypeAddVirtualAttribute" commandName="Add Virtual Attribute..." category="_LcVUgOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcgTkeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.promote.local.variable" commandName="Convert Local Variable to Field" description="Convert a local variable to a field" category="_LcV7iuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcgTkuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.select.wordNext" commandName="Select Next Word" description="Select the next word" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcgTk-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.window.spy" commandName="Show Contributing Plug-in" description="Shows contribution information for the currently selected element" category="_LcVUc-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcgTlOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.team.submodule.sync" commandName="Sync Submodule" category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcgTleFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.window.quickAccess" commandName="Quick Access" description="Quickly access UI elements" category="_LcVUc-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcgTluFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.navigate.addToWorkingSet" commandName="Add to Working Set" description="Adds the selected object to a working set." category="_LcVUj-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcgTl-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.jpt.jpa.ui.persistentTypeMapAs" commandName="Map As" category="_LcVUgOFIEeW3CZUaZ-3o8w">
+ <parameters xmi:id="_LcgTmOFIEeW3CZUaZ-3o8w" elementId="persistentTypeMappingKey" name="mapping key" optional="false"/>
+ </commands>
+ <commands xmi:id="_LcgTmeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.goto.next.member" commandName="Go to Next Member" description="Move the caret to the next member of the compilation unit" category="_LcV7h-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcgTmuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.tasks.ui.command.markTaskReadGoToNextUnread" commandName="Mark Task Read and Go To Next Unread Task" category="_LcVUjuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcgTm-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.debug.ui.commands.ForceReturn" commandName="Force Return" description="Forces return from method with value of selected expression " category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcgTnOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.pde.ui.runtimeWorkbenchShortcut.run" commandName="Run Eclipse Application" description="Run Eclipse Application" category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcgTneFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.open.call.hierarchy" commandName="Open Call Hierarchy" description="Open a call hierarchy on the selected element" category="_LcV7h-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcgTnuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.remove.block.comment" commandName="Remove Block Comment" description="Remove the block comment enclosing the selection" category="_LcV7ieFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcgTn-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.team.CreatePatch" commandName="Create Patch" category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcgToOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.RepositoriesViewImportProjects" commandName="Import Projects..." description="Import or create in local Git repository" category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcgToeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.datatools.sqltools.sqleditor.DMLDialogSelectionAction" commandName="Edit in SQL Query Builder..." category="_LcVUdOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcgTouFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.navigate.showIn" commandName="Show In" category="_LcV7h-FIEeW3CZUaZ-3o8w">
+ <parameters xmi:id="_LcgTo-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.navigate.showIn.targetId" name="Show In Target Id" optional="false"/>
+ </commands>
+ <commands xmi:id="_LcgTpOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.debug.ui.javaAppletShortcut.run" commandName="Run Java Applet" description="Run Java Applet" category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcgTpeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.copy.qualified.name" commandName="Copy Qualified Name" description="Copy a fully qualified name to the system clipboard" category="_LcVUguFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcgTpuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jpt.jpa.ui.generateDDL" commandName="Generate Tables from Entities..." category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcgTp-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.discovery.ui.discoveryWizardCommand" commandName="Discovery Wizard" description="shows the connector discovery wizard" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcgTqOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.debug.ui.commands.AllReferences" commandName="All References" description="Inspect all references to the selected object" category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcgTqeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.debug.ui.command.OpenFromClipboard" commandName="Open from Clipboard" description="Opens a Java element or a Java stack trace from clipboard" category="_LcV7h-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcgTquFIEeW3CZUaZ-3o8w" elementId="org.eclipse.equinox.p2.ui.discovery.commands.ShowRepositoryCatalog" commandName="Show Repository Catalog" category="_LcVUkOFIEeW3CZUaZ-3o8w">
+ <parameters xmi:id="_LcgTq-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.equinox.p2.ui.discovery.commands.RepositoryParameter" name="P2 Repository URI"/>
+ </commands>
+ <commands xmi:id="_LcgTrOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.m2e.editor.RenameArtifactAction" commandName="Rename Maven Artifact..." category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcgTreFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.window.nextPerspective" commandName="Next Perspective" description="Switch to the next perspective" category="_LcVUc-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcgTruFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.extract.constant" commandName="Extract Constant" description="Extracts a constant into a new static field and uses the new static field" category="_LcV7iuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcgTr-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.edit.text.hippieCompletion" commandName="Word Completion" description="Context insensitive completion" category="_LcVUj-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcgTsOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.team.cvs.ui.sync" commandName="Synchronize with Repository" description="Synchronize the workspace resources with those in the repository" category="_LcVUceFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcgTseFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.folding.collapseComments" commandName="Collapse Comments" description="Collapse all comments" category="_LcVUi-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcgTsuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.edit.text.java.open.type.hierarchy" commandName="Open Type Hierarchy" description="Open a type hierarchy on the selected element" category="_LcV7h-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcgTs-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.edit.text.java.add.javadoc.comment" commandName="Add Javadoc Comment" description="Add a Javadoc comment stub to the member element" category="_LcV7ieFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcgTtOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.RepositoriesViewConfigureFetch" commandName="Configure Fetch..." category="_LcVUh-FIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcgTteFIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.wikitext.context.ui.editor.folding.auto" commandName="Toggle Active Folding" description="Toggle Active Folding" category="_LcVUhuFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcgTtuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.debug.ui.commands.Execute" commandName="Execute" description="Evaluate selected text" category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LcgTt-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.debug.ui.commands.Resume" commandName="Resume" description="Resume" category="_LcVUfOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_Lg8utOFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.emf.exporter.genModelEditorContribution/org.eclipse.emf.exporter.ui.GenModelExportActionDelegate.Editor" commandName="&Export Model..."/>
+ <commands xmi:id="_Lg9VwOFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.emf.importer.genModelEditorContribution/org.eclipse.emf.importer.ui.GenModelReloadActionDelegate.Editor" commandName="&Reload..."/>
+ <commands xmi:id="_Lg980OFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.emf.mapping.ecore2ecore.presentation.Ecore2EcoreContributionID/org.eclipse.emf.mapping.action.RemoveMappingActionID" commandName="&Remove Mapping"/>
+ <commands xmi:id="_Lg-j4uFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.emf.mapping.ecore2ecore.presentation.Ecore2EcoreContributionID/org.eclipse.emf.mapping.action.TypeMatchMappingActionID" commandName="Match Mapping by &Type"/>
+ <commands xmi:id="_Lg_K8uFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.emf.mapping.ecore2ecore.presentation.Ecore2EcoreContributionID/org.eclipse.emf.mapping.action.NameMatchMappingActionID" commandName="Match Mapping by &Name"/>
+ <commands xmi:id="_Lg_yAuFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.emf.mapping.ecore2ecore.presentation.Ecore2EcoreContributionID/org.eclipse.emf.mapping.action.CreateOneSidedMappingActionID" commandName="Create &One-sided Mapping"/>
+ <commands xmi:id="_LhAZEOFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.emf.mapping.ecore2ecore.presentation.Ecore2EcoreContributionID/org.eclipse.emf.mapping.action.CreateMappingActionID" commandName="Create &Mapping"/>
+ <commands xmi:id="_LhBAIOFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.emf.mapping.ecore2ecore.presentation.Ecore2EcoreContributionID/org.eclipse.emf.mapping.ecore2ecore.action.AddOuputRootActionID" commandName="Add &Output Root..."/>
+ <commands xmi:id="_LhBnMuFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.emf.mapping.ecore2ecore.presentation.Ecore2EcoreContributionID/org.eclipse.emf.mapping.ecore2ecore.action.AddInputRootActionID" commandName="Add &Input Root..."/>
+ <commands xmi:id="_LhCOQuFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.jdt.debug.ui.JavaSnippetToolbarActions/org.eclipse.jdt.debug.ui.SnippetExecute" commandName="E&xecute"/>
+ <commands xmi:id="_LhC1UuFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.jdt.debug.ui.JavaSnippetToolbarActions/org.eclipse.jdt.debug.ui.SnippetDisplay" commandName="Displa&y"/>
+ <commands xmi:id="_LhDcYOFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.jdt.debug.ui.JavaSnippetToolbarActions/org.eclipse.jdt.debug.ui.SnippetInspect" commandName="Insp&ect"/>
+ <commands xmi:id="_LhHt0OFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.ui.articles.action.contribution.editor/org.eclipse.wst.wsdl.ui.actions.ReloadDependenciesActionDelegate" commandName="Reload Dependencies"/>
+ <commands xmi:id="_LnBhgOFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.ant.ui.actionSet.presentation/org.eclipse.ant.ui.toggleAutoReconcile" commandName="Toggle Ant Editor Auto Reconcile" description="Toggle Ant Editor Auto Reconcile" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnBhgeFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.datatools.sqltools.sqlscrapbook.actionSet/org.eclipse.datatools.sqltools.sqlscrapbook.actions.OpenScrapbookAction" commandName="Open SQL Scrapbook" description="Open scrapbook to edit SQL statements" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnD9wOFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.debug.ui.launchActionSet/org.eclipse.debug.internal.ui.actions.RunWithConfigurationAction" commandName="Run As" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnD9weFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.debug.ui.launchActionSet/org.eclipse.debug.internal.ui.actions.RunHistoryMenuAction" commandName="Run History" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnD9wuFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.debug.ui.launchActionSet/org.eclipse.debug.internal.ui.actions.RunDropDownAction" commandName="Run" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnD9w-FIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.debug.ui.launchActionSet/org.eclipse.debug.internal.ui.actions.DebugWithConfigurationAction" commandName="Debug As" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnD9xOFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.debug.ui.launchActionSet/org.eclipse.debug.internal.ui.actions.DebugHistoryMenuAction" commandName="Debug History" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnEk0OFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.debug.ui.launchActionSet/org.eclipse.debug.internal.ui.actions.DebugDropDownAction" commandName="Debug" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnEk0eFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.debug.ui.profileActionSet/org.eclipse.debug.internal.ui.actions.ProfileDropDownAction" commandName="Profile" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnEk0uFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.debug.ui.profileActionSet/org.eclipse.debug.internal.ui.actions.ProfileWithConfigurationAction" commandName="Profile As" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnEk0-FIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.debug.ui.profileActionSet/org.eclipse.debug.internal.ui.actions.ProfileHistoryMenuAction" commandName="Profile History" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnHoIOFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.jdt.ui.JavaElementCreationActionSet/org.eclipse.jdt.ui.actions.NewTypeDropDown" commandName="Class..." description="New Java Class" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnHoIeFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.jdt.ui.JavaElementCreationActionSet/org.eclipse.jdt.ui.actions.OpenPackageWizard" commandName="Package..." description="New Java Package" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnHoIuFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.jdt.ui.JavaElementCreationActionSet/org.eclipse.jdt.ui.actions.OpenProjectWizard" commandName="Java Project..." description="New Java Project" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnIPMOFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.jdt.ui.SearchActionSet/org.eclipse.jdt.ui.actions.OpenJavaSearchPage" commandName="Java..." category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnIPMeFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.jst.j2ee.J2eeMainActionSet/org.eclipse.jst.j2ee.internal.actions.NewJavaEEArtifact" commandName="Servlet" description="Create a new Servlet" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnI2QOFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.jst.j2ee.J2eeMainActionSet/org.eclipse.jst.j2ee.internal.actions.NewJavaEEProject" commandName="Dynamic Web Project" description="Create a Dynamic Web project" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnI2QeFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.mylyn.java.actionSet.browsing/org.eclipse.mylyn.java.ui.actions.ApplyMylynToBrowsingPerspectiveAction" commandName="Focus Browsing Perspective" description="Focus Java Browsing Views on Active Task" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnI2QuFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.mylyn.doc.actionSet/org.eclipse.mylyn.tasks.ui.bug.report" commandName="Report Bug or Enhancement..." description="Report Bug or Enhancement" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnI2Q-FIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.mylyn.tasks.ui.navigation.additions/org.eclipse.mylyn.tasks.ui.navigate.task.history" commandName="Activate Previous Task" description="Activate Previous Task" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnI2ROFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.pde.ui.SearchActionSet/org.eclipse.pde.ui.actions.OpenPluginSearchPage" commandName="Plug-in..." category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnJdUOFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.ui.cheatsheets.actionSet/org.eclipse.ui.cheatsheets.actions.CheatSheetHelpMenuAction" commandName="Cheat Sheets..." category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnJdUeFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.rse.core.search.searchActionSet/org.eclipse.rse.core.search.searchAction" commandName="Remote..." description="Opens Remote Search dialog page for text and file searching on remote systems" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnJdUuFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.search.searchActionSet/org.eclipse.search.OpenSearchDialogPage" commandName="Search..." description="Search" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnKrcOFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.team.ui.actionSet/org.eclipse.team.ui.synchronizeAll" commandName="Synchronize..." description="Synchronize..." category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnKrceFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.team.ui.actionSet/org.eclipse.team.ui.ConfigureProject" commandName="Share Project..." description="Share the project with others using a version and configuration management system." category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnKrcuFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.ui.externaltools.ExternalToolsSet/org.eclipse.ui.externaltools.ExternalToolMenuDelegateMenu" commandName="External Tools" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnLSgOFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.wst.jsdt.ui.JavaElementCreationActionSet/org.eclipse.wst.jsdt.ui.actions.OpenFileWizard" commandName="JavaScript Source File" description="New JavaScript file" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnLSgeFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.wst.jsdt.ui.JavaElementCreationActionSet/org.eclipse.wst.jsdt.ui.actions.OpenProjectWizard" commandName="JavaScript Project..." description="New JavaScript Project" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnLSguFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.refactor.show.refactoring.history" commandName="History..." category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnL5kOFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.wst.jsdt.ui.SearchActionSet/org.eclipse.wst.jsdt.ui.actions.OpenJavaSearchPage" commandName="JavaScript..." category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnL5keFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.wst.server.ui.new.actionSet/org.eclipse.wst.server.ui.action.new.server" commandName="Create Server" description="Create Server" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnL5kuFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.wst.server.ui.internal.webbrowser.actionSet/org.eclipse.wst.server.ui.internal.webbrowser.action.open" commandName="Open Web Browser" description="Open Web Browser" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnL5k-FIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.wst.server.ui.internal.webbrowser.actionSet/org.eclipse.wst.server.ui.internal.webbrowser.action.switch" commandName="Web Browser" description="Web Browser" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnL5lOFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.wst.web.ui.wizardsActionSet/org.eclipse.wst.web.ui.actions.newCSSFile" commandName="CSS" description="Create a new Cascading Style Sheet" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnL5leFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.wst.web.ui.wizardsActionSet/org.eclipse.wst.web.ui.actions.newJSFile" commandName="JavaScript" description="Create a new JavaScript file" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnL5luFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.wst.web.ui.wizardsActionSet/org.eclipse.wst.web.ui.actions.newHTMLFile" commandName="HTML" description="Create a new HTML page" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnMgoOFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.wst.ws.explorer.explorer/org.eclipse.wst.ws.internal.explorer.action.LaunchWSEAction" commandName="Launch the Web Services Explorer" description="Launch the Web Services Explorer" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnMgoeFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.ant.ui.BreakpointRulerActions/org.eclipse.ant.ui.actions.ManageBreakpointRulerAction" commandName="Toggle Breakpoint" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnMgouFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.datatools.sqltools.rullerDoubleClick/org.eclipse.jdt.debug.ui.actions.ManageBreakpointRulerAction" commandName="Add Breakpoint" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnMgo-FIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.jdt.debug.CompilationUnitEditor.BreakpointRulerActions/org.eclipse.jdt.debug.ui.actions.ManageBreakpointRulerAction" commandName="Toggle Breakpoint" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnNHsOFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.jdt.debug.ClassFileEditor.BreakpointRulerActions/org.eclipse.jdt.debug.ui.actions.ManageBreakpointRulerAction" commandName="Toggle Breakpoint" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnNHseFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.jdt.internal.ui.CompilationUnitEditor.ruler.actions/org.eclipse.jdt.internal.ui.javaeditor.BookmarkRulerAction" commandName="Java Editor Bookmark Ruler Action" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnNHsuFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.jdt.internal.ui.CompilationUnitEditor.ruler.actions/org.eclipse.jdt.internal.ui.javaeditor.JavaSelectRulerAction" commandName="Java Editor Ruler Single-Click" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnNHs-FIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.jdt.internal.ui.ClassFileEditor.ruler.actions/org.eclipse.jdt.internal.ui.javaeditor.JavaSelectRulerAction" commandName="Java Editor Ruler Single-Click" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnNuwOFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.jdt.internal.ui.PropertiesFileEditor.ruler.actions/org.eclipse.jdt.internal.ui.propertiesfileeditor.BookmarkRulerAction" commandName="Java Editor Bookmark Ruler Action" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnNuweFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.jdt.internal.ui.PropertiesFileEditor.ruler.actions/org.eclipse.jdt.internal.ui.propertiesfileeditor.SelectRulerAction" commandName="Java Editor Ruler Single-Click" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnNuwuFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.jst.jsp.core.jspsource.ruler.actions/org.eclipse.ui.texteditor.BookmarkRulerAction" commandName="Add Bookmark..." category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnNuw-FIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.jst.jsp.core.jspsource.ruler.actions/org.eclipse.ui.texteditor.SelectRulerAction" commandName="Select Ruler" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnNuxOFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.m2e.jdt.downloadSourcesContribution/org.eclipse.m2e.jdt.downloadSourcesAction" commandName="label" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnNuxeFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.m2e.jdt.downloadSourcesContribution_38/org.eclipse.m2e.jdt.downloadSourcesAction" commandName="label" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnNuxuFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.ui.texteditor.ruler.actions/org.eclipse.ui.texteditor.BookmarkRulerAction" commandName="Text Editor Bookmark Ruler Action" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnNux-FIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.ui.texteditor.ruler.actions/org.eclipse.ui.texteditor.SelectRulerAction" commandName="Text Editor Ruler Single-Click" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnOV0OFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.wst.css.core.csssource.ruler.actions/org.eclipse.ui.texteditor.BookmarkRulerAction" commandName="Add Bookmark..." category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnOV0eFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.wst.css.core.csssource.ruler.actions/org.eclipse.ui.texteditor.SelectRulerAction" commandName="Select Ruler" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnOV0uFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.wst.dtd.core.dtdsource.ruler.actions/org.eclipse.ui.texteditor.BookmarkRulerAction" commandName="Add Bookmark..." category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnOV0-FIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.wst.dtd.core.dtdsource.ruler.actions/org.eclipse.ui.texteditor.SelectRulerAction" commandName="Select Ruler" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnOV1OFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.wst.html.core.htmlsource.ruler.actions/org.eclipse.ui.texteditor.BookmarkRulerAction" commandName="Add Bookmark..." category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnOV1eFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.wst.html.core.htmlsource.ruler.actions/org.eclipse.ui.texteditor.SelectRulerAction" commandName="Select Ruler" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnOV1uFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.wst.jsdt.debug.ui.togglebreakpoint/org.eclipse.wst.jsdt.debug.ui.RulerToggleBreakpoint" commandName="Toggle Breakpoint" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnOV1-FIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.wst.jsdt.internal.ui.CompilationUnitEditor.ruler.actions/org.eclipse.wst.jsdt.internal.ui.javaeditor.BookmarkRulerAction" commandName="JavaScript Editor Bookmark Ruler Action" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnO84OFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.wst.jsdt.internal.ui.CompilationUnitEditor.ruler.actions/org.eclipse.wst.jsdt.internal.ui.javaeditor.JavaSelectRulerAction" commandName="JavaScript Editor Ruler Single-Click" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnO84eFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.wst.jsdt.internal.ui.ClassFileEditor.ruler.actions/org.eclipse.wst.jsdt.internal.ui.javaeditor.JavaSelectRulerAction" commandName="JavaScript Editor Ruler Single-Click" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnO84uFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.wst.jsdt.internal.ui.PropertiesFileEditor.ruler.actions/org.eclipse.wst.jsdt.internal.ui.propertiesfileeditor.BookmarkRulerAction" commandName="JavaScript Editor Bookmark Ruler Action" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnO84-FIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.wst.jsdt.internal.ui.PropertiesFileEditor.ruler.actions/org.eclipse.wst.jsdt.internal.ui.propertiesfileeditor.SelectRulerAction" commandName="JavaScript Editor Ruler Single-Click" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnO85OFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.wst.wsdl.wsdlsource.ruler.actions/org.eclipse.ui.texteditor.BookmarkRulerAction" commandName="Add Bookmark..." category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnO85eFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.wst.wsdl.wsdlsource.ruler.actions/org.eclipse.ui.texteditor.SelectRulerAction" commandName="Select Ruler" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnO85uFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.core.runtime.xml.source.ruler.actions/org.eclipse.ui.texteditor.BookmarkRulerAction" commandName="Add Bookmark..." category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnO85-FIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.core.runtime.xml.source.ruler.actions/org.eclipse.ui.texteditor.SelectRulerAction" commandName="Select Ruler" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnPj8OFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.wst.xsd.core.xsdsource.ruler.actions/org.eclipse.ui.texteditor.BookmarkRulerAction" commandName="Add Bookmark..." category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnPj8eFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.wst.xsd.core.xsdsource.ruler.actions/org.eclipse.ui.texteditor.SelectRulerAction" commandName="Select Ruler" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnPj8uFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.debug.ui.PulldownActions/org.eclipse.debug.ui.debugview.pulldown.ViewManagementAction" commandName="View Management..." category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnPj8-FIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.debug.ui.debugview.toolbar/org.eclipse.debug.ui.debugview.toolbar.removeAllTerminated" commandName="Remove All Terminated" description="Remove All Terminated Launches" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnPj9OFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.debug.ui.breakpointsview.toolbar/org.eclipse.debug.ui.breakpointsView.toolbar.removeAll" commandName="Remove All" description="Remove All Breakpoints" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnPj9eFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.debug.ui.breakpointsview.toolbar/org.eclipse.debug.ui.breakpointsView.toolbar.linkWithDebugView" commandName="Link with Debug View" description="Link with Debug View" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnQLAOFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.debug.ui.breakpointsview.toolbar/org.eclipse.debug.ui.breakpointsView.toolbar.workingSets" commandName="Working Sets..." description="Manage Working Sets" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnQLAeFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.debug.ui.breakpointsview.toolbar/org.eclipse.debug.ui.breakpointsView.toolbar.clearDefaultBreakpointGroup" commandName="Deselect Default Working Set" description="Deselect Default Working Set" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnQLAuFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.debug.ui.breakpointsview.toolbar/org.eclipse.debug.ui.breakpointsView.toolbar.setDefaultBreakpointGroup" commandName="Select Default Working Set..." description="Select Default Working Set" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnQLA-FIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.debug.ui.breakpointsview.toolbar/org.eclipse.debug.ui.breakpointsView.toolbar.groupByAction" commandName="Group By" description="Show" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnQLBOFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.debug.ui.expressionsView.toolbar/org.eclipse.debug.ui.expresssionsView.toolbar.removeAll" commandName="Remove All" description="Remove All Expressions" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnQLBeFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.debug.ui.expressionsView.toolbar/org.eclipse.debug.ui.expresssionsView.toolbar.AddWatchExpression" commandName="Add Watch Expression..." description="Create a new watch expression" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnQLBuFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.debug.ui.memoryView.toolbar/org.eclipse.debug.ui.PinMemoryBlockAction" commandName="Pin Memory Monitor" description="Pin Memory Monitor" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnQLB-FIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.debug.ui.memoryView.toolbar/org.eclipse.debug.ui.NewMemoryViewAction" commandName="New Memory View" description="New Memory View" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnQyEOFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.debug.ui.memoryView.toolbar/org.eclipse.debug.ui.togglemonitors" commandName="Toggle Memory Monitors Pane" description="Toggle Memory Monitors Pane" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnQyEeFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.debug.ui.memoryView.toolbar/org.eclipse.debug.ui.linkrenderingpanes" commandName="Link Memory Rendering Panes" description="Link Memory Rendering Panes" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnQyEuFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.debug.ui.memoryView.toolbar/org.eclipse.debug.ui.tablerendering.preferencesaction" commandName="Table Renderings Preferences..." description="&Table Renderings Preferences..." category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnQyE-FIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.debug.ui.memoryView.toolbar/org.eclipse.debug.ui.togglesplitpane" commandName="Toggle Split Pane" description="Toggle Split Pane" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnQyFOFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.debug.ui.memoryView.toolbar/org.eclipse.debug.ui.switchMemoryBlock" commandName="Switch Memory Monitor" description="Switch Memory Monitor" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnQyFeFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.debug.ui.memoryView.toolbar/org.eclipse.debug.ui.memoryViewPreferencesAction" commandName="Preferences..." description="&Preferences..." category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnQyFuFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.jdt.debug.ui.VariableViewActions/org.eclipse.jdt.debug.ui.variableViewActions.Preferences" commandName="Java Preferences..." description="Opens preferences for Java variables" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnQyF-FIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.jdt.debug.ui.VariableViewActions/org.eclipse.jdt.debug.ui.variablesViewActions.AllReferencesInView" commandName="Show References" description="Shows references to each object in the variables view as an array of objects." category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnRZIOFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.jdt.debug.ui.VariableViewActions/org.eclipse.jdt.debug.ui.variableViewActions.ShowNullEntries" commandName="Show Null Array Entries" description="Show Null Array Entries" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnRZIeFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.jdt.debug.ui.VariableViewActions/org.eclipse.jdt.debug.ui.variableViewActions.ShowQualified" commandName="Show Qualified Names" description="Show Qualified Names" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnRZIuFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.jdt.debug.ui.VariableViewActions/org.eclipse.jdt.debug.ui.variableViewActions.ShowStatic" commandName="Show Static Variables" description="Show Static Variables" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnRZI-FIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.jdt.debug.ui.VariableViewActions/org.eclipse.jdt.debug.ui.variableViewActions.ShowConstants" commandName="Show Constants" description="Show Constants" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnRZJOFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.jdt.debug.ui.ExpressionViewActions/org.eclipse.jdt.debug.ui.variableViewActions.Preferences" commandName="Java Preferences..." description="Opens preferences for Java variables" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnRZJeFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.jdt.debug.ui.ExpressionViewActions/org.eclipse.jdt.debug.ui.expressionViewActions.AllReferencesInView" commandName="Show References" description="Show &References" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnRZJuFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.jdt.debug.ui.ExpressionViewActions/org.eclipse.jdt.debug.ui.variableViewActions.ShowNullEntries" commandName="Show Null Array Entries" description="Show Null Array Entries" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnRZJ-FIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.jdt.debug.ui.ExpressionViewActions/org.eclipse.jdt.debug.ui.expressionViewActions.ShowQualified" commandName="Show Qualified Names" description="Show Qualified Names" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnRZKOFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.jdt.debug.ui.ExpressionViewActions/org.eclipse.jdt.debug.ui.expressionViewActions.ShowStatic" commandName="Show Static Variables" description="Show Static Variables" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnSAMOFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.jdt.debug.ui.ExpressionViewActions/org.eclipse.jdt.debug.ui.expressionViewActions.ShowConstants" commandName="Show Constants" description="Show Constants" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnSAMeFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.jdt.debug.ui.BreakpointViewActions/org.eclipse.jdt.debug.ui.actions.AddException" commandName="Add Java Exception Breakpoint" description="Add Java Exception Breakpoint" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnSAMuFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.jdt.debug.ui.BreakpointViewActions/org.eclipse.jdt.debug.ui.breakpointViewActions.ShowQualified" commandName="Show Qualified Names" description="Show Qualified Names" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnSAM-FIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.jdt.debug.ui.LaunchViewActions/org.eclipse.jdt.debug.ui.launchViewActions.ShowThreadGroups" commandName="Show Thread Groups" description="Show Thread Groups" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnSANOFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.jdt.debug.ui.LaunchViewActions/org.eclipse.jdt.debug.ui.launchViewActions.ShowQualified" commandName="Show Qualified Names" description="Show Qualified Names" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnSANeFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.jdt.debug.ui.LaunchViewActions/org.eclipse.jdt.debug.ui.launchViewActions.ShowSystemThreads" commandName="Show System Threads" description="Show System Threads" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnSANuFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.jdt.debug.ui.LaunchViewActions/org.eclipse.jdt.debug.ui.launchViewActions.ShowMonitorThreadInfo" commandName="Show Monitors" description="Show the Thread & Monitor Information" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnSAN-FIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.jdt.debug.ui.DisplayViewActions/org.eclipse.jdt.debug.ui.displayViewToolbar.Watch" commandName="Watch" description="Create a Watch Expression from the Selected Text" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnSnQOFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.jdt.debug.ui.DisplayViewActions/org.eclipse.jdt.debug.ui.displayViewToolbar.Execute" commandName="Execute" description="Execute the Selected Text" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnSnQeFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.jdt.debug.ui.DisplayViewActions/org.eclipse.jdt.debug.ui.displayViewToolbar.Display" commandName="Display" description="Display Result of Evaluating Selected Text" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnSnQuFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.jdt.debug.ui.DisplayViewActions/org.eclipse.jdt.debug.ui.displayViewToolbar.Inspect" commandName="Inspect" description="Inspect Result of Evaluating Selected Text" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnSnQ-FIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.mylyn.context.ui.outline.contribution/org.eclipse.mylyn.context.ui.contentOutline.focus" commandName="Focus on Active Task" description="Focus on Active Task (Alt+click to reveal filtered elements)" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnSnROFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.mylyn.java.ui.markers.breakpoints.contribution/org.eclipse.mylyn.java.ui.actions.focus.markers.breakpoints" commandName="Focus on Active Task" description="Focus on Active Task" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnSnReFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.mylyn.ui.debug.view.contribution/org.eclipse.mylyn.ui.actions.FilterResourceNavigatorAction" commandName="Focus on Active Task (Experimental)" description="Focus on Active Task (Experimental)" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnSnRuFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.mylyn.ui.projectexplorer.filter/org.eclipse.mylyn.ide.ui.actions.focus.projectExplorer" commandName="Focus on Active Task" description="Focus on Active Task (Alt+click to reveal filtered elements)" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnTOUOFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.mylyn.ui.resource.navigator.filter/org.eclipse.mylyn.ide.ui.actions.focus.resourceNavigator" commandName="Focus on Active Task" description="Focus on Active Task (Alt+click to reveal filtered elements)" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnTOUeFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.mylyn.problems.contribution/org.eclipse.mylyn.ide.ui.actions.focus.markers.problems" commandName="Focus on Active Task" description="Focus on Active Task" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnTOUuFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.mylyn.markers.all.contribution/org.eclipse.mylyn.ide.ui.actions.focus.markers.all" commandName="Focus on Active Task" description="Focus on Active Task" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnTOU-FIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.mylyn.markers.tasks.contribution/org.eclipse.mylyn.ide.ui.actions.focus.markers.tasks" commandName="Focus on Active Task" description="Focus on Active Task" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnTOVOFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.mylyn.markers.bookmarks.contribution/org.eclipse.mylyn.ide.ui.actions.focus.markers.bookmarks" commandName="Focus on Active Task" description="Focus on Active Task" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnTOVeFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.mylyn.java.explorer.contribution/org.eclipse.mylyn.java.actions.focus.packageExplorer" commandName="Focus on Active Task" description="Focus on Active Task (Alt+click to reveal filtered elements)" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnTOVuFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.mylyn.tasks.ui.actions.view/org.eclipse.mylyn.tasks.ui.search.open" commandName="Search Repository..." category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnTOV-FIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.mylyn.tasks.ui.actions.view/org.eclipse.mylyn.tasks.ui.synchronize.changed" commandName="Synchronize Changed" description="Synchronize Changed" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnT1YOFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.mylyn.tasks.ui.actions.view/org.eclipse.mylyn.tasks.ui.tasks.restore" commandName="Restore Tasks from History..." category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnT1YeFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.mylyn.tasks.ui.actions.view/org.eclipse.mylyn.tasks.ui.open.repositories.view" commandName="Show Task Repositories View" description="Show Task Repositories View" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnT1YuFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.mylyn.tasks.ui.actions.view/org.eclipse.mylyn.doc.legend.show.action" commandName="Show UI Legend" description="Show Tasks UI Legend" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnT1Y-FIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.mylyn.tasks.ui.actions.view/org.eclipse.mylyn.context.ui.actions.tasklist.focus" commandName="Focus on Workweek" description="Focus on Workweek" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnT1ZOFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.pde.ui.logViewActions/org.eclipse.jdt.debug.ui.LogViewActions.showStackTrace" commandName="Show Stack Trace in Console View" description="Show Stack Trace in Console View" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnT1ZeFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.rse.ui.view.systemView.toolbar/org.eclipse.rse.ui.view.systemView.toolbar.linkWithSystemView" commandName="Link with Editor" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnT1ZuFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::breakpointsViewActions/org.eclipse.wst.jsdt.debug.ui.add.scriptload.breakpoint" commandName="Add Script Load Breakpoint" description="Add Script Load Breakpoint" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnT1Z-FIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::breakpointsViewActions/org.eclipse.jdt.debug.ui.breakpointViewActions.ShowQualified" commandName="Suspend For All Script Loads" description="Suspends when any script is loaded" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnT1aOFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::breakpointsViewActions/org.eclipse.wst.jsdt.debug.ui.suspend.on.exceptions" commandName="Suspend On JavaScript Exceptions" description="Suspend on all JavaScript exceptions" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnUccOFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::debugViewActions/org.eclipse.wst.jsdt.debug.ui.show.all.scripts" commandName="Show All Scripts" description="Shows or hides all scripts loaded in the visible targets" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnUcceFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::variableViewActions/org.eclipse.wst.jsdt.debug.ui.variableview.show.functions" commandName="Show function variables" description="Show or hide function variables" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnUccuFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::variableViewActions/org.eclipse.wst.jsdt.debug.ui.variableview.show.this" commandName="Show 'this' variable" description="Show or hide the this variable" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnUcc-FIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::variableViewActions/org.eclipse.wst.jsdt.debug.ui.variableview.show.prototypes" commandName="Show proto variables" description="Show or hide proto variables" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <commands xmi:id="_LnUcdOFIEeW3CZUaZ-3o8w" elementId="AUTOGEN:::org.eclipse.ui.articles.action.contribution.view/org.eclipse.wst.wsi.ui.internal.actions.actionDelegates.ValidateWSIProfileActionDelegate" commandName="WS-I Profile Validator" description="Validate WS-I Message Log File" category="_LcVUkOFIEeW3CZUaZ-3o8w"/>
+ <addons xmi:id="_LbY5SOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.e4.core.commands.service" contributorURI="platform:/plugin/org.eclipse.ui.workbench" contributionURI="bundleclass://org.eclipse.e4.core.commands/org.eclipse.e4.core.commands.CommandServiceAddon"/>
+ <addons xmi:id="_LbY5SeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.e4.ui.contexts.service" contributorURI="platform:/plugin/org.eclipse.ui.workbench" contributionURI="bundleclass://org.eclipse.e4.ui.services/org.eclipse.e4.ui.services.ContextServiceAddon"/>
+ <addons xmi:id="_LbY5SuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.e4.ui.bindings.service" contributorURI="platform:/plugin/org.eclipse.ui.workbench" contributionURI="bundleclass://org.eclipse.e4.ui.bindings/org.eclipse.e4.ui.bindings.BindingServiceAddon"/>
+ <addons xmi:id="_LbY5S-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.e4.ui.workbench.commands.model" contributorURI="platform:/plugin/org.eclipse.ui.workbench" contributionURI="bundleclass://org.eclipse.e4.ui.workbench/org.eclipse.e4.ui.internal.workbench.addons.CommandProcessingAddon"/>
+ <addons xmi:id="_LbY5TOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.e4.ui.workbench.contexts.model" contributorURI="platform:/plugin/org.eclipse.ui.workbench" contributionURI="bundleclass://org.eclipse.e4.ui.workbench/org.eclipse.e4.ui.internal.workbench.addons.ContextProcessingAddon"/>
+ <addons xmi:id="_LbY5TeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.e4.ui.workbench.bindings.model" contributorURI="platform:/plugin/org.eclipse.ui.workbench" contributionURI="bundleclass://org.eclipse.e4.ui.workbench.swt/org.eclipse.e4.ui.workbench.swt.util.BindingProcessingAddon"/>
+ <addons xmi:id="_LbY5TuFIEeW3CZUaZ-3o8w" elementId="Cleanup Addon" contributorURI="platform:/plugin/org.eclipse.ui.workbench" contributionURI="bundleclass://org.eclipse.e4.ui.workbench.addons.swt/org.eclipse.e4.ui.workbench.addons.cleanupaddon.CleanupAddon"/>
+ <addons xmi:id="_LbZgUOFIEeW3CZUaZ-3o8w" elementId="DnD Addon" contributorURI="platform:/plugin/org.eclipse.ui.workbench" contributionURI="bundleclass://org.eclipse.e4.ui.workbench.addons.swt/org.eclipse.e4.ui.workbench.addons.dndaddon.DnDAddon"/>
+ <addons xmi:id="_LbZgUeFIEeW3CZUaZ-3o8w" elementId="MinMax Addon" contributorURI="platform:/plugin/org.eclipse.ui.workbench" contributionURI="bundleclass://org.eclipse.e4.ui.workbench.addons.swt/org.eclipse.e4.ui.workbench.addons.minmax.MinMaxAddon"/>
+ <addons xmi:id="_LbZgUuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.workbench.addon.0" contributorURI="platform:/plugin/org.eclipse.ui.workbench" contributionURI="bundleclass://org.eclipse.e4.ui.workbench/org.eclipse.e4.ui.internal.workbench.addons.HandlerProcessingAddon"/>
+ <categories xmi:id="_LcVUcOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.category.perspectives" name="Perspectives" description="Commands for opening perspectives"/>
+ <categories xmi:id="_LcVUceFIEeW3CZUaZ-3o8w" elementId="org.eclipse.team.cvs.ui.actionSet" name="CVS" description="Actions that apply when working with CVS repositories"/>
+ <categories xmi:id="_LcVUcuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.datatools.enablement.sybase.asa.schemaobjecteditor.examples.tableschemaedtor.10x" name="ASA 9.x table schema editor"/>
+ <categories xmi:id="_LcVUc-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.category.window" name="Window"/>
+ <categories xmi:id="_LcVUdOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.datatools.sqltools.sqleditor.category" name="Database Tools" description="Database Development tools"/>
+ <categories xmi:id="_LcVUdeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.xml.views.XPathView" name="XPath"/>
+ <categories xmi:id="_LcVUduFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.category.project" name="Project"/>
+ <categories xmi:id="_LcVUd-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.category.views" name="Views" description="Commands for opening views"/>
+ <categories xmi:id="_LcVUeOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.pde.runtime.spy.commands.category" name="Spy"/>
+ <categories xmi:id="_LcVUeeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.ide.markerContents" name="Contents" description="The category for menu contents"/>
+ <categories xmi:id="_LcVUeuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.category.file" name="File"/>
+ <categories xmi:id="_LcVUe-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.rse.ui.commands.category" name="Remote Systems"/>
+ <categories xmi:id="_LcVUfOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.debug.ui.category.run" name="Run/Debug" description="Run/Debug command category"/>
+ <categories xmi:id="_LcVUfeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.wikitext.ui.editor.category" name="WikiText Markup Editing Commands" description="commands for editing lightweight markup"/>
+ <categories xmi:id="_LcVUfuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.pde.ui.category.source" name="Manifest Editor Source" description="PDE Source Page actions"/>
+ <categories xmi:id="_LcVUf-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.emf.codegen.ecore.ui.Commands" name="EMF Code Generation" description="Commands for the EMF code generation tools"/>
+ <categories xmi:id="_LcVUgOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jpt.jpa.ui.jpaStructureViewCommands" name="JPA Structure View"/>
+ <categories xmi:id="_LcVUgeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.tasks.ui.category.editor" name="Task Editor"/>
+ <categories xmi:id="_LcVUguFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.category.source" name="Source" description="JavaScript Source Actions"/>
+ <categories xmi:id="_LcVUg-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.datatools.sqltools.result.category" name="SQL Results View"/>
+ <categories xmi:id="_LcVUhOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jpt.jpa.ui.jpaMetadataConversionCommands" name="JPA Metadata Conversion"/>
+ <categories xmi:id="_LcVUheFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.ui.category.refactoring" name="Refactor - JavaScript" description="JavaScript Refactoring Actions"/>
+ <categories xmi:id="_LcVUhuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.wikitext.context.ui.commands" name="%commands.category.name" description="%commands.category.description"/>
+ <categories xmi:id="_LcVUh-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.egit.ui.commandCategory" name="Git"/>
+ <categories xmi:id="_LcVUiOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.java.ui.commands" name="Java Context" description="Java Task-Focused Interface Commands"/>
+ <categories xmi:id="_LcVUieFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.server.ui" name="Server" description="Server"/>
+ <categories xmi:id="_LcVUiuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.category.dialogs" name="Dialogs" description="Commands for opening dialogs"/>
+ <categories xmi:id="_LcVUi-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.category.textEditor" name="Text Editing" description="Text Editing Commands"/>
+ <categories xmi:id="_LcVUjOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.search.ui.category.search" name="Search" description="Search command category"/>
+ <categories xmi:id="_LcVUjeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.commons.repositories.ui.category.Team" name="Team"/>
+ <categories xmi:id="_LcVUjuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.tasks.ui.commands" name="Task Repositories"/>
+ <categories xmi:id="_LcVUj-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.category.edit" name="Edit"/>
+ <categories xmi:id="_LcVUkOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.core.commands.categories.autogenerated" name="Uncategorized" description="Commands that were either auto-generated or have no category"/>
+ <categories xmi:id="_LcVUkeFIEeW3CZUaZ-3o8w" elementId="org.eclipse.wst.jsdt.debug.ui.category" name="JavaScript Debug" description="Tooling for debugging JavaScript"/>
+ <categories xmi:id="_LcV7gOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.team.ui.category.team" name="Team" description="Actions that apply when working with a Team"/>
+ <categories xmi:id="_LcV7geFIEeW3CZUaZ-3o8w" elementId="org.eclipse.gef.category.view" name="View" description="View"/>
+ <categories xmi:id="_LcV7guFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.category.help" name="Help"/>
+ <categories xmi:id="_LcV7g-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.tm.terminal.category1" name="Terminal view commands" description="Terminal view commands"/>
+ <categories xmi:id="_LcV7hOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jst.pagedesigner.pagelayout" name="Web Page Editor Layout"/>
+ <categories xmi:id="_LcV7heFIEeW3CZUaZ-3o8w" elementId="org.eclipse.compare.ui.category.compare" name="Compare" description="Compare command category"/>
+ <categories xmi:id="_LcV7huFIEeW3CZUaZ-3o8w" elementId="org.eclipse.mylyn.context.ui.commands" name="Focused UI" description="Task-Focused Interface"/>
+ <categories xmi:id="_LcV7h-FIEeW3CZUaZ-3o8w" elementId="org.eclipse.ui.category.navigate" name="Navigate"/>
+ <categories xmi:id="_LcV7iOFIEeW3CZUaZ-3o8w" elementId="org.eclipse.ltk.ui.category.refactoring" name="Refactoring"/>
+ <categories xmi:id="_LcV7ieFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.category.source" name="Source" description="Java Source Actions"/>
+ <categories xmi:id="_LcV7iuFIEeW3CZUaZ-3o8w" elementId="org.eclipse.jdt.ui.category.refactoring" name="Refactor - Java" description="Java Refactoring Actions"/>
+</application:Application>
diff --git a/sm-search/.metadata/.plugins/org.eclipse.jdt.core/invalidArchivesCache b/sm-search/.metadata/.plugins/org.eclipse.jdt.core/invalidArchivesCache
new file mode 100644
index 0000000..593f470
Binary files /dev/null and b/sm-search/.metadata/.plugins/org.eclipse.jdt.core/invalidArchivesCache differ
diff --git a/sm-search/.metadata/.plugins/org.eclipse.jdt.core/nonChainingJarsCache b/sm-search/.metadata/.plugins/org.eclipse.jdt.core/nonChainingJarsCache
new file mode 100644
index 0000000..593f470
Binary files /dev/null and b/sm-search/.metadata/.plugins/org.eclipse.jdt.core/nonChainingJarsCache differ
diff --git a/sm-search/.metadata/.plugins/org.eclipse.jdt.core/variablesAndContainers.dat b/sm-search/.metadata/.plugins/org.eclipse.jdt.core/variablesAndContainers.dat
new file mode 100644
index 0000000..dc803ab
Binary files /dev/null and b/sm-search/.metadata/.plugins/org.eclipse.jdt.core/variablesAndContainers.dat differ
diff --git a/sm-search/.metadata/.plugins/org.eclipse.jdt.ui/OpenTypeHistory.xml b/sm-search/.metadata/.plugins/org.eclipse.jdt.ui/OpenTypeHistory.xml
new file mode 100644
index 0000000..6cd9562
--- /dev/null
+++ b/sm-search/.metadata/.plugins/org.eclipse.jdt.ui/OpenTypeHistory.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<typeInfoHistroy/>
diff --git a/sm-search/.metadata/.plugins/org.eclipse.jdt.ui/QualifiedTypeNameHistory.xml b/sm-search/.metadata/.plugins/org.eclipse.jdt.ui/QualifiedTypeNameHistory.xml
new file mode 100644
index 0000000..8c365b7
--- /dev/null
+++ b/sm-search/.metadata/.plugins/org.eclipse.jdt.ui/QualifiedTypeNameHistory.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<qualifiedTypeNameHistroy/>
diff --git a/sm-search/.metadata/.plugins/org.eclipse.m2e.logback.configuration/0.log b/sm-search/.metadata/.plugins/org.eclipse.m2e.logback.configuration/0.log
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/sm-search/.metadata/.plugins/org.eclipse.m2e.logback.configuration/0.log
diff --git a/sm-search/.metadata/.plugins/org.eclipse.m2e.logback.configuration/logback.1.4.0.20130601-0317.xml b/sm-search/.metadata/.plugins/org.eclipse.m2e.logback.configuration/logback.1.4.0.20130601-0317.xml
new file mode 100644
index 0000000..e0de515
--- /dev/null
+++ b/sm-search/.metadata/.plugins/org.eclipse.m2e.logback.configuration/logback.1.4.0.20130601-0317.xml
@@ -0,0 +1,41 @@
+<configuration scan="true">
+ <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+ <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+ <pattern>%date [%thread] %-5level %logger{35} - %msg%n</pattern>
+ </encoder>
+ <filter class="org.eclipse.m2e.logback.appender.ConsoleAppenderFilter"/>
+ </appender>
+
+ <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <File>${org.eclipse.m2e.log.dir}/0.log</File>
+ <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <FileNamePattern>${org.eclipse.m2e.log.dir}/%i.log</FileNamePattern>
+ <MinIndex>1</MinIndex>
+ <MaxIndex>10</MaxIndex>
+ </rollingPolicy>
+ <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <MaxFileSize>100MB</MaxFileSize>
+ </triggeringPolicy>
+ <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+ <pattern>%date [%thread] %-5level %logger{35} - %msg%n</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="EclipseLog" class="org.eclipse.m2e.logback.appender.EclipseLogAppender">
+ <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+ <level>WARN</level>
+ </filter>
+ </appender>
+
+ <appender name="MavenConsoleLog" class="org.eclipse.m2e.logback.appender.MavenConsoleAppender">
+ </appender>
+
+ <root level="INFO">
+ <appender-ref ref="FILE" />
+ <appender-ref ref="STDOUT" />
+ <appender-ref ref="EclipseLog" />
+ <appender-ref ref="MavenConsoleLog" />
+ </root>
+
+ <logger name="com.ning.http.client" level="INFO" />
+</configuration>
diff --git a/sm-search/.metadata/.plugins/org.eclipse.rse.core/.log b/sm-search/.metadata/.plugins/org.eclipse.rse.core/.log
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/sm-search/.metadata/.plugins/org.eclipse.rse.core/.log
diff --git a/sm-search/.metadata/.plugins/org.eclipse.rse.core/initializerMarks/org.eclipse.rse.internal.core.RSELocalConnectionInitializer.mark b/sm-search/.metadata/.plugins/org.eclipse.rse.core/initializerMarks/org.eclipse.rse.internal.core.RSELocalConnectionInitializer.mark
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/sm-search/.metadata/.plugins/org.eclipse.rse.core/initializerMarks/org.eclipse.rse.internal.core.RSELocalConnectionInitializer.mark
diff --git a/sm-search/.metadata/.plugins/org.eclipse.rse.core/profiles/PRF.canl-1fpkn32_3900/FP.local.files_0/node.properties b/sm-search/.metadata/.plugins/org.eclipse.rse.core/profiles/PRF.canl-1fpkn32_3900/FP.local.files_0/node.properties
new file mode 100644
index 0000000..b04717f
--- /dev/null
+++ b/sm-search/.metadata/.plugins/org.eclipse.rse.core/profiles/PRF.canl-1fpkn32_3900/FP.local.files_0/node.properties
@@ -0,0 +1,57 @@
+# RSE DOM Node
+00-name=CANL-1FPKN32\:local.files
+01-type=FilterPool
+03-attr.default=true
+03-attr.deletable=true
+03-attr.id=local.files
+03-attr.nonRenamable=false
+03-attr.owningParentName=null
+03-attr.release=200
+03-attr.singleFilterStringOnly=false
+03-attr.singleFilterStringOnlyESet=false
+03-attr.stringsCaseSensitive=true
+03-attr.supportsDuplicateFilterStrings=false
+03-attr.supportsNestedFilters=true
+03-attr.type=default
+06-child.00000.00-name=My Home
+06-child.00000.01-type=Filter
+06-child.00000.03-attr.default=false
+06-child.00000.03-attr.filterType=default
+06-child.00000.03-attr.id=My Home
+06-child.00000.03-attr.nonChangable=false
+06-child.00000.03-attr.nonDeletable=false
+06-child.00000.03-attr.nonRenamable=false
+06-child.00000.03-attr.promptable=false
+06-child.00000.03-attr.relativeOrder=0
+06-child.00000.03-attr.release=200
+06-child.00000.03-attr.singleFilterStringOnly=false
+06-child.00000.03-attr.stringsCaseSensitive=false
+06-child.00000.03-attr.stringsNonChangable=false
+06-child.00000.03-attr.supportsDuplicateFilterStrings=false
+06-child.00000.03-attr.supportsNestedFilters=true
+06-child.00000.06-child.00000.00-name=C\:\\Users\\c.samson\\*
+06-child.00000.06-child.00000.01-type=FilterString
+06-child.00000.06-child.00000.03-attr.default=false
+06-child.00000.06-child.00000.03-attr.string=C\:\\Users\\c.samson\\*
+06-child.00000.06-child.00000.03-attr.type=default
+06-child.00001.00-name=Drives
+06-child.00001.01-type=Filter
+06-child.00001.03-attr.default=false
+06-child.00001.03-attr.filterType=default
+06-child.00001.03-attr.id=Drives
+06-child.00001.03-attr.nonChangable=false
+06-child.00001.03-attr.nonDeletable=false
+06-child.00001.03-attr.nonRenamable=false
+06-child.00001.03-attr.promptable=false
+06-child.00001.03-attr.relativeOrder=0
+06-child.00001.03-attr.release=200
+06-child.00001.03-attr.singleFilterStringOnly=false
+06-child.00001.03-attr.stringsCaseSensitive=false
+06-child.00001.03-attr.stringsNonChangable=false
+06-child.00001.03-attr.supportsDuplicateFilterStrings=false
+06-child.00001.03-attr.supportsNestedFilters=true
+06-child.00001.06-child.00000.00-name=*
+06-child.00001.06-child.00000.01-type=FilterString
+06-child.00001.06-child.00000.03-attr.default=false
+06-child.00001.06-child.00000.03-attr.string=*
+06-child.00001.06-child.00000.03-attr.type=default
diff --git a/sm-search/.metadata/.plugins/org.eclipse.rse.core/profiles/PRF.canl-1fpkn32_3900/H.local_16/node.properties b/sm-search/.metadata/.plugins/org.eclipse.rse.core/profiles/PRF.canl-1fpkn32_3900/H.local_16/node.properties
new file mode 100644
index 0000000..52ddbfe
--- /dev/null
+++ b/sm-search/.metadata/.plugins/org.eclipse.rse.core/profiles/PRF.canl-1fpkn32_3900/H.local_16/node.properties
@@ -0,0 +1,25 @@
+# RSE DOM Node
+00-name=Local
+01-type=Host
+03-attr.description=
+03-attr.hostname=LOCALHOST
+03-attr.offline=false
+03-attr.promptable=false
+03-attr.systemType=org.eclipse.rse.systemtype.local
+03-attr.type=Local
+06-child.00000.00-name=Local Connector Service
+06-child.00000.01-type=ConnectorService
+06-child.00000.03-attr.group=Local Connector Service
+06-child.00000.03-attr.port=0
+06-child.00000.03-attr.useSSL=false
+06-child.00000.06-child.00000.00-name=Local Files
+06-child.00000.06-child.00000.01-type=SubSystem
+06-child.00000.06-child.00000.03-attr.hidden=false
+06-child.00000.06-child.00000.03-attr.type=local.files
+06-child.00000.06-child.00000.06-child.00000.00-name=CANL-1FPKN32___CANL-1FPKN32\:local.files
+06-child.00000.06-child.00000.06-child.00000.01-type=FilterPoolReference
+06-child.00000.06-child.00000.06-child.00000.03-attr.refID=local.files
+06-child.00000.06-child.00001.00-name=Local Shells
+06-child.00000.06-child.00001.01-type=SubSystem
+06-child.00000.06-child.00001.03-attr.hidden=false
+06-child.00000.06-child.00001.03-attr.type=local.shells
diff --git a/sm-search/.metadata/.plugins/org.eclipse.rse.core/profiles/PRF.canl-1fpkn32_3900/node.properties b/sm-search/.metadata/.plugins/org.eclipse.rse.core/profiles/PRF.canl-1fpkn32_3900/node.properties
new file mode 100644
index 0000000..24d4531
--- /dev/null
+++ b/sm-search/.metadata/.plugins/org.eclipse.rse.core/profiles/PRF.canl-1fpkn32_3900/node.properties
@@ -0,0 +1,7 @@
+# RSE DOM Node
+00-name=CANL-1FPKN32
+01-type=Profile
+03-attr.defaultPrivate=true
+03-attr.isActive=true
+05-ref.00000=FP.local.files_0
+05-ref.00001=H.local_16
diff --git a/sm-search/.metadata/.plugins/org.eclipse.rse.ui/.log b/sm-search/.metadata/.plugins/org.eclipse.rse.ui/.log
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/sm-search/.metadata/.plugins/org.eclipse.rse.ui/.log
diff --git a/sm-search/.metadata/.plugins/org.eclipse.ui.ide/dialog_settings.xml b/sm-search/.metadata/.plugins/org.eclipse.ui.ide/dialog_settings.xml
new file mode 100644
index 0000000..8789adf
--- /dev/null
+++ b/sm-search/.metadata/.plugins/org.eclipse.ui.ide/dialog_settings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<section name="Workbench">
+ <section name="ExternalProjectImportWizard">
+ <item value="false" key="WizardProjectsImportPage.STORE_ARCHIVE_SELECTED"/>
+ <item value="false" key="WizardProjectsImportPage.STORE_COPY_PROJECT_ID"/>
+ <item value="false" key="WizardProjectsImportPage.STORE_NESTED_PROJECTS"/>
+ <list key="WizardProjectsImportPage.STORE_DIRECTORIES">
+ <item value="C:\personal\search\shopizer-search-0.0.5\sm-search"/>
+ </list>
+ <list key="WizardProjectsImportPage.STORE_ARCHIVES">
+ <item value=""/>
+ </list>
+ </section>
+</section>
diff --git a/sm-search/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml b/sm-search/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml
new file mode 100644
index 0000000..aa6ed42
--- /dev/null
+++ b/sm-search/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<section name="Workbench">
+ <section name="org.eclipse.ui.internal.QuickAccess">
+ <item value="1152" key="dialogWidth"/>
+ <item value="596" key="dialogHeight"/>
+ <list key="orderedProviders">
+ </list>
+ <list key="textArray">
+ </list>
+ <list key="orderedElements">
+ </list>
+ <list key="textEntries">
+ </list>
+ </section>
+ <section name="ImportExportAction">
+ </section>
+</section>
sm-search/.metadata/version.ini 1(+1 -0)
diff --git a/sm-search/.metadata/version.ini b/sm-search/.metadata/version.ini
new file mode 100644
index 0000000..c51ff74
--- /dev/null
+++ b/sm-search/.metadata/version.ini
@@ -0,0 +1 @@
+org.eclipse.core.runtime=1
\ No newline at end of file
sm-search/.project 23(+23 -0)
diff --git a/sm-search/.project b/sm-search/.project
new file mode 100644
index 0000000..a3be8fb
--- /dev/null
+++ b/sm-search/.project
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>sm-search</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.m2e.core.maven2Builder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.m2e.core.maven2Nature</nature>
+ </natures>
+</projectDescription>
diff --git a/sm-search/.settings/org.eclipse.core.resources.prefs b/sm-search/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..29abf99
--- /dev/null
+++ b/sm-search/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,6 @@
+eclipse.preferences.version=1
+encoding//src/main/java=UTF-8
+encoding//src/main/resources=UTF-8
+encoding//src/test/java=UTF-8
+encoding//src/test/resources=UTF-8
+encoding/<project>=UTF-8
diff --git a/sm-search/.settings/org.eclipse.jdt.core.prefs b/sm-search/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..13b3428
--- /dev/null
+++ b/sm-search/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,13 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/sm-search/.settings/org.eclipse.m2e.core.prefs b/sm-search/.settings/org.eclipse.m2e.core.prefs
new file mode 100644
index 0000000..f897a7f
--- /dev/null
+++ b/sm-search/.settings/org.eclipse.m2e.core.prefs
@@ -0,0 +1,4 @@
+activeProfiles=
+eclipse.preferences.version=1
+resolveWorkspaceProjects=true
+version=1
sm-search/pom.xml 229(+229 -0)
diff --git a/sm-search/pom.xml b/sm-search/pom.xml
new file mode 100644
index 0000000..ec539a2
--- /dev/null
+++ b/sm-search/pom.xml
@@ -0,0 +1,229 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>com.shopizer</groupId>
+ <artifactId>sm-search</artifactId>
+ <version>2.5.0-SNAPSHOT</version>
+ <packaging>jar</packaging>
+ <name>sm-search</name>
+ <url>http://www.shopizer.com</url>
+ <properties>
+
+
+ <java-version>1.8</java-version>
+
+ <jackson-version>2.7.3</jackson-version>
+ <gson.version>2.6.2</gson.version>
+ <guava.version>19.0</guava.version>
+ <junit.version>4.12</junit.version>
+ <httpcore.version>4.4.4</httpcore.version>
+ <httpclient.version>4.5.2</httpclient.version>
+ <javax.inject-version>1</javax.inject-version>
+ <commons-lang3-version>3.4</commons-lang3-version>
+ <commons-collections4-version>4.1</commons-collections4-version>
+ <org.slf4j-version>1.7.21</org.slf4j-version>
+ <log4j-version>1.2.17</log4j-version>
+
+
+ <org.springframework-version>4.2.1.RELEASE</org.springframework-version>
+ <org.aspectj-version>1.6.10</org.aspectj-version>
+
+
+ <org.elasticsearch-version>2.3.4</org.elasticsearch-version>
+ <io.searchbox.jest-version>2.0.2</io.searchbox.jest-version>
+
+
+
+ </properties>
+
+ <!-- mvn clean deploy -->
+ <parent>
+ <groupId>org.sonatype.oss</groupId>
+ <artifactId>oss-parent</artifactId>
+ <version>7</version>
+ </parent>
+
+ <scm>
+ <connection>scm:svn:http://svn.shopizer.com/branches/v2/sm-search/</connection>
+ <developerConnection>scm:svn:http://svn.shopizer.com/branches/v2/sm-search/</developerConnection>
+ <url>http://svn.shopizer.com/branches/v2/sm-search/</url>
+ </scm>
+
+
+
+ <dependencies>
+
+
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-lang3</artifactId>
+ <version>${commons-lang3-version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-collections4</artifactId>
+ <version>${commons-collections4-version}</version>
+ </dependency>
+
+
+ <!-- Spring -->
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-context</artifactId>
+ <version>${org.springframework-version}</version>
+ <exclusions>
+ <!-- Exclude Commons Logging in favor of SLF4j -->
+ <exclusion>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <!-- AspectJ -->
+ <dependency>
+ <groupId>org.aspectj</groupId>
+ <artifactId>aspectjrt</artifactId>
+ <version>${org.aspectj-version}</version>
+ </dependency>
+
+ <!-- Logging -->
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ <version>${org.slf4j-version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>jcl-over-slf4j</artifactId>
+ <version>${org.slf4j-version}</version>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ <version>${org.slf4j-version}</version>
+ <scope>runtime</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ <version>${log4j-version}</version>
+ <scope>compile</scope>
+ </dependency>
+
+ <!-- @Inject -->
+ <dependency>
+ <groupId>javax.inject</groupId>
+ <artifactId>javax.inject</artifactId>
+ <version>${javax.inject-version}</version>
+ </dependency>
+
+
+ <!-- Jackson JSON Processor -->
+ <dependency>
+ <groupId>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-core</artifactId>
+ <version>${jackson-version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-databind</artifactId>
+ <version>${jackson-version}</version>
+ </dependency>
+
+
+
+
+ <!-- Elastic search -->
+ <dependency>
+ <groupId>org.elasticsearch</groupId>
+ <artifactId>elasticsearch</artifactId>
+ <version>${org.elasticsearch-version}</version>
+ </dependency>
+
+
+ <dependency>
+ <groupId>io.searchbox</groupId>
+ <artifactId>jest</artifactId>
+ <version>${io.searchbox.jest-version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>com.google.guava</groupId>
+ <artifactId>guava</artifactId>
+ <version>${guava.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>com.google.code.gson</groupId>
+ <artifactId>gson</artifactId>
+ <version>${gson.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-lang3</artifactId>
+ <version>${commons-lang3-version}</version>
+ </dependency>
+
+
+ <!-- Http components -->
+ <dependency>
+ <groupId>org.apache.httpcomponents</groupId>
+ <artifactId>httpcore-nio</artifactId>
+ <version>${httpcore.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.httpcomponents</groupId>
+ <artifactId>httpclient</artifactId>
+ <version>${httpclient.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.apache.httpcomponents</groupId>
+ <artifactId>httpcore</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
+ <!-- Test dependencies -->
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>${junit.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-test</artifactId>
+ <version>${org.springframework-version}</version>
+ <scope>test</scope>
+ </dependency>
+
+
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>3.2</version>
+ <configuration>
+ <source>${java-version}</source>
+ <target>${java-version}</target>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>2.12</version>
+ <configuration>
+ <skipTests>true</skipTests>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+</project>
\ No newline at end of file
sm-search/RemoteSystemsTempFiles/.project 12(+12 -0)
diff --git a/sm-search/RemoteSystemsTempFiles/.project b/sm-search/RemoteSystemsTempFiles/.project
new file mode 100644
index 0000000..7675629
--- /dev/null
+++ b/sm-search/RemoteSystemsTempFiles/.project
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>RemoteSystemsTempFiles</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.rse.ui.remoteSystemsTempNature</nature>
+ </natures>
+</projectDescription>
sm-search/src/.svn/all-wcprops 5(+5 -0)
diff --git a/sm-search/src/.svn/all-wcprops b/sm-search/src/.svn/all-wcprops
new file mode 100644
index 0000000..a154484
--- /dev/null
+++ b/sm-search/src/.svn/all-wcprops
@@ -0,0 +1,5 @@
+K 25
+svn:wc:ra_dav:version-url
+V 39
+/!svn/ver/567/branches/v2/sm-search/src
+END
sm-search/src/.svn/entries 34(+34 -0)
diff --git a/sm-search/src/.svn/entries b/sm-search/src/.svn/entries
new file mode 100644
index 0000000..76460ee
--- /dev/null
+++ b/sm-search/src/.svn/entries
@@ -0,0 +1,34 @@
+10
+
+dir
+567
+http://svn.shopizer.com/branches/v2/sm-search/src
+http://svn.shopizer.com
+
+
+
+2013-12-17T22:28:54.444873Z
+567
+carl777
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+e1ff5de0-4b61-491c-91a6-c2558b0baace
+
+test
+dir
+
+main
+dir
+
diff --git a/sm-search/src/main/java/com/shopizer/search/services/Entry.java b/sm-search/src/main/java/com/shopizer/search/services/Entry.java
new file mode 100644
index 0000000..309ff0a
--- /dev/null
+++ b/sm-search/src/main/java/com/shopizer/search/services/Entry.java
@@ -0,0 +1,20 @@
+package com.shopizer.search.services;
+
+public class Entry {
+
+ private String name;
+ private int count;
+ public String getName() {
+ return name;
+ }
+ public void setName(String name) {
+ this.name = name;
+ }
+ public int getCount() {
+ return count;
+ }
+ public void setCount(int count) {
+ this.count = count;
+ }
+
+}
diff --git a/sm-search/src/main/java/com/shopizer/search/services/FacetEntry.java b/sm-search/src/main/java/com/shopizer/search/services/FacetEntry.java
new file mode 100644
index 0000000..c5d32d6
--- /dev/null
+++ b/sm-search/src/main/java/com/shopizer/search/services/FacetEntry.java
@@ -0,0 +1,28 @@
+package com.shopizer.search.services;
+
+
+public class FacetEntry {
+
+ private String name;
+ private Long count;
+ public String getName() {
+ return name;
+ }
+ public void setName(String name) {
+ this.name = name;
+ }
+/* public List<Entry> getEntries() {
+ return entries;
+ }
+ public void setEntries(List<Entry> entries) {
+ this.entries = entries;
+ }
+ private List<Entry> entries;*/
+ public Long getCount() {
+ return count;
+ }
+ public void setCount(Long count) {
+ this.count = count;
+ }
+
+}
diff --git a/sm-search/src/main/java/com/shopizer/search/services/field/BooleanField.java b/sm-search/src/main/java/com/shopizer/search/services/field/BooleanField.java
new file mode 100644
index 0000000..b5e78bd
--- /dev/null
+++ b/sm-search/src/main/java/com/shopizer/search/services/field/BooleanField.java
@@ -0,0 +1,9 @@
+package com.shopizer.search.services.field;
+
+public class BooleanField extends Field {
+
+ public Boolean getValue() {
+ return (Boolean)super.getValue();
+ }
+
+}
diff --git a/sm-search/src/main/java/com/shopizer/search/services/field/DateField.java b/sm-search/src/main/java/com/shopizer/search/services/field/DateField.java
new file mode 100644
index 0000000..562ee81
--- /dev/null
+++ b/sm-search/src/main/java/com/shopizer/search/services/field/DateField.java
@@ -0,0 +1,11 @@
+package com.shopizer.search.services.field;
+
+import java.util.Date;
+
+public class DateField extends Field {
+
+ public Date getValue() {
+ return (Date)super.getValue();
+ }
+
+}
diff --git a/sm-search/src/main/java/com/shopizer/search/services/field/DoubleField.java b/sm-search/src/main/java/com/shopizer/search/services/field/DoubleField.java
new file mode 100644
index 0000000..d011cea
--- /dev/null
+++ b/sm-search/src/main/java/com/shopizer/search/services/field/DoubleField.java
@@ -0,0 +1,9 @@
+package com.shopizer.search.services.field;
+
+public class DoubleField extends Field {
+
+
+ public Double getValue() {
+ return (Double)super.getValue();
+ }
+}
diff --git a/sm-search/src/main/java/com/shopizer/search/services/field/Field.java b/sm-search/src/main/java/com/shopizer/search/services/field/Field.java
new file mode 100644
index 0000000..6edbd46
--- /dev/null
+++ b/sm-search/src/main/java/com/shopizer/search/services/field/Field.java
@@ -0,0 +1,26 @@
+package com.shopizer.search.services.field;
+
+public abstract class Field {
+
+
+ private String name;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ private Object object;
+ public void setValue(Object o) {
+ this.object = o;
+ }
+
+ protected Object getValue() {
+ return object;
+ }
+
+
+}
diff --git a/sm-search/src/main/java/com/shopizer/search/services/field/IntegerField.java b/sm-search/src/main/java/com/shopizer/search/services/field/IntegerField.java
new file mode 100644
index 0000000..c6c4cb7
--- /dev/null
+++ b/sm-search/src/main/java/com/shopizer/search/services/field/IntegerField.java
@@ -0,0 +1,9 @@
+package com.shopizer.search.services.field;
+
+public class IntegerField extends Field {
+
+ public Integer getValue() {
+ return (Integer)super.getValue();
+ }
+
+}
diff --git a/sm-search/src/main/java/com/shopizer/search/services/field/ListField.java b/sm-search/src/main/java/com/shopizer/search/services/field/ListField.java
new file mode 100644
index 0000000..4affa56
--- /dev/null
+++ b/sm-search/src/main/java/com/shopizer/search/services/field/ListField.java
@@ -0,0 +1,11 @@
+package com.shopizer.search.services.field;
+
+import java.util.List;
+
+public class ListField extends Field {
+
+ public List getValue() {
+ return (List)super.getValue();
+ }
+
+}
diff --git a/sm-search/src/main/java/com/shopizer/search/services/field/LongField.java b/sm-search/src/main/java/com/shopizer/search/services/field/LongField.java
new file mode 100644
index 0000000..ed04901
--- /dev/null
+++ b/sm-search/src/main/java/com/shopizer/search/services/field/LongField.java
@@ -0,0 +1,9 @@
+package com.shopizer.search.services.field;
+
+public class LongField extends Field {
+
+ public Long getValue() {
+ return (Long)super.getValue();
+ }
+
+}
diff --git a/sm-search/src/main/java/com/shopizer/search/services/field/StringField.java b/sm-search/src/main/java/com/shopizer/search/services/field/StringField.java
new file mode 100644
index 0000000..ee00566
--- /dev/null
+++ b/sm-search/src/main/java/com/shopizer/search/services/field/StringField.java
@@ -0,0 +1,8 @@
+package com.shopizer.search.services.field;
+
+public class StringField extends Field {
+ public String getValue() {
+ return (String)super.getValue();
+ }
+
+}
diff --git a/sm-search/src/main/java/com/shopizer/search/services/GetResponse.java b/sm-search/src/main/java/com/shopizer/search/services/GetResponse.java
new file mode 100644
index 0000000..f0e4579
--- /dev/null
+++ b/sm-search/src/main/java/com/shopizer/search/services/GetResponse.java
@@ -0,0 +1,66 @@
+package com.shopizer.search.services;
+
+import java.util.Map;
+
+
+public class GetResponse {
+
+
+ //private org.elasticsearch.action.get.GetResponse response;
+
+ //public GetResponse(org.elasticsearch.action.get.GetResponse r) {
+ // response = r;
+ //}
+
+ public GetResponse(Map<String, Object> source) {
+ this.objectMap = source;
+ }
+
+ private Map<String, Object> objectMap;
+ private String objectJson;
+
+ //private JestResult result;
+
+ //public String getResponseAsString() {
+ // return response.toString();//TODO
+ //}
+
+ //public Map<String,Object> getFields()
+ //{
+ // return response.getSource();
+ //}
+
+ //public List<Object> getField(String key) {
+ //TODO
+ //return null;
+ //}
+
+ //public Map<String,Object> getFields()
+ //{
+ //TODO
+ //return null;
+ //}
+
+
+ //public List<Object> getField(String key) {
+ // GetField f = response.getFields().get(key);
+ // if(f!=null) {
+ // return f.getValues();
+ // }
+ // return null;
+ //}
+
+ public Map<String, Object> getFieldMap() {
+ return objectMap;
+ }
+
+
+ public String getObjectJson() {
+ return objectJson;
+ }
+
+ public void setObjectJson(String objectJson) {
+ this.objectJson = objectJson;
+ }
+
+}
diff --git a/sm-search/src/main/java/com/shopizer/search/services/impl/SearchDelegate.java b/sm-search/src/main/java/com/shopizer/search/services/impl/SearchDelegate.java
new file mode 100644
index 0000000..da45cf0
--- /dev/null
+++ b/sm-search/src/main/java/com/shopizer/search/services/impl/SearchDelegate.java
@@ -0,0 +1,63 @@
+package com.shopizer.search.services.impl;
+
+import java.util.Collection;
+import java.util.Set;
+
+import com.shopizer.search.services.IndexKeywordRequest;
+import com.shopizer.search.services.SearchRequest;
+import com.shopizer.search.services.SearchResponse;
+
+public interface SearchDelegate {
+
+ public boolean indexExist(String indexName) throws Exception;
+
+ /**
+ * Creates a structure that represents the object and the content to be indexed
+ */
+ void createIndice(String mappingJson, String settingsJson, String collection,
+ String object) throws Exception;
+
+ /**
+ * Will index an object in json format in a collection
+ * of indexes
+ * @param collection
+ * @param object
+ * @param id
+ */
+ void index(String json, String collection, String object,
+ String id) throws Exception;
+
+ void delete(String collection, String object, String id)
+ throws Exception;
+
+ void bulkDeleteIndex(Collection<String> ids,
+ String collection, String object) throws Exception;
+
+ /**
+ * Index keywords in bulk
+ * @param bulks
+ * @param collection
+ * @param object
+ * @param id
+ */
+ void bulkIndexKeywords(
+ Collection<IndexKeywordRequest> bulks, String collection,
+ String object) throws Exception;
+
+ com.shopizer.search.services.GetResponse getObject(
+ String collection, String object, String id) throws Exception;
+
+ /**
+ * Search for a term
+ * @param term
+ * @param collection
+ * @param field
+ * @return
+ */
+ SearchResponse search(SearchRequest request)
+ throws Exception;
+
+ Set<String> searchAutocomplete(String collection,
+ String json, int size) throws Exception;
+
+}
\ No newline at end of file
diff --git a/sm-search/src/main/java/com/shopizer/search/services/impl/SearchDelegateImpl.java b/sm-search/src/main/java/com/shopizer/search/services/impl/SearchDelegateImpl.java
new file mode 100644
index 0000000..19c3e6b
--- /dev/null
+++ b/sm-search/src/main/java/com/shopizer/search/services/impl/SearchDelegateImpl.java
@@ -0,0 +1,698 @@
+package com.shopizer.search.services.impl;
+
+import static org.elasticsearch.common.xcontent.XContentFactory.jsonBuilder;
+import io.searchbox.action.Action;
+import io.searchbox.client.JestClient;
+import io.searchbox.client.JestResult;
+import io.searchbox.core.Bulk;
+import io.searchbox.core.Delete;
+import io.searchbox.core.Get;
+import io.searchbox.core.Index;
+import io.searchbox.core.Search;
+import io.searchbox.core.SearchResult;
+import io.searchbox.core.search.aggregation.MetricAggregation;
+import io.searchbox.core.search.aggregation.TermsAggregation;
+import io.searchbox.indices.CreateIndex;
+import io.searchbox.indices.IndicesExists;
+import io.searchbox.indices.mapping.PutMapping;
+import io.searchbox.params.Parameters;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import javax.annotation.Resource;
+import javax.inject.Inject;
+
+
+
+
+import org.apache.commons.lang3.StringUtils;
+import org.apache.log4j.Logger;
+import org.elasticsearch.common.settings.Settings;
+import org.elasticsearch.common.xcontent.XContentBuilder;
+import org.springframework.beans.factory.annotation.Qualifier;
+
+import com.google.gson.JsonArray;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import com.shopizer.search.services.IndexKeywordRequest;
+import com.shopizer.search.services.SearchRequest;
+import com.shopizer.search.services.SearchResponse;
+import com.shopizer.search.services.field.BooleanField;
+import com.shopizer.search.services.field.DateField;
+import com.shopizer.search.services.field.DoubleField;
+import com.shopizer.search.services.field.Field;
+import com.shopizer.search.services.field.IntegerField;
+import com.shopizer.search.services.field.ListField;
+import com.shopizer.search.services.field.LongField;
+import com.shopizer.search.services.field.StringField;
+import com.shopizer.search.utils.SearchClient;
+
+/**
+ * https://www.found.no/foundation/java-clients-for-elasticsearch/
+ * https://github.com/searchbox-io/Jest/blob/master/jest/README.md
+ * HTTP Proxy https://www.elastic.co/blog/playing-http-tricks-nginx
+ * Backup - restore http://tech.domain.com.au/2014/12/elasticsearch-snapshots-backup-restore-s3/
+ * @author carlsamson
+ *
+ */
+public class SearchDelegateImpl implements SearchDelegate {
+
+ private SearchClient searchClient = null;
+ public SearchClient getSearchClient() {
+ return searchClient;
+ }
+
+ public void setSearchClient(SearchClient searchClient) {
+ this.searchClient = searchClient;
+ }
+
+ //@Inject
+ @Resource(name="facetTermsList")
+ List<String> facetTermsList;
+
+ private static Logger log = Logger.getLogger(SearchDelegateImpl.class);
+
+ @SuppressWarnings("unchecked")
+ private Object readNode(JsonElement jsonElement) throws Exception {
+
+ Object container = null;
+ if (jsonElement.isJsonObject()) {
+ Set<java.util.Map.Entry<String, JsonElement>> ens = ((JsonObject) jsonElement).entrySet();
+ if (ens != null) {
+ // Iterate JSON Elements with Key values
+ for (java.util.Map.Entry<String, JsonElement> en : ens) {
+ //System.out.println(en.getKey() + " : ");
+ if(container==null) {
+ container = new HashMap<String, Object>();
+ }
+ ((Map)container).put(en.getKey(), readNode(en.getValue()));
+ }
+ }
+ }
+
+ // Check whether jsonElement is Arrary or not
+ else if (jsonElement.isJsonArray()) {
+ JsonArray jarr = jsonElement.getAsJsonArray();
+ // Iterate JSON Array to JSON Elements
+ container = new ArrayList<Object>();
+ for (JsonElement je : jarr) {
+ ((List)container).add(readNode(je));
+ }
+ }
+
+ // Check whether jsonElement is NULL or not
+ else if (jsonElement.isJsonNull()) {
+ // print null
+
+ }
+ // Check whether jsonElement is Primitive or not
+ else if (jsonElement.isJsonPrimitive()) {
+ // print value as String
+ container = jsonElement.getAsString();
+ }
+
+
+ return container;
+ }
+
+ private Map<String, Object> getResults(JsonObject jsonObject, String path) throws Exception {
+
+ Map<String, Object> fields = new HashMap<String, Object>();
+ JsonElement jsonElement = jsonObject.get(path);
+ Set<java.util.Map.Entry<String, JsonElement>> ens = ((JsonObject) jsonElement).entrySet();
+ if (ens != null) {
+ // Iterate JSON Elements with Key values
+ for (java.util.Map.Entry<String, JsonElement> en : ens) {
+ fields.put(en.getKey(),readNode(en.getValue()));
+ }
+ }
+
+ return fields;
+
+
+ }
+
+
+
+ /* (non-Javadoc)
+ * @see com.shopizer.search.services.impl.SearchService#indexExist(java.lang.String)
+ */
+ @Override
+ public boolean indexExist(String indexName) throws Exception {
+ JestClient client = searchClient.getClient();
+
+
+ IndicesExists.Builder builder = new IndicesExists.Builder(indexName);
+
+
+ if(!StringUtils.isBlank(searchClient.getAuthenticationHeader())) {
+ builder.setHeader("Authorization", searchClient.getAuthenticationHeader());
+ }
+
+ @SuppressWarnings("rawtypes")
+ Action action = builder.build();
+
+ @SuppressWarnings("unchecked")
+ JestResult result = client.execute(action);
+
+ return result.isSucceeded();
+
+ }
+
+
+ //https://github.com/searchbox-io/Jest/blob/master/jest/src/test/java/io/searchbox/indices/CreateIndexIntegrationTest.java
+ /* (non-Javadoc)
+ * @see com.shopizer.search.services.impl.SearchService#createIndice(java.lang.String, java.lang.String, java.lang.String)
+ */
+ @Override
+ public void createIndice(String mapping, String settings,String index,String object) throws Exception {
+
+
+
+ //Client client = searchClient.getClient();
+ JestClient client = searchClient.getClient();
+
+
+ CreateIndex.Builder createIndex = new CreateIndex.Builder(index);
+ //.Builder(index);
+ if(settings!=null) {
+ createIndex.settings(
+ Settings.builder()
+ .loadFromSource(settings)
+ .build()
+ .getAsMap());
+ }
+
+ client.execute(createIndex.build());
+
+ PutMapping.Builder putMapping = new PutMapping.Builder(
+ index,
+ object,
+ mapping
+ );
+
+
+ JestResult result = client.execute(putMapping.build());
+
+ if(result!=null && !StringUtils.isBlank(result.getErrorMessage())) {
+ log.error("An error occured while creating an index " + result.getErrorMessage());
+ }
+
+
+ }
+
+
+ /* (non-Javadoc)
+ * @see com.shopizer.search.services.impl.SearchService#index(java.lang.String, java.lang.String, java.lang.String, java.lang.String)
+ */
+ @Override
+ public void index(String json, String collection, String object, String id) throws Exception {
+
+ JestClient client = searchClient.getClient();
+
+
+ Index index = new Index.Builder(json).index(collection).type(object).id(id).build();
+ JestResult result = client.execute(index);
+
+ if(result!=null && !StringUtils.isBlank(result.getErrorMessage())) {
+ log.error("An error occured while indexing a document " + json + " " + result.getErrorMessage());
+ }
+
+ }
+
+ /* (non-Javadoc)
+ * @see com.shopizer.search.services.impl.SearchService#delete(java.lang.String, java.lang.String, java.lang.String)
+ */
+ @Override
+ public void delete(String collection, String object, String id) throws Exception {
+
+ if(this.indexExist(collection)) {
+
+ JestClient client = searchClient.getClient();
+
+ Delete builder = new Delete.Builder(id)
+ .index(collection)
+ .type(object)
+ .build();
+
+ JestResult result = client.execute(builder);
+
+ if(result!=null && !result.isSucceeded() && !StringUtils.isBlank(result.getErrorMessage())) {
+ log.error("Cannot delete from " + collection + " with id " + id);
+ }
+
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see com.shopizer.search.services.impl.SearchService#bulkDeleteIndex(java.util.Collection, java.lang.String)
+ */
+ @Override
+ public void bulkDeleteIndex(Collection<String> ids, String collection, String object) throws Exception {
+
+
+ if(this.indexExist(collection)) {
+
+ JestClient client = searchClient.getClient();
+
+ if(ids!=null && ids.size()>0) {
+
+ //BulkRequestBuilder bulkRequest = client.prepareBulk();
+
+
+ //.defaultType(object);
+ //.addAction(new Index.Builder(article1).build())
+ //.addAction(new Index.Builder(article2).build())
+ //.addAction(new Delete.Builder("1").index("twitter").type("tweet").build())
+ //.build();
+
+ Bulk.Builder bulk = new Bulk.Builder()
+ .defaultIndex(collection);
+
+ for(String s : ids) {
+
+
+
+
+ //DeleteRequest dr = new DeleteRequest();
+ //dr.type("keyword").index(collection).id(s);
+ bulk.defaultType(object)
+ .addAction(new Delete.Builder(s).index(collection).type(object).build());
+
+ //System.out.println(dr.toString());
+
+ //bulkRequest.add(dr);
+
+ }
+
+ JestResult results = client.execute(bulk.build());
+
+ if(!results.isSucceeded()) {
+ log.error("ES response has failures " + results.getErrorMessage());
+ }
+
+
+ }
+ }
+
+
+ }
+
+
+
+ /* (non-Javadoc)
+ * @see com.shopizer.search.services.impl.SearchService#bulkIndexKeywords(java.util.Collection, java.lang.String, java.lang.String)
+ */
+ @Override
+ public void bulkIndexKeywords(Collection<IndexKeywordRequest> bulks, String collection, String object) throws Exception {
+
+
+ //Client client = searchClient.getClient();
+
+ JestClient client = searchClient.getClient();
+
+ //BulkRequestBuilder bulkRequest = client.prepareBulk();
+
+ Bulk.Builder bulk = new Bulk.Builder()
+ .defaultIndex(collection)
+ .defaultType(object);
+
+ //@todo, index in appropriate Locale
+ for(IndexKeywordRequest key : bulks) {
+
+ // either use client#prepare, or use Requests# to directly build index/delete requests
+ //bulkRequest.add(client.prepareIndex(collection, object, key.getId())
+
+ String id = key.getKey();
+ if(id.length()>25) {
+ id = id.substring(0,25);
+ }
+ id = id.trim().toLowerCase();
+
+ XContentBuilder b = jsonBuilder()
+ .startObject()
+ .field("id", id)//index name is the value trimed and lower cased
+ .field("keyword", key.getKey())
+ .field("_id_", key.getId());
+
+ @SuppressWarnings("rawtypes")
+ Collection fields = key.getFilters();
+ if(fields.size()>0) {
+
+ for(Object o : fields) {
+
+ if(o instanceof BooleanField) {
+
+ Boolean val = ((BooleanField)o).getValue();
+ b.field(((Field)o).getName(), val.booleanValue());
+
+ } else if(o instanceof IntegerField) {
+
+ Integer val = ((IntegerField)o).getValue();
+ b.field(((Field)o).getName(), val.intValue());
+
+
+ } else if(o instanceof LongField) {
+
+ Long val = ((LongField)o).getValue();
+ b.field(((Field)o).getName(), val.longValue());
+
+
+ } else if(o instanceof ListField) {
+
+ @SuppressWarnings("rawtypes")
+ List val = ((ListField)o).getValue();
+ b.field(((Field)o).getName(), val);
+
+ } else if(o instanceof DoubleField) {
+
+ Double val = ((DoubleField)o).getValue();
+ b.field(((Field)o).getName(), val.doubleValue());
+
+ } else if(o instanceof DateField) {
+
+ Date val = ((DateField)o).getValue();
+ b.field(((Field)o).getName(), val);
+
+ } else {
+
+ String val = ((StringField)o).getValue();
+ b.field(((Field)o).getName(), val);
+
+ }
+ }
+ }
+
+ b.endObject();
+
+ bulk.addAction(new Index.Builder(b.string()).build());
+ //bulkRequest.add(client.prepareIndex(collection, object).setSource(b));
+ }
+
+ log.debug("Adding to collection " + collection);
+
+ JestResult results = client.execute(bulk.build());
+
+ if(!results.isSucceeded()) {
+ log.error("ES response has failures " + results.getErrorMessage());
+ }
+
+
+
+ }
+
+
+ /* (non-Javadoc)
+ * @see com.shopizer.search.services.impl.SearchService#getObject(java.lang.String, java.lang.String, java.lang.String)
+ */
+ @Override
+ public com.shopizer.search.services.GetResponse getObject(String collection, String object, String id) throws Exception {
+
+ JestClient client = searchClient.getClient();
+
+ Get get = new Get.Builder(collection, id).type(object).build();
+
+ //System.out.println(get.getURI());
+
+ JestResult result = client.execute(get);
+
+
+
+ /**
+ * This method throws an exception
+ */
+ //GetResponse response = searchClient.getClient().prepareGet(collection, object, id)
+ //.setOperationThreaded(true)
+ //.setFields("_source")
+ //.execute()
+ //.actionGet();
+
+ com.shopizer.search.services.GetResponse response = null;
+ if(result!=null && StringUtils.isBlank(result.getErrorMessage())) {
+
+
+ JsonObject jsonObject = result.getJsonObject();
+
+ Map<String, Object> fields = this.getResults(jsonObject, "_source");
+
+ response = new com.shopizer.search.services.GetResponse(fields);
+ response.setObjectJson(result.getJsonString());
+
+ } else {
+ log.error("Error wile performing a get method " + result.getErrorMessage());
+ }
+
+ return response;
+
+ }
+
+ /* (non-Javadoc)
+ * @see com.shopizer.search.services.impl.SearchService#search(com.shopizer.search.services.SearchRequest)
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public SearchResponse search(SearchRequest request) throws Exception {
+
+
+
+ JestClient client = searchClient.getClient();
+
+ SearchResponse response = new SearchResponse();
+
+ Search.Builder search = new Search.Builder(request.getJson());
+ // multiple index or types can be added.
+ for(String index : request.getCollections()) {
+ search.addIndex(index);
+ }
+
+
+
+ //org.elasticsearch.action.search.SearchRequestBuilder builder = searchClient.getClient().prepareSearch(request.getCollection())
+
+
+ //.setQuery("{ \"term\" : { \"keyword\" : \"dynamic\" }}")
+ //.setQuery(request.getJson())
+ //.addHighlightedField("description")
+ //.addHighlightedField("tags")
+ //with extra you can set everything
+ //.setExtraSource(request.getJson())
+ //.setExplain(false);
+
+
+ if(request.getSize()>-1) {
+ search.setParameter(Parameters.SIZE, request.getSize());
+ }
+
+
+ SearchResult result = client.execute(search.build());
+
+ if(result==null) {
+ throw new Exception("Search result returned a null object");
+ }
+
+ if(!result.isSucceeded() && !StringUtils.isBlank(result.getErrorMessage())) {
+ log.error("An error occured while searching " + result.getErrorMessage());
+ return response;
+ }
+
+ //org.elasticsearch.action.search.SearchResponse rsp = builder.execute().actionGet();
+ //SearchHit[] docs = rsp.getHits().getHits();
+ List<com.shopizer.search.services.SearchHit> hits = new ArrayList<com.shopizer.search.services.SearchHit>();
+ @SuppressWarnings("rawtypes")
+ List ids = new ArrayList();
+
+ JsonObject responseHitsObject = result.getJsonObject().getAsJsonObject("hits");
+ Long count = responseHitsObject.get("total").getAsLong();
+
+ JsonArray responseHits = responseHitsObject.getAsJsonArray("hits");
+
+ //JsonArray responseHits = result.getJsonObject().getAsJsonObject("hits").getAsJsonArray("hits");
+ //response.setCount(responseHits.size());
+
+ response.setCount(count);
+
+
+ //for (SearchHit sd : docs) {
+ Iterator<JsonElement> elementsIterator = responseHits.iterator();
+ while (elementsIterator.hasNext()) {
+ JsonElement element = elementsIterator.next();
+
+ JsonObject jsonObject = element.getAsJsonObject();
+
+ String type = jsonObject.get("_type").getAsString();
+
+ Map<String,Object> item = this.getResults(jsonObject, "_source");
+
+
+ JsonElement _idElement = jsonObject.get("_id");
+ String _id = _idElement.getAsString();
+
+
+ //System.out.println(sd.getScore());
+ com.shopizer.search.services.SearchHit hit = new com.shopizer.search.services.SearchHit(item, _id);
+ //com.shopizer.search.services.SearchHit hit = new com.shopizer.search.services.SearchHit(element.getAsJsonArray());
+
+ hit.setType(type);
+ hits.add(hit);
+
+
+ ids.add(item.get("id"));
+
+ //Map source = sd.getSource();
+ //Map highlights = sd.getHighlightFields();
+ //hits.add(sd);
+
+
+ }
+
+ response.setIds(ids);
+ response.setSearchHits(hits);
+
+ /**
+ we need to know what will be the term aggregations decided on the client
+ so we can build a dynamic response based on what we want to retrieve
+ **/
+
+ //for each configured term aggregation
+ Map<String,List<com.shopizer.search.services.FacetEntry>> facetsMap = new HashMap<String,List<com.shopizer.search.services.FacetEntry>>();
+ for(String facetString : facetTermsList) {
+ TermsAggregation aggregations = result.getAggregations().getTermsAggregation(facetString);
+
+ if(aggregations!=null) {
+
+ String name = aggregations.getName();
+ List<com.shopizer.search.services.FacetEntry> entries = new ArrayList<com.shopizer.search.services.FacetEntry>();
+ for(int i = 0; i < aggregations.getBuckets().size(); i++) {
+ io.searchbox.core.search.aggregation.TermsAggregation.Entry entry = aggregations.getBuckets().get(i);
+ com.shopizer.search.services.FacetEntry f = new com.shopizer.search.services.FacetEntry();
+ String facetKey = entry.getKey();
+ Long numberOfHits = entry.getCount();
+ f.setName(facetKey);
+ f.setCount(numberOfHits);
+ entries.add(f);
+ }
+ facetsMap.put(name, entries);
+
+ }
+
+ }
+
+ response.setFacets(facetsMap);
+
+ //START FACETS
+
+/* List<TermsFacet> termsFacets = result.getFacets(TermsFacet.class);
+ //TermsAggregation terms = result.getAggregations().getTermsAggregation("terms1");
+
+
+ //Facets facets = rsp.getFacets();
+ if(termsFacets!=null) {
+ Map<String,com.shopizer.search.services.Facet> facetsMap = new HashMap<String,com.shopizer.search.services.Facet>();
+ for (TermsFacet facet : termsFacets) {
+
+ //if (facet instanceof TermsFacet) {
+ //TermsFacet ff = (TermsFacet) facet;
+ com.shopizer.search.services.Facet f = new com.shopizer.search.services.Facet();
+ f.setName(facet.getName());
+ List<com.shopizer.search.services.Entry> entries = new ArrayList<com.shopizer.search.services.Entry>();
+ for(Term o : facet.terms()) {
+ com.shopizer.search.services.Entry entry = new com.shopizer.search.services.Entry();
+ entry.setName(o.getName());
+ entry.setCount(o.getCount());
+ entries.add(entry);
+ }
+ f.setEntries(entries);
+ facetsMap.put(facet.getName(), f);
+ }
+ response.setFacets(facetsMap);
+ }*/
+
+ //END FACETS
+
+ response.setSearchHits(hits);
+ return response;
+
+
+ }
+
+ /* (non-Javadoc)
+ * @see com.shopizer.search.services.impl.SearchService#searchAutocomplete(java.lang.String, java.lang.String, int)
+ */
+
+ @Override
+ public Set<String> searchAutocomplete(String collection,String json,int size) throws Exception {
+
+ JestClient client = searchClient.getClient();
+
+ Search.Builder search = new Search.Builder(json);
+ search.addIndex(collection);
+
+ SearchResult result = client.execute(search.build());
+
+ if(result==null) {
+ throw new Exception("Search result is null");
+ }
+
+ if(!result.isSucceeded() && !StringUtils.isBlank(result.getErrorMessage())) {
+ log.error("An error occured while searching " + result.getErrorMessage());
+ return null;
+ }
+
+ JsonArray responseHits = result.getJsonObject().getAsJsonObject("hits").getAsJsonArray("hits");
+
+ Set<String> keywords = new HashSet<String>();
+
+
+ //for (SearchHit sd : docs) {
+ Iterator<JsonElement> elementsIterator = responseHits.iterator();
+ while (elementsIterator.hasNext()) {
+ JsonElement element = elementsIterator.next();
+
+ JsonObject jsonObject = element.getAsJsonObject();
+
+ Map<String,Object> item = this.getResults(jsonObject, "_source");
+
+ keywords.add((String)item.get("keyword"));
+
+
+ }
+
+
+ //org.elasticsearch.action.search.SearchResponse rsp = builder.execute().actionGet();
+ //SearchHit[] docs = rsp.getHits().getHits();
+ //for (SearchHit sd : docs) {
+ //to get explanation you'll need to enable this when querying:
+ //System.out.println(sd.getExplanation().toString());
+
+ // if we use in mapping: "_source" : {"enabled" : false}
+ // we need to include all necessary fields in query and then to use doc.getFields()
+ // instead of doc.getSource()
+ //Map source = sd.getSource();
+ //System.out.println(sd.getType());
+ //System.out.println(sd.getExplanation().toString());
+ //System.out.println(sd.fields().toString());
+ //System.out.println(sd.getMatchedFilters().length);
+ //SearchHitField f = sd.field("keyword");
+ //String f = (String)source.get("keyword");
+ //System.out.println(sd.sourceAsString());
+ //System.out.println(sd.getScore());
+
+ //returnList.add(sd.sourceAsString());
+ //returnList.add(f.toLowerCase());
+ //}
+
+
+
+ return keywords;
+
+ }
+
+}
diff --git a/sm-search/src/main/java/com/shopizer/search/services/IndexKeywordRequest.java b/sm-search/src/main/java/com/shopizer/search/services/IndexKeywordRequest.java
new file mode 100644
index 0000000..b9e3809
--- /dev/null
+++ b/sm-search/src/main/java/com/shopizer/search/services/IndexKeywordRequest.java
@@ -0,0 +1,47 @@
+package com.shopizer.search.services;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Collection;
+
+import com.shopizer.search.services.field.Field;
+
+
+
+public class IndexKeywordRequest implements Serializable {
+
+ private String id;
+ //private Locale locale;
+ private String key;
+ private Collection<Field> filters = new ArrayList<Field>();
+
+
+ public Collection<Field> getFilters() {
+
+ return filters;
+ }
+ public void setFilters(Collection<Field> filters) {
+ this.filters = filters;
+ }
+ public String getId() {
+ return id;
+ }
+ public void setId(String id) {
+ this.id = id;
+ }
+/* public Locale getLocale() {
+ return locale;
+ }
+ public void setLocale(Locale locale) {
+ this.locale = locale;
+ }*/
+ public String getKey() {
+ return key;
+ }
+ public void setKey(String key) {
+ this.key = key;
+ }
+
+
+
+}
diff --git a/sm-search/src/main/java/com/shopizer/search/services/SearchField.java b/sm-search/src/main/java/com/shopizer/search/services/SearchField.java
new file mode 100644
index 0000000..55d2d5b
--- /dev/null
+++ b/sm-search/src/main/java/com/shopizer/search/services/SearchField.java
@@ -0,0 +1,16 @@
+package com.shopizer.search.services;
+
+public class SearchField {
+
+ private String field;
+
+ public String getField() {
+ return field;
+ }
+
+ public void setField(String field) {
+ this.field = field;
+ }
+
+
+}
diff --git a/sm-search/src/main/java/com/shopizer/search/services/SearchHit.java b/sm-search/src/main/java/com/shopizer/search/services/SearchHit.java
new file mode 100644
index 0000000..14324fd
--- /dev/null
+++ b/sm-search/src/main/java/com/shopizer/search/services/SearchHit.java
@@ -0,0 +1,58 @@
+package com.shopizer.search.services;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class SearchHit {
+
+ //private org.elasticsearch.search.SearchHit searchit;
+ private String id;
+ private String index;
+ private String internalId;
+ private String type;//object type
+ //private float score;
+ private Map<String,Object> item = new HashMap<String,Object>();
+
+
+ public Map<String,Object> getItem() {
+ return item;
+ }
+
+ public SearchHit(Map<String, Object> item, String internalId) {
+
+ this.id = (String) item.get("id");
+ this.internalId = internalId;
+ this.item = item;
+ //metaEntries.put("source", item);
+
+ //if(searchit.getHighlightFields()!=null && searchit.getHighlightFields().size()>0) {
+ // metaEntries.put("highlightFields", searchit.getHighlightFields());
+ //}
+
+ }
+
+
+
+ public String getId() {
+ return id;
+ }
+
+ public String getIndex() {
+ return index;
+ }
+
+ public String getInternalId() {
+ return internalId;
+ }
+
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+
+
+}
diff --git a/sm-search/src/main/java/com/shopizer/search/services/SearchRequest.java b/sm-search/src/main/java/com/shopizer/search/services/SearchRequest.java
new file mode 100644
index 0000000..1202b5e
--- /dev/null
+++ b/sm-search/src/main/java/com/shopizer/search/services/SearchRequest.java
@@ -0,0 +1,44 @@
+package com.shopizer.search.services;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class SearchRequest {
+
+ private List<String> collections;
+
+ public List<String> getCollections() {
+ return collections;
+ }
+ public void addCollection(String collection) {
+ if(this.collections == null) {
+ this.collections = new ArrayList<String>();
+ }
+ this.collections.add(collection);
+ }
+
+
+ public int getSize() {
+ return size;
+ }
+ public void setSize(int size) {
+ this.size = size;
+ }
+ private String json;
+ public String getJson() {
+ return json;
+ }
+ public void setJson(String json) {
+ this.json = json;
+ }
+ private int size = -1;
+ private int start;
+
+ public int getStart() {
+ return start;
+ }
+ public void setStart(int start) {
+ this.start = start;
+ }
+
+}
diff --git a/sm-search/src/main/java/com/shopizer/search/services/SearchResponse.java b/sm-search/src/main/java/com/shopizer/search/services/SearchResponse.java
new file mode 100644
index 0000000..b6bdf31
--- /dev/null
+++ b/sm-search/src/main/java/com/shopizer/search/services/SearchResponse.java
@@ -0,0 +1,79 @@
+package com.shopizer.search.services;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Object used for autocomplete and regular search
+ * @author Carl Samson
+ *
+ */
+public class SearchResponse {
+
+ private String inputSearchJson;
+ private Collection<String> ids;
+ private long count;
+
+
+ private Collection<SearchHit> searchHits;
+
+
+
+ private Map<String,List<FacetEntry>> facets;
+
+ public Map<String,List<FacetEntry>> getFacets() {
+ return facets;
+ }
+
+ public void setFacets(Map<String,List<FacetEntry>> facets) {
+ this.facets = facets;
+ }
+
+ private String[] inlineSearchList;
+
+
+ public String[] getInlineSearchList() {
+ return inlineSearchList;
+ }
+
+ public void setInlineSearchList(String[] inlineSearchList) {
+ this.inlineSearchList = inlineSearchList;
+ }
+
+ public Collection<SearchHit> getSearchHits() {
+ return searchHits;
+ }
+
+ public void setSearchHits(Collection searchHits) {
+ this.searchHits = searchHits;
+ }
+
+ public String getInputSearchJson() {
+ return inputSearchJson;
+ }
+
+ public void setInputSearchJson(String inputSearchJson) {
+ this.inputSearchJson = inputSearchJson;
+ }
+
+ public Collection<String> getIds() {
+ return ids;
+ }
+
+ public void setIds(Collection<String> ids) {
+ this.ids = ids;
+ }
+
+ public long getCount() {
+ return count;
+ }
+
+ public void setCount(long count) {
+ this.count = count;
+ }
+
+
+
+
+}
diff --git a/sm-search/src/main/java/com/shopizer/search/services/SearchService.java b/sm-search/src/main/java/com/shopizer/search/services/SearchService.java
new file mode 100644
index 0000000..47f38ce
--- /dev/null
+++ b/sm-search/src/main/java/com/shopizer/search/services/SearchService.java
@@ -0,0 +1,98 @@
+package com.shopizer.search.services;
+
+import javax.inject.Inject;
+
+import org.apache.log4j.Logger;
+
+import com.shopizer.search.services.worker.KeywordIndexerImpl;
+import com.shopizer.search.services.worker.ObjectIndexerImpl;
+import com.shopizer.search.services.workflow.DeleteObjectWorkflow;
+import com.shopizer.search.services.workflow.GetWorkflow;
+import com.shopizer.search.services.workflow.IndexWorkflow;
+import com.shopizer.search.services.workflow.SearchWorkflow;
+import com.shopizer.search.utils.SearchClient;
+
+
+/**
+ * This is the main class for indexing and searching services
+ * @author Carl Samson
+ *
+ */
+
+public class SearchService {
+
+
+ private static Logger log = Logger.getLogger(SearchService.class);
+
+ @Inject
+ private DeleteObjectWorkflow deleteWorkflow;
+
+ @Inject
+ private IndexWorkflow indexWorkflow;
+
+ @Inject
+ private GetWorkflow getWorkflow;
+
+ @Inject
+ private SearchWorkflow searchWorkflow;
+
+ @Inject
+ private ObjectIndexerImpl index;
+
+ @Inject
+ private KeywordIndexerImpl keyword;
+
+ @Inject
+ private SearchClient searchClient;
+
+ public void initService() {
+ log.debug("Initializing search service");
+
+ try {
+ index.init(searchClient);
+ keyword.init(searchClient);
+ } catch (Exception e) {
+ log.error("Cannot initialize SearchService correctly, will be initialized lazily",e);
+ }
+
+ }
+
+
+
+ public void deleteObject(String collection, String object, String id) throws Exception {
+ deleteWorkflow.deleteObject(collection, object, id);
+
+ }
+
+
+ public com.shopizer.search.services.GetResponse getObject(String collection, String object, String id) throws Exception {
+
+ return getWorkflow.getObject(collection,object,id);
+ }
+
+ /**
+ * Index a document
+ * @param json
+ * @param collection (name of the collection)
+ * Might be product_en or product_fr or any name of the index container
+ * @param object
+ * That corresponds to the name of the entity to be indexed as defined in the
+ * indice file (product.json). In this case it will be product
+ * @param id
+ */
+ public void index(String json, String collection, String object) throws Exception {
+
+ indexWorkflow.index(json, collection, object);
+ }
+
+
+ public SearchResponse searchAutoComplete(String collection,String json,int size) throws Exception {
+
+ return searchWorkflow.searchAutocomplete(collection,json,size);
+ }
+
+ public SearchResponse search(SearchRequest request) throws Exception {
+
+ return searchWorkflow.search(request);
+ }
+}
diff --git a/sm-search/src/main/java/com/shopizer/search/services/worker/DeleteKeywordsImpl.java b/sm-search/src/main/java/com/shopizer/search/services/worker/DeleteKeywordsImpl.java
new file mode 100644
index 0000000..1547e3d
--- /dev/null
+++ b/sm-search/src/main/java/com/shopizer/search/services/worker/DeleteKeywordsImpl.java
@@ -0,0 +1,113 @@
+package com.shopizer.search.services.worker;
+
+
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+import java.util.StringTokenizer;
+
+import javax.inject.Inject;
+
+
+
+import org.apache.commons.collections4.CollectionUtils;
+
+import com.shopizer.search.services.SearchHit;
+import com.shopizer.search.services.SearchRequest;
+import com.shopizer.search.services.SearchResponse;
+import com.shopizer.search.services.impl.SearchDelegate;
+import com.shopizer.search.utils.CustomIndexConfiguration;
+import com.shopizer.search.utils.DynamicIndexNameUtil;
+import com.shopizer.search.utils.SearchClient;
+
+
+public class DeleteKeywordsImpl implements DeleteObjectWorker {
+
+
+
+ private List<CustomIndexConfiguration> indexConfigurations = null;
+ @Inject
+ private SearchDelegate searchDelegate;
+
+ public void deleteObject(SearchClient client,String collection, String object, String id, ExecutionContext context) throws Exception {
+
+ @SuppressWarnings("rawtypes")
+ Map indexData = (Map)context.getObject("indexData");
+
+ if(indexData!=null) {
+
+
+ if(!CollectionUtils.isEmpty(this.getIndexConfigurations())) {
+
+ for(CustomIndexConfiguration indexConfiguration : this.getIndexConfigurations()) {
+
+
+
+ //build a search string for retrieving the internal id of the keyword
+ String query = new StringBuilder()
+ .append("{\"query\":{\"term\" : {\"_id_\" : \"")
+ .append(id)
+ .append("\" }}}").toString();
+
+ SearchRequest sr = new SearchRequest();
+ sr.addCollection(indexConfiguration.getCollectionName());
+ sr.setJson(query);
+
+ SearchResponse r = searchDelegate.search(sr);
+ if(r!=null && !CollectionUtils.isEmpty(r.getIds())) {
+ //Collection<String> ids = r.getIds();
+ List<String> ids = new ArrayList<String>();
+ Collection<SearchHit> hits = r.getSearchHits();
+ for(SearchHit hit : hits) {
+ ids.add(hit.getInternalId());
+ }
+ searchDelegate.bulkDeleteIndex(ids, indexConfiguration.getCollectionName(), indexConfiguration.getIndexName());
+ }
+
+ }
+
+ }
+
+ }
+ }
+
+
+ public void deleteObject(SearchClient client,String collection, String object, String id) throws Exception {
+
+ if(searchDelegate.indexExist(collection)) {
+
+ String query = new StringBuilder()
+ .append("{\"query\":{\"term\" : {\"_id_\" : \"")
+ .append(id)
+ .append("\" }}}").toString();
+
+ SearchRequest sr = new SearchRequest();
+ sr.addCollection(collection);
+ sr.setJson(query);
+
+
+ SearchResponse r = searchDelegate.search(sr);
+ if(r!=null) {
+ Collection<String> ids = r.getIds();
+
+ searchDelegate.bulkDeleteIndex(ids, collection, object);
+ }
+
+ }
+
+
+ }
+
+ public List<CustomIndexConfiguration> getIndexConfigurations() {
+ return indexConfigurations;
+ }
+
+ public void setIndexConfigurations(List<CustomIndexConfiguration> indexConfigurations) {
+ this.indexConfigurations = indexConfigurations;
+ }
+
+
+
+}
diff --git a/sm-search/src/main/java/com/shopizer/search/services/worker/DeleteObjectImpl.java b/sm-search/src/main/java/com/shopizer/search/services/worker/DeleteObjectImpl.java
new file mode 100644
index 0000000..564e80e
--- /dev/null
+++ b/sm-search/src/main/java/com/shopizer/search/services/worker/DeleteObjectImpl.java
@@ -0,0 +1,84 @@
+package com.shopizer.search.services.worker;
+
+import javax.inject.Inject;
+
+import com.shopizer.search.services.impl.SearchDelegate;
+import com.shopizer.search.utils.SearchClient;
+
+
+public class DeleteObjectImpl implements DeleteObjectWorker {
+
+ @Inject
+ private SearchDelegate searchDelegate;
+
+ public void deleteObject(SearchClient client, String collection, String object, String id, ExecutionContext context) throws Exception {
+
+
+ //need to get the original entry
+ com.shopizer.search.services.GetResponse r = searchDelegate.getObject(collection, object, id);
+
+ if(r!=null) {
+
+ if(context==null) {
+ context = new ExecutionContext();
+ }
+
+
+ if(r.getFieldMap()!=null && r.getFieldMap().size()>0) {
+
+ //ObjectMapper mapper = new ObjectMapper();
+ //Map indexData = mapper.readValue(r.getResponseAsString(), Map.class);
+
+ context.setObject("indexData", r.getFieldMap());
+
+ }
+
+ }
+
+/* String query = new StringBuilder()
+ .append("{\"query\":{\"term\" : {\"_id\" : \"")
+ .append(id)
+ .append("\" }}}").toString();
+
+ SearchRequest r = new SearchRequest();
+ r.setCollection(collection);
+ r.setJson(query);*/
+
+
+ //SearchResponse resp =s.search(r);
+
+ //if(resp.getSearchHits()!=null && resp.getSearchHits().size()>0) {
+
+ //List<SearchHit> hits = (List<SearchHit>)resp.getSearchHits();
+
+ //SearchHit hit = hits.get(0);
+ //Map obj = hit.getSource();
+
+/* Map<String,Object> indexData = (Map)context.getObject("indexData");
+ if(indexData==null) {
+ ObjectMapper mapper = new ObjectMapper();
+ indexData = mapper.readValue(json, Map.class);
+ }*/
+
+ //if(context==null) {
+ // context = new ExecutionContext();
+ //}
+
+ //context.setObject("indexData", obj);
+
+ //}
+
+ //SearchServiceImpl search = new SearchServiceImpl(client);
+ searchDelegate.delete(collection, object, id);
+
+ }
+
+
+ public void deleteObject(SearchClient client, String collection, String object, String id)
+ throws Exception {
+ throw new Exception("Not implemented");
+
+ }
+
+
+}
diff --git a/sm-search/src/main/java/com/shopizer/search/services/worker/DeleteObjectWorker.java b/sm-search/src/main/java/com/shopizer/search/services/worker/DeleteObjectWorker.java
new file mode 100644
index 0000000..dd3b63c
--- /dev/null
+++ b/sm-search/src/main/java/com/shopizer/search/services/worker/DeleteObjectWorker.java
@@ -0,0 +1,17 @@
+package com.shopizer.search.services.worker;
+
+import com.shopizer.search.utils.SearchClient;
+
+/**
+ * Deletes an object from the index
+ * @author Carl Samson
+ *
+ */
+public interface DeleteObjectWorker {
+
+ public void deleteObject(SearchClient client,String collection, String object, String id, ExecutionContext context) throws Exception;
+
+ void deleteObject(SearchClient client, String collection, String object, String id)
+ throws Exception;
+
+}
diff --git a/sm-search/src/main/java/com/shopizer/search/services/worker/ExecutionContext.java b/sm-search/src/main/java/com/shopizer/search/services/worker/ExecutionContext.java
new file mode 100644
index 0000000..3e218fe
--- /dev/null
+++ b/sm-search/src/main/java/com/shopizer/search/services/worker/ExecutionContext.java
@@ -0,0 +1,17 @@
+package com.shopizer.search.services.worker;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class ExecutionContext {
+
+ private Map internalMap = new HashMap();
+
+ public Object getObject(String key) {
+ return internalMap.get(key);
+ }
+
+ public void setObject(String key, Object o) {
+ internalMap.put(key, o);
+ }
+}
diff --git a/sm-search/src/main/java/com/shopizer/search/services/worker/IndexWorker.java b/sm-search/src/main/java/com/shopizer/search/services/worker/IndexWorker.java
new file mode 100644
index 0000000..eab4b18
--- /dev/null
+++ b/sm-search/src/main/java/com/shopizer/search/services/worker/IndexWorker.java
@@ -0,0 +1,10 @@
+package com.shopizer.search.services.worker;
+
+import com.shopizer.search.utils.SearchClient;
+
+public interface IndexWorker {
+
+ public void init(SearchClient client);
+ public void execute(SearchClient client, String json, String collection, String object, String id, ExecutionContext context) throws Exception;
+
+}
diff --git a/sm-search/src/main/java/com/shopizer/search/services/worker/KeywordIndexerImpl.java b/sm-search/src/main/java/com/shopizer/search/services/worker/KeywordIndexerImpl.java
new file mode 100644
index 0000000..920136b
--- /dev/null
+++ b/sm-search/src/main/java/com/shopizer/search/services/worker/KeywordIndexerImpl.java
@@ -0,0 +1,511 @@
+package com.shopizer.search.services.worker;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.StringTokenizer;
+
+import javax.inject.Inject;
+
+
+
+import org.apache.commons.lang3.StringUtils;
+import org.apache.log4j.Logger;
+
+import com.shopizer.search.services.IndexKeywordRequest;
+import com.shopizer.search.services.field.BooleanField;
+import com.shopizer.search.services.field.DoubleField;
+import com.shopizer.search.services.field.Field;
+import com.shopizer.search.services.field.IntegerField;
+import com.shopizer.search.services.field.ListField;
+import com.shopizer.search.services.field.LongField;
+import com.shopizer.search.services.field.StringField;
+import com.shopizer.search.services.impl.SearchDelegate;
+import com.shopizer.search.utils.CustomIndexConfiguration;
+import com.shopizer.search.utils.CustomIndexFieldConfiguration;
+import com.shopizer.search.utils.DateUtil;
+import com.shopizer.search.utils.DynamicIndexNameUtil;
+import com.shopizer.search.utils.FileUtil;
+import com.shopizer.search.utils.SearchClient;
+
+
+public class KeywordIndexerImpl implements IndexWorker {
+
+ @Inject
+ DeleteKeywordsImpl deleteKeywordsImpl;
+
+ @Inject
+ private SearchDelegate searchDelegate;
+
+
+ private static Logger log = Logger.getLogger(KeywordIndexerImpl.class);
+
+ private static boolean init = false;
+
+ private List<CustomIndexConfiguration> indexConfigurations = null;
+
+
+ public List<CustomIndexConfiguration> getIndexConfigurations() {
+ return indexConfigurations;
+ }
+
+ public void setIndexConfigurations(
+ List<CustomIndexConfiguration> indexConfigurations) {
+ this.indexConfigurations = indexConfigurations;
+ }
+
+ private static Map<String,CustomIndexConfiguration> indexConfigurationsMap = null;
+
+ private synchronized void init() {
+
+ if(init) {
+ return;
+ }
+
+ init = true;
+ try {
+
+ if(indexConfigurations!=null) {
+
+ for(Object o : indexConfigurations) {
+
+ CustomIndexConfiguration ic = (CustomIndexConfiguration)o;
+ String key = ic.getCreateOnIndexName();
+ if(indexConfigurationsMap==null) {
+ indexConfigurationsMap = new HashMap();
+ }
+ if(StringUtils.isBlank(key)) {
+ log.error("*********************************************");
+ log.error("Require property createOnIndexName in keyword indexer");
+ log.error("*********************************************");
+ continue;
+ }
+ indexConfigurationsMap.put(key, ic);
+
+ //settings mapping
+
+ String mappingFile = null;
+ String settingsFile = null;
+ if(!StringUtils.isBlank(ic.getMappingFileName())) {
+ mappingFile = ic.getMappingFileName();
+ }
+ if(!StringUtils.isBlank(ic.getSettingsFileName())) {
+ settingsFile = ic.getSettingsFileName();
+ }
+
+ if(mappingFile!=null || settingsFile!=null) {
+
+ String metadata = null;
+ String settingsdata = null;
+ try {
+
+ if(mappingFile!=null) {
+ metadata = FileUtil.readFileAsString(mappingFile);
+ }
+
+ if(settingsFile!=null) {
+ settingsdata = FileUtil.readFileAsString(settingsFile);
+ }
+
+ if(!StringUtils.isBlank(ic.getIndexName())) {
+
+ if(!searchDelegate.indexExist(ic.getCollectionName())) {
+ searchDelegate.createIndice(metadata, settingsdata, ic.getCollectionName(), ic.getIndexName());
+ }
+ }
+
+ } catch (Exception e) {
+ log.error(e);
+ log.error("*********************************************");
+ log.error(e);
+ log.error("*********************************************");
+ init=false;
+ }
+ }
+
+
+
+
+ }
+
+ }
+
+ init = true;
+
+ } catch (Exception e) {
+ log.error("*********************************************");
+ log.error(e);
+ log.error("*********************************************");
+ }
+
+
+
+
+ }
+
+ @SuppressWarnings("rawtypes")
+ public void execute(SearchClient client, String json, String collection, String object, String id, ExecutionContext context)
+ throws Exception {
+
+ if(!init) {
+ init();
+ }
+
+ try {
+
+
+
+ //new logic
+ if(indexConfigurationsMap!=null && indexConfigurationsMap.containsKey(object)) {
+
+
+ //get json
+ Map indexData = (Map)context.getObject("indexData");
+
+
+ CustomIndexConfiguration conf = indexConfigurationsMap.get(object);
+
+
+/* String collectionName = DynamicIndexNameUtil.getIndexName(conf.getCollectionName(),indexData);
+ StringTokenizer t = new StringTokenizer(conf.getCollectionName(),"_");
+ int countToken = t.countTokens();
+ if(countToken>1) {
+
+ StringBuilder iName = new StringBuilder();
+ int count = 1;
+ while(t.hasMoreTokens()) {
+
+ String elem = t.nextToken();
+ iName.append(DynamicIndexNameUtil.getIndexName(elem,indexData));
+ if(count<countToken) {
+ iName.append("_");
+ }
+ count++;
+ }
+ collectionName = iName.toString();
+ } */
+
+ //get fields to index
+ List fields = conf.getFields();
+ if(fields!=null) {
+
+ List k = null;
+ for(Object o : fields) {
+
+
+ CustomIndexFieldConfiguration cifc = (CustomIndexFieldConfiguration)o;
+
+ String fieldName = cifc.getFieldName();
+
+ if(fieldName.trim().toLowerCase().equals("id")) {//we have our own id
+ continue;
+ }
+
+
+ String fieldType = cifc.getFieldType();
+
+
+ if(!StringUtils.isBlank(fieldType)) {
+ if(fieldType.equals("List")) {
+
+ try {
+ List keyWords = (List)indexData.get(fieldName);
+
+ if(keyWords!=null) {
+
+ if(k==null) {
+ k = new ArrayList();
+ }
+ k.addAll(keyWords);
+ }
+
+ } catch (Exception e) {//might have one instead of a list
+ String keyword = (String)indexData.get(fieldName);
+
+ if(keyword!=null) {
+
+ if(k==null) {
+ k = new ArrayList();
+ }
+ k.add(keyword);
+
+ }
+ }
+
+ } else {//String
+
+ String keyword = (String)indexData.get(fieldName);
+
+ if(keyword!=null) {
+
+ if(k==null) {
+ k = new ArrayList();
+ }
+ k.add(keyword);
+
+ }
+ }
+ }//end field type
+
+ }//end for
+
+
+ if(k!=null) {
+
+ Collection bulks = new ArrayList();
+
+ StringBuilder kw = new StringBuilder();
+ int i = 1;
+ for(Object o : k) {
+
+
+ IndexKeywordRequest kr = new IndexKeywordRequest();
+
+ //id is the key trimed in lower case
+ String value = (String)o;
+
+ if(StringUtils.isBlank(value)) {
+ continue;
+ }
+
+ //kr.setId(value.toLowerCase().trim());
+ //get id from original object
+
+ String _id = (String)indexData.get("id");
+ kr.setId(_id);
+ kr.setKey(value);
+
+ //check fields to add
+
+ if(conf.getFilters()!=null && conf.getFilters().size()>0) {
+
+ for(Object oo : conf.getFilters()) {
+
+ CustomIndexFieldConfiguration filter = (CustomIndexFieldConfiguration)oo;
+
+ String fieldName = filter.getFieldName();
+
+ String fieldType = filter.getFieldType();
+
+ Field f = null;
+
+ if(fieldType.equals("List")) {
+ List ooo = (List)indexData.get(fieldName);
+ f = new ListField();
+ f.setValue(ooo);
+ f.setName(fieldName);
+ kr.getFilters().add(f);
+
+ } else if(fieldType.equals("Boolean")) {
+
+ String s = (String)indexData.get(fieldName);
+ Boolean ooo = new Boolean(s);
+ f = new BooleanField();
+ f.setValue(ooo);
+ f.setName(fieldName);
+ kr.getFilters().add(f);
+
+ } else if(fieldType.equals("Integer")) {
+
+ //String s = (String)indexData.get(fieldName);
+ Integer ooo = (Integer)indexData.get(fieldName);
+ f = new IntegerField();
+ f.setValue(ooo);
+ f.setName(fieldName);
+ kr.getFilters().add(f);
+
+ } else if(fieldType.equals("Long")) {
+
+ //String s = (String)indexData.get(fieldName);
+ Long ooo = (Long)indexData.get(fieldName);
+ f = new LongField();
+ f.setValue(ooo);
+ f.setName(fieldName);
+ kr.getFilters().add(f);
+
+ } else if(fieldType.equals("Double")) {
+
+ //String s = (String)indexData.get(fieldName);
+ Double ooo = (Double)indexData.get(fieldName);
+ f = new DoubleField();
+ f.setValue(ooo);
+ f.setName(fieldName);
+ kr.getFilters().add(f);
+
+ } else if(fieldType.equals("Date")) {
+
+ String d = (String)indexData.get(fieldName);
+ //parse date
+ try {
+ Date dt = DateUtil.formatDate(d);
+ f = new DoubleField();
+ f.setValue(dt);
+ f.setName(fieldName);
+ kr.getFilters().add(f);
+ } catch (Exception e) {
+ log.error("Invalid date format " + d);
+ }
+
+
+ } else {
+
+ String ooo = (String)indexData.get(fieldName);
+ f = new StringField();
+ f.setValue(ooo.toLowerCase());
+ f.setName(fieldName);
+ kr.getFilters().add(f);
+
+ }
+ }
+
+
+ }
+
+
+
+ bulks.add(kr);
+
+ }
+
+
+ //delete previous keywords for the same id
+ //deleteKeywordsImpl.deleteObject(client, collectionName, id);
+ deleteKeywordsImpl.deleteObject(client, conf.getCollectionName(), conf.getIndexName(), id);
+
+ //searchDelegate.bulkIndexKeywords(bulks, collectionName, "keyword");
+ searchDelegate.bulkIndexKeywords(bulks, conf.getCollectionName(), conf.getIndexName());
+
+ }
+
+
+
+ }
+
+
+
+ }
+
+ } catch (Exception e) {
+ log.error("Cannot index keywords, maybe a timing ussue for no shards available",e);
+ }
+
+
+
+
+/* if(!StringUtils.isBlank(collectionName) && keyWordsToIndex!=null && keyWordsToIndex.size()>0) {
+
+ SearchServiceImpl service = new SearchServiceImpl();
+
+
+ ObjectMapper mapper = new ObjectMapper();
+ Map<String,Object> indexData = mapper.readValue(json, Map.class);
+
+
+ List k = null;
+
+ String indexName = getIndexName(collectionName,indexData);
+ //tokenize ?
+ StringTokenizer t = new StringTokenizer(collectionName,"_");
+ if(t.countTokens()>1) {
+
+ StringBuilder iName = new StringBuilder();
+ int count = 1;
+ while(t.hasMoreTokens()) {
+
+
+ String elem = t.nextToken();
+ iName.append(getIndexName(elem,indexData));
+ if(count<t.countTokens()) {
+ iName.append("_");
+ }
+ }
+
+ indexName = iName.toString();
+
+ }
+
+
+ for(Object o : keyWordsToIndex.keySet()) {
+
+ String fieldName = (String)o;
+
+
+ if(fieldName.trim().toLowerCase().equals("id")) {//we have our own id
+ continue;
+ }
+
+
+
+ String fieldType = (String)keyWordsToIndex.get(fieldName);
+ if(!StringUtils.isBlank(fieldType)) {
+ if(fieldType.equals("List")) {
+
+ try {
+ List keyWords = (List)indexData.get(fieldName);
+
+ if(keyWords!=null) {
+
+ if(k==null) {
+ k = new ArrayList();
+ }
+ k.addAll(keyWords);
+
+ }
+
+ } catch (Exception e) {//might have one instead of a list
+ String keyword = (String)indexData.get(fieldName);
+
+ if(keyword!=null) {
+
+ if(k==null) {
+ k = new ArrayList();
+ }
+ k.add(keyword);
+
+ }
+ }
+
+ } else {//String
+
+ String keyword = (String)indexData.get(fieldName);
+
+ if(keyword!=null) {
+
+ if(k==null) {
+ k = new ArrayList();
+ }
+ k.add(keyword);
+
+ }
+
+ }
+
+ }
+ }//end for
+*/
+
+
+
+
+
+ //}
+
+ //}
+
+
+ }
+
+ @Override
+ public void init(SearchClient client) {
+ if(!init) {
+ init();
+ }
+
+ }
+
+
+
+}
diff --git a/sm-search/src/main/java/com/shopizer/search/services/worker/KeywordSearchWorker.java b/sm-search/src/main/java/com/shopizer/search/services/worker/KeywordSearchWorker.java
new file mode 100644
index 0000000..9cc1315
--- /dev/null
+++ b/sm-search/src/main/java/com/shopizer/search/services/worker/KeywordSearchWorker.java
@@ -0,0 +1,10 @@
+package com.shopizer.search.services.worker;
+
+import com.shopizer.search.services.SearchResponse;
+import com.shopizer.search.utils.SearchClient;
+
+public interface KeywordSearchWorker {
+
+ public SearchResponse execute(SearchClient client,String collection,String json,int size, ExecutionContext context) throws Exception;
+
+}
diff --git a/sm-search/src/main/java/com/shopizer/search/services/worker/KeywordSearchWorkerImpl.java b/sm-search/src/main/java/com/shopizer/search/services/worker/KeywordSearchWorkerImpl.java
new file mode 100644
index 0000000..14db6b0
--- /dev/null
+++ b/sm-search/src/main/java/com/shopizer/search/services/worker/KeywordSearchWorkerImpl.java
@@ -0,0 +1,36 @@
+package com.shopizer.search.services.worker;
+
+import java.util.Collection;
+
+import javax.inject.Inject;
+
+import com.shopizer.search.services.SearchResponse;
+import com.shopizer.search.services.impl.SearchDelegate;
+import com.shopizer.search.utils.SearchClient;
+
+
+public class KeywordSearchWorkerImpl implements KeywordSearchWorker {
+
+ @Inject
+ private SearchDelegate searchDelegate;
+
+ public SearchResponse execute(SearchClient client, String collection,String json,int size, ExecutionContext context) throws Exception{
+
+
+
+ Collection<String> hits = searchDelegate.searchAutocomplete(collection, json, size);
+ SearchResponse resp = new SearchResponse();
+
+ String[] array = (String[])hits.toArray(new String[hits.size()]);
+
+
+ resp.setInlineSearchList(array);
+ if(array.length>0) {
+ resp.setCount(array.length);
+ }
+
+ return resp;
+
+ }
+
+}
diff --git a/sm-search/src/main/java/com/shopizer/search/services/worker/ObjectIndexerImpl.java b/sm-search/src/main/java/com/shopizer/search/services/worker/ObjectIndexerImpl.java
new file mode 100644
index 0000000..aaf7124
--- /dev/null
+++ b/sm-search/src/main/java/com/shopizer/search/services/worker/ObjectIndexerImpl.java
@@ -0,0 +1,136 @@
+package com.shopizer.search.services.worker;
+
+import java.util.List;
+import java.util.Map;
+
+import javax.inject.Inject;
+
+
+
+
+import org.apache.commons.lang3.StringUtils;
+import org.apache.log4j.Logger;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.shopizer.search.services.impl.SearchDelegate;
+import com.shopizer.search.utils.FileUtil;
+import com.shopizer.search.utils.IndexConfiguration;
+import com.shopizer.search.utils.SearchClient;
+
+
+public class ObjectIndexerImpl implements IndexWorker {
+
+ private static boolean init = false;
+
+ @Inject
+ private SearchDelegate searchDelegate;
+
+ private List<IndexConfiguration> indexConfigurations;
+
+ public List<IndexConfiguration> getIndexConfigurations() {
+ return indexConfigurations;
+ }
+
+ public void setIndexConfigurations(List<IndexConfiguration> indexConfigurations) {
+ this.indexConfigurations = indexConfigurations;
+ }
+
+ private static Logger log = Logger.getLogger(ObjectIndexerImpl.class);
+
+ public synchronized void init(SearchClient client) {
+
+ //get the list of configuration
+ //get the collection name and index name
+ //get the mapping file
+ if(init) {
+ return;
+ }
+
+ init = true;
+ if(getIndexConfigurations()!=null && getIndexConfigurations().size()>0) {
+
+ for(Object o : indexConfigurations) {
+
+ IndexConfiguration config = (IndexConfiguration)o;
+
+ String mappingFile = null;
+ String settingsFile = null;
+ if(!StringUtils.isBlank(config.getMappingFileName())) {
+ mappingFile = config.getMappingFileName();
+ }
+ if(!StringUtils.isBlank(config.getSettingsFileName())) {
+ settingsFile = config.getSettingsFileName();
+ }
+
+ if(mappingFile!=null || settingsFile!=null) {
+
+ String metadata = null;
+ String settingsdata = null;
+ try {
+
+ if(mappingFile!=null) {
+ metadata = FileUtil.readFileAsString(mappingFile);
+ }
+
+ if(settingsFile!=null) {
+ settingsdata = FileUtil.readFileAsString(settingsFile);
+ }
+
+ if(!StringUtils.isBlank(config.getIndexName())) {
+
+ if(!searchDelegate.indexExist(config.getCollectionName())) {
+ searchDelegate.createIndice(metadata, settingsdata, config.getCollectionName(), config.getIndexName());
+ }
+ }
+
+ } catch (Exception e) {
+ log.error(e);
+ log.error("*********************************************");
+ log.error(e);
+ log.error("*********************************************");
+ init=false;
+ }
+ }
+ }
+ }
+ }
+
+ @SuppressWarnings({ "unchecked", "unused" })
+ public void execute(SearchClient client, String json, String collection, String object, String id, ExecutionContext context)
+ throws Exception {
+
+ try {
+
+
+ if(!init) {
+ init(client);
+ }
+
+ //get json object
+ Map<String,Object> indexData = (Map<String,Object>)context.getObject("indexData");
+ if(indexData==null) {
+ ObjectMapper mapper = new ObjectMapper();
+ indexData = mapper.readValue(json, Map.class);
+ }
+
+ if(context==null) {
+ context = new ExecutionContext();
+ }
+
+ context.setObject("indexData", indexData);
+
+ com.shopizer.search.services.GetResponse r = searchDelegate.getObject(collection, object, id);
+ if(r!=null) {
+ searchDelegate.delete(collection, object, id);
+ }
+
+ searchDelegate.index(json, collection, object, id);
+
+ } catch (Exception e) {
+ log.error("Exception while indexing a product, maybe a timing ussue for no shards available",e);
+ }
+
+
+ }
+
+}
diff --git a/sm-search/src/main/java/com/shopizer/search/services/worker/SearchWorker.java b/sm-search/src/main/java/com/shopizer/search/services/worker/SearchWorker.java
new file mode 100644
index 0000000..3e08c1e
--- /dev/null
+++ b/sm-search/src/main/java/com/shopizer/search/services/worker/SearchWorker.java
@@ -0,0 +1,11 @@
+package com.shopizer.search.services.worker;
+
+import com.shopizer.search.services.SearchRequest;
+import com.shopizer.search.services.SearchResponse;
+import com.shopizer.search.utils.SearchClient;
+
+public interface SearchWorker {
+
+ public SearchResponse execute(SearchClient client, SearchRequest request, ExecutionContext context) throws Exception;
+
+}
diff --git a/sm-search/src/main/java/com/shopizer/search/services/worker/SearchWorkerImpl.java b/sm-search/src/main/java/com/shopizer/search/services/worker/SearchWorkerImpl.java
new file mode 100644
index 0000000..62018aa
--- /dev/null
+++ b/sm-search/src/main/java/com/shopizer/search/services/worker/SearchWorkerImpl.java
@@ -0,0 +1,29 @@
+package com.shopizer.search.services.worker;
+
+import javax.inject.Inject;
+
+import com.shopizer.search.services.SearchRequest;
+import com.shopizer.search.services.SearchResponse;
+import com.shopizer.search.services.impl.SearchDelegate;
+import com.shopizer.search.utils.SearchClient;
+
+
+public class SearchWorkerImpl implements SearchWorker {
+
+ @Inject
+ private SearchDelegate searchDelegate;
+
+ public SearchResponse execute(SearchClient client, SearchRequest request, ExecutionContext context) throws Exception{
+
+ SearchResponse response = searchDelegate.search(request);
+
+ response.setInputSearchJson(request.getJson());
+ if(context == null) {
+ context = new ExecutionContext();
+ }
+ context.setObject("response", response);
+ return response;
+
+ }
+
+}
diff --git a/sm-search/src/main/java/com/shopizer/search/services/workflow/DeleteObjectWorkflow.java b/sm-search/src/main/java/com/shopizer/search/services/workflow/DeleteObjectWorkflow.java
new file mode 100644
index 0000000..a76ac03
--- /dev/null
+++ b/sm-search/src/main/java/com/shopizer/search/services/workflow/DeleteObjectWorkflow.java
@@ -0,0 +1,42 @@
+package com.shopizer.search.services.workflow;
+
+import java.util.List;
+
+import org.apache.log4j.Logger;
+import org.springframework.stereotype.Component;
+
+import com.shopizer.search.services.worker.DeleteObjectWorker;
+import com.shopizer.search.services.worker.ExecutionContext;
+
+
+@Component
+public class DeleteObjectWorkflow extends Workflow{
+
+ private static Logger log = Logger.getLogger(DeleteObjectWorkflow.class);
+
+ private List deleteObjectWorkflow;
+
+
+ public List getDeleteObjectWorkflow() {
+ return deleteObjectWorkflow;
+ }
+
+
+ public void setDeleteObjectWorkflow(List deleteObjectWorkflow) {
+ this.deleteObjectWorkflow = deleteObjectWorkflow;
+ }
+
+
+ public void deleteObject(String collection, String object, String id) throws Exception {
+
+
+ if(deleteObjectWorkflow!=null) {
+ ExecutionContext context = new ExecutionContext();
+ for(Object o : deleteObjectWorkflow) {
+ DeleteObjectWorker iw = (DeleteObjectWorker)o;
+ iw.deleteObject(super.getSearchClient(),collection, object, id, context);
+ }
+ }
+ }
+
+}
diff --git a/sm-search/src/main/java/com/shopizer/search/services/workflow/GetWorkflow.java b/sm-search/src/main/java/com/shopizer/search/services/workflow/GetWorkflow.java
new file mode 100644
index 0000000..56172aa
--- /dev/null
+++ b/sm-search/src/main/java/com/shopizer/search/services/workflow/GetWorkflow.java
@@ -0,0 +1,22 @@
+package com.shopizer.search.services.workflow;
+
+import javax.inject.Inject;
+
+import org.springframework.stereotype.Component;
+
+import com.shopizer.search.services.impl.SearchDelegate;
+
+
+
+@Component
+public class GetWorkflow extends Workflow {
+
+ @Inject
+ private SearchDelegate searchDelegate;
+ public com.shopizer.search.services.GetResponse getObject(String collection, String object, String id) throws Exception {
+
+ return searchDelegate.getObject(collection, object, id);
+
+ }
+
+}
diff --git a/sm-search/src/main/java/com/shopizer/search/services/workflow/IndexWorkflow.java b/sm-search/src/main/java/com/shopizer/search/services/workflow/IndexWorkflow.java
new file mode 100644
index 0000000..e50c61d
--- /dev/null
+++ b/sm-search/src/main/java/com/shopizer/search/services/workflow/IndexWorkflow.java
@@ -0,0 +1,56 @@
+package com.shopizer.search.services.workflow;
+
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+
+import org.apache.commons.lang3.StringUtils;
+import org.apache.log4j.Logger;
+import org.springframework.stereotype.Component;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.shopizer.search.services.worker.ExecutionContext;
+import com.shopizer.search.services.worker.IndexWorker;
+
+
+@Component
+public class IndexWorkflow extends Workflow {
+
+ private static Logger log = Logger.getLogger(IndexWorkflow.class);
+
+ private List indexWorkflow;
+
+ public List getIndexWorkflow() {
+ return indexWorkflow;
+ }
+
+ public void setIndexWorkflow(List indexWorkflow) {
+ this.indexWorkflow = indexWorkflow;
+ }
+
+ public void index(String json, String collection, String object) throws Exception {
+
+ ObjectMapper mapper = new ObjectMapper();
+ Map<String,Object> indexData = mapper.readValue(json, Map.class);
+
+ //get id
+ String _id = (String)indexData.get("id");
+ if(StringUtils.isBlank(_id)) {
+ log.warn("No id exist for object " + json + " will create a generic one");
+ UUID uid = UUID.randomUUID();
+ _id = uid.toString();
+ indexData.put("id", _id);
+ json = mapper.writeValueAsString(indexData);
+ }
+ ExecutionContext context = new ExecutionContext();
+ context.setObject("indexData", indexData);
+
+ if(indexWorkflow!=null) {
+ for(Object o : indexWorkflow) {
+ IndexWorker iw = (IndexWorker)o;
+ iw.execute(this.getSearchClient(),json, collection, object, _id, context);
+ }
+ }
+ }
+
+}
diff --git a/sm-search/src/main/java/com/shopizer/search/services/workflow/SearchWorkflow.java b/sm-search/src/main/java/com/shopizer/search/services/workflow/SearchWorkflow.java
new file mode 100644
index 0000000..8d92c45
--- /dev/null
+++ b/sm-search/src/main/java/com/shopizer/search/services/workflow/SearchWorkflow.java
@@ -0,0 +1,88 @@
+package com.shopizer.search.services.workflow;
+
+import java.util.List;
+
+import org.springframework.stereotype.Component;
+
+import com.shopizer.search.services.SearchRequest;
+import com.shopizer.search.services.SearchResponse;
+import com.shopizer.search.services.worker.KeywordSearchWorker;
+import com.shopizer.search.services.worker.SearchWorker;
+
+
+@Component
+@SuppressWarnings("rawtypes")
+public class SearchWorkflow extends Workflow{
+
+
+ private List searchFlow;
+ private List searchKeywordWorkflow;
+
+
+
+
+
+ public List getSearchKeywordWorkflow() {
+ return searchKeywordWorkflow;
+ }
+
+ public void setSearchKeywordWorkflow(List searchKeywordWorkflow) {
+ this.searchKeywordWorkflow = searchKeywordWorkflow;
+ }
+
+
+
+ public SearchResponse searchAutocomplete(String collection,String json,int size) throws Exception {
+
+
+ SearchResponse response = null;
+
+
+ if(searchKeywordWorkflow!=null) {
+ for(Object o : searchKeywordWorkflow) {
+
+ //String className = (String)o;
+ //SearchWorker search = (SearchWorker)Class.forName(className).newInstance();
+ //search.execute(request.getJson(), request.getCollection());
+ KeywordSearchWorker sw = (KeywordSearchWorker)o;
+ response = sw.execute(super.getSearchClient(),collection,json,size, null);
+ }
+ }
+
+ return response;
+
+ }
+
+ public SearchResponse search(SearchRequest request) throws Exception {
+
+ //SearchServiceImpl service = new SearchServiceImpl();
+ //SearchResponse response = service.search(request);
+
+ //response.setInputSearchJson(request.getJson());
+ SearchResponse response = null;
+
+
+ if(searchFlow!=null) {
+ for(Object o : searchFlow) {
+
+ //String className = (String)o;
+ //SearchWorker search = (SearchWorker)Class.forName(className).newInstance();
+ //search.execute(request.getJson(), request.getCollection());
+ SearchWorker sw = (SearchWorker)o;
+ response = sw.execute(super.getSearchClient(),request, null);
+ }
+ }
+
+ return response;
+
+ }
+
+ public List getSearchFlow() {
+ return searchFlow;
+ }
+
+ public void setSearchFlow(List searchFlow) {
+ this.searchFlow = searchFlow;
+ }
+
+}
diff --git a/sm-search/src/main/java/com/shopizer/search/services/workflow/Workflow.java b/sm-search/src/main/java/com/shopizer/search/services/workflow/Workflow.java
new file mode 100644
index 0000000..6df24ad
--- /dev/null
+++ b/sm-search/src/main/java/com/shopizer/search/services/workflow/Workflow.java
@@ -0,0 +1,29 @@
+package com.shopizer.search.services.workflow;
+
+import com.shopizer.search.utils.SearchClient;
+
+public class Workflow {
+
+ private SearchClient searchClient;
+
+
+
+ public SearchClient getSearchClient() {
+ return searchClient;
+ }
+
+
+
+ public void setSearchClient(SearchClient searchClient) {
+ this.searchClient = searchClient;
+ }
+
+
+
+ public Workflow() {
+ super();
+ }
+
+
+
+}
\ No newline at end of file
diff --git a/sm-search/src/main/java/com/shopizer/search/utils/CustomIndexConfiguration.java b/sm-search/src/main/java/com/shopizer/search/utils/CustomIndexConfiguration.java
new file mode 100644
index 0000000..2a74bdc
--- /dev/null
+++ b/sm-search/src/main/java/com/shopizer/search/utils/CustomIndexConfiguration.java
@@ -0,0 +1,42 @@
+package com.shopizer.search.utils;
+
+import java.util.List;
+
+public class CustomIndexConfiguration extends IndexConfiguration {
+
+
+ private String createOnIndexName;
+ private List<CustomIndexFieldConfiguration> fields;
+ private List<CustomIndexFieldConfiguration> filters;
+
+
+ public String getCreateOnIndexName() {
+ return createOnIndexName;
+ }
+
+ public void setCreateOnIndexName(String createOnIndexName) {
+ this.createOnIndexName = createOnIndexName;
+ }
+
+
+
+ public List<CustomIndexFieldConfiguration> getFields() {
+ return fields;
+ }
+
+ public void setFields(List<CustomIndexFieldConfiguration> fields) {
+ this.fields = fields;
+ }
+
+
+
+
+
+ public List<CustomIndexFieldConfiguration> getFilters() {
+ return filters;
+ }
+
+ public void setFilters(List<CustomIndexFieldConfiguration> filters) {
+ this.filters = filters;
+ }
+}
diff --git a/sm-search/src/main/java/com/shopizer/search/utils/CustomIndexFieldConfiguration.java b/sm-search/src/main/java/com/shopizer/search/utils/CustomIndexFieldConfiguration.java
new file mode 100644
index 0000000..fd4fe0a
--- /dev/null
+++ b/sm-search/src/main/java/com/shopizer/search/utils/CustomIndexFieldConfiguration.java
@@ -0,0 +1,21 @@
+package com.shopizer.search.utils;
+
+public class CustomIndexFieldConfiguration {
+
+ private String fieldName;
+ private String fieldType;
+
+ public String getFieldName() {
+ return fieldName;
+ }
+ public void setFieldName(String fieldName) {
+ this.fieldName = fieldName;
+ }
+ public String getFieldType() {
+ return fieldType;
+ }
+ public void setFieldType(String fieldType) {
+ this.fieldType = fieldType;
+ }
+
+}
diff --git a/sm-search/src/main/java/com/shopizer/search/utils/DateUtil.java b/sm-search/src/main/java/com/shopizer/search/utils/DateUtil.java
new file mode 100644
index 0000000..adcdb08
--- /dev/null
+++ b/sm-search/src/main/java/com/shopizer/search/utils/DateUtil.java
@@ -0,0 +1,17 @@
+package com.shopizer.search.utils;
+
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+public class DateUtil {
+
+ public final static String DATE_FORMAT = "yyyy-MM-dd";
+
+ public static Date formatDate(String date) throws Exception {
+
+ DateFormat myDateFormat = new SimpleDateFormat(DATE_FORMAT);
+ return myDateFormat.parse(date);
+ }
+
+}
diff --git a/sm-search/src/main/java/com/shopizer/search/utils/DynamicIndexNameUtil.java b/sm-search/src/main/java/com/shopizer/search/utils/DynamicIndexNameUtil.java
new file mode 100644
index 0000000..5a603dd
--- /dev/null
+++ b/sm-search/src/main/java/com/shopizer/search/utils/DynamicIndexNameUtil.java
@@ -0,0 +1,31 @@
+package com.shopizer.search.utils;
+
+import java.util.Map;
+
+import org.apache.commons.lang3.StringUtils;
+
+
+public class DynamicIndexNameUtil {
+
+ @SuppressWarnings("rawtypes")
+ public static String getIndexName(String name,Map indexData) {
+
+
+ if(name.startsWith("%") && name.endsWith("%")) {
+
+ String containedField = name.substring(1,name.length()-1);
+
+ String f = (String)indexData.get(containedField);
+ if(StringUtils.isBlank(f)) {
+
+ return name;
+ }
+ return f;
+ }
+
+
+ return name;
+
+ }
+
+}
diff --git a/sm-search/src/main/java/com/shopizer/search/utils/FileUtil.java b/sm-search/src/main/java/com/shopizer/search/utils/FileUtil.java
new file mode 100644
index 0000000..0addd82
--- /dev/null
+++ b/sm-search/src/main/java/com/shopizer/search/utils/FileUtil.java
@@ -0,0 +1,71 @@
+package com.shopizer.search.utils;
+
+import java.io.BufferedReader;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.Reader;
+
+public class FileUtil {
+
+
+ public static String readFileAsString(String fileName)
+ throws java.io.IOException{
+
+
+ InputStream is = null;
+ Reader r = null;
+
+ try {
+
+
+ is = FileUtil.class.getClassLoader().getResourceAsStream(fileName);
+
+ if(is==null) {
+ throw new java.io.IOException("File " + fileName + " not found");
+ }
+
+ InputStreamReader in =
+ new InputStreamReader(is
+ );
+
+
+ StringBuffer buffer = new StringBuffer();
+ r = new BufferedReader(in);
+ int ch;
+ while ((ch = r.read()) > -1) {
+ buffer.append((char)ch);
+ }
+ r.close();
+ return buffer.toString();
+
+ } finally {
+ if(r!=null) {
+ try {
+
+ } catch (Exception ignore) {}
+ }
+ if(is!=null) {
+ try {
+
+ } catch (Exception ignore) {}
+ }
+ }
+
+
+ //URL url = FileUtil.class.getResource(fileName);
+ //String fullyQualifiedFilename = url.getFile();
+
+/* BufferedReader reader = new BufferedReader(
+ new FileReader(fileName));
+
+ char[] buf = new char[1024];
+ int numRead=0;
+ while((numRead=reader.read(buf)) != -1){
+ fileData.append(buf, 0, numRead);
+ }
+ reader.close();
+ return fileData.toString();*/
+ }
+
+
+}
diff --git a/sm-search/src/main/java/com/shopizer/search/utils/IndexConfiguration.java b/sm-search/src/main/java/com/shopizer/search/utils/IndexConfiguration.java
new file mode 100644
index 0000000..b48c90a
--- /dev/null
+++ b/sm-search/src/main/java/com/shopizer/search/utils/IndexConfiguration.java
@@ -0,0 +1,40 @@
+package com.shopizer.search.utils;
+
+/**
+ * Configured from Spring
+ * @author Carl Samson
+ *
+ */
+public class IndexConfiguration {
+
+ private String collectionName;
+ private String mappingFileName;
+ private String settingsFileName;
+ public String getMappingFileName() {
+ return mappingFileName;
+ }
+ public void setMappingFileName(String mappingFileName) {
+ this.mappingFileName = mappingFileName;
+ }
+ public String getCollectionName() {
+ return collectionName;
+ }
+ public void setCollectionName(String collectionName) {
+ this.collectionName = collectionName;
+ }
+ public String getIndexName() {
+ return indexName;
+ }
+ public void setIndexName(String indexName) {
+ this.indexName = indexName;
+ }
+ public void setSettingsFileName(String settingsFileName) {
+ this.settingsFileName = settingsFileName;
+ }
+ public String getSettingsFileName() {
+ return settingsFileName;
+ }
+ private String indexName;
+
+
+}
diff --git a/sm-search/src/main/java/com/shopizer/search/utils/SearchClient.java b/sm-search/src/main/java/com/shopizer/search/utils/SearchClient.java
new file mode 100644
index 0000000..582da1d
--- /dev/null
+++ b/sm-search/src/main/java/com/shopizer/search/utils/SearchClient.java
@@ -0,0 +1,116 @@
+package com.shopizer.search.utils;
+
+
+
+import io.searchbox.client.JestClient;
+import io.searchbox.client.JestClientFactory;
+import io.searchbox.client.config.HttpClientConfig;
+
+import org.apache.commons.codec.binary.Base64;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.log4j.Logger;
+import org.elasticsearch.node.Node;
+
+
+
+/**
+ * Singleton
+ * @author Carl Samson
+ *
+ * Now using Jest elasticsearch client to query through http interface
+ *
+ * https://github.com/searchbox-io/Jest/tree/master/jest
+ *
+ */
+public class SearchClient {
+
+ private static Logger log = Logger.getLogger(SearchClient.class);
+
+
+ private JestClient client = null;
+ private Node node = null;
+ private boolean init = false;
+ private ServerConfiguration serverConfiguration = null;
+
+ private String authenticationHeader = null;
+
+ public ServerConfiguration getServerConfiguration() {
+ return serverConfiguration;
+ }
+
+ public void setServerConfiguration(ServerConfiguration serverConfiguration) {
+ this.serverConfiguration = serverConfiguration;
+ }
+
+ public JestClient getClient() {
+ if(!init) {
+ initClient();
+ }
+ return client;
+ }
+
+ public SearchClient() {
+
+
+ }
+
+
+
+ public void stopClient() {
+
+ if(node!=null) {
+ node.close();
+ }
+ }
+
+ private synchronized void initClient() {
+
+
+
+ if(client==null) {
+
+ try {
+
+
+ //host
+ //port
+ //proxy settings
+
+ StringBuilder host = new StringBuilder()
+ .append(getServerConfiguration().getClusterHost())
+ .append(":").append(getServerConfiguration().getClusterPort());
+
+ JestClientFactory factory = new JestClientFactory();
+ factory.setHttpClientConfig(new HttpClientConfig
+ .Builder(host.toString())
+ .multiThreaded(true)
+ .build());
+ client = factory.getObject();
+
+ if(!StringUtils.isBlank(getServerConfiguration().getProxyUser())
+ && !StringUtils.isBlank(getServerConfiguration().getProxyPassword())) {
+ setAuthenticationHeader("Basic " + new String(Base64.encodeBase64(String.format("%s:%s", getServerConfiguration().getProxyUser(), getServerConfiguration().getProxyPassword()).getBytes())));
+
+ }
+
+ log.debug("****** ES client ready ********");
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ }
+
+ }
+
+ public String getAuthenticationHeader() {
+ return authenticationHeader;
+ }
+
+ public void setAuthenticationHeader(String authenticationHeader) {
+ this.authenticationHeader = authenticationHeader;
+ }
+
+
+
+}
diff --git a/sm-search/src/main/java/com/shopizer/search/utils/ServerConfiguration.java b/sm-search/src/main/java/com/shopizer/search/utils/ServerConfiguration.java
new file mode 100644
index 0000000..93dbd56
--- /dev/null
+++ b/sm-search/src/main/java/com/shopizer/search/utils/ServerConfiguration.java
@@ -0,0 +1,65 @@
+package com.shopizer.search.utils;
+
+public class ServerConfiguration {
+
+
+ /** Configuration information **/
+ private String mode;
+ private String clusterHost;
+ private int clusterPort;
+ private String clusterName;
+ private String proxyUser;
+ private String proxyPassword;
+
+ public String getClusterName() {
+ return clusterName;
+ }
+
+ public void setClusterName(String clusterName) {
+ this.clusterName = clusterName;
+ }
+
+ public String getMode() {
+ return mode;
+ }
+
+ public void setMode(String mode) {
+ this.mode = mode;
+ }
+
+ public String getClusterHost() {
+ return clusterHost;
+ }
+
+ public void setClusterHost(String clusterHost) {
+ this.clusterHost = clusterHost;
+ }
+
+ public int getClusterPort() {
+ return clusterPort;
+ }
+
+ public void setClusterPort(int clusterPort) {
+ this.clusterPort = clusterPort;
+ }
+
+ public String getProxyUser() {
+ return proxyUser;
+ }
+
+ public void setProxyUser(String proxyUser) {
+ this.proxyUser = proxyUser;
+ }
+
+ public String getProxyPassword() {
+ return proxyPassword;
+ }
+
+ public void setProxyPassword(String proxyPassword) {
+ this.proxyPassword = proxyPassword;
+ }
+
+
+
+
+}
sm-search/src/main/resources/log4j.xml 45(+45 -0)
diff --git a/sm-search/src/main/resources/log4j.xml b/sm-search/src/main/resources/log4j.xml
new file mode 100644
index 0000000..1b3b1c5
--- /dev/null
+++ b/sm-search/src/main/resources/log4j.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE log4j:configuration PUBLIC "-//APACHE//DTD LOG4J 1.2//EN" "log4j.dtd">
+<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
+
+ <!-- Appenders -->
+ <appender name="console" class="org.apache.log4j.ConsoleAppender">
+ <param name="Target" value="System.out" />
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="%-5p: %c - %m%n" />
+ </layout>
+ </appender>
+
+ <!-- Application Loggers -->
+ <logger name="mytld.mycompany.myapp">
+ <level value="info" />
+ </logger>
+
+ <!-- 3rdparty Loggers -->
+ <logger name="org.springframework.core">
+ <level value="info" />
+ </logger>
+
+ <logger name="org.springframework.beans">
+ <level value="info" />
+ </logger>
+
+ <logger name="org.springframework.context">
+ <level value="info" />
+ </logger>
+
+ <logger name="org.springframework.web">
+ <level value="info" />
+ </logger>
+
+ <logger name="org.elasticsearch">
+ <level value="info" />
+ </logger>
+
+ <!-- Root Logger -->
+ <root>
+ <priority value="info" />
+ <appender-ref ref="console" />
+ </root>
+
+</log4j:configuration>
diff --git a/sm-search/src/test/java/com/shopizer/test/TestDelete.java b/sm-search/src/test/java/com/shopizer/test/TestDelete.java
new file mode 100644
index 0000000..d0a4abf
--- /dev/null
+++ b/sm-search/src/test/java/com/shopizer/test/TestDelete.java
@@ -0,0 +1,41 @@
+package com.shopizer.test;
+
+import javax.inject.Inject;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.TestExecutionListeners;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import org.springframework.test.context.support.DependencyInjectionTestExecutionListener;
+
+import com.shopizer.search.services.SearchService;
+
+
+@ContextConfiguration(locations = {
+ "classpath:spring/spring-context-test.xml"
+})
+@RunWith(SpringJUnit4ClassRunner.class)
+@TestExecutionListeners({
+ DependencyInjectionTestExecutionListener.class
+})
+
+/**
+ * @author carlsamson
+ */
+public class TestDelete {
+
+ @Inject
+ private SearchService searchService;
+
+ @Test
+ //@Ignore
+ public void testDelete() throws Exception {
+
+ searchService.deleteObject("product_en_default", "product_en", "1");
+
+ System.out.println("Done !");
+
+ }
+
+}
diff --git a/sm-search/src/test/java/com/shopizer/test/TestGet.java b/sm-search/src/test/java/com/shopizer/test/TestGet.java
new file mode 100644
index 0000000..5e3c43c
--- /dev/null
+++ b/sm-search/src/test/java/com/shopizer/test/TestGet.java
@@ -0,0 +1,61 @@
+package com.shopizer.test;
+
+import java.util.Map;
+
+import javax.inject.Inject;
+
+import org.junit.Ignore;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.TestExecutionListeners;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import org.springframework.test.context.support.DependencyInjectionTestExecutionListener;
+import org.springframework.util.Assert;
+
+import com.shopizer.search.services.GetResponse;
+import com.shopizer.search.services.SearchService;
+
+
+@ContextConfiguration(locations = {
+ "classpath:spring/spring-context-test.xml"
+})
+@RunWith(SpringJUnit4ClassRunner.class)
+@TestExecutionListeners({
+ DependencyInjectionTestExecutionListener.class
+})
+
+/**
+ * Get a specific id
+ * curl -XGET 'http://localhost:9200/product_en_default/product_en/1'
+ *
+ * @author carlsamson
+ *
+ */
+public class TestGet {
+
+ @Inject
+ private SearchService searchService;
+
+ @Test
+ //@Ignore
+ public void testGet() throws Exception {
+
+ /** requires to index at least a product first **/
+ GetResponse response = searchService.getObject("product_en_default", "product_en", "1");
+
+
+ Map<String, Object> fieldMap = response.getFieldMap();
+
+ Assert.notEmpty(fieldMap);
+
+ for(String key : fieldMap.keySet()) {
+ Object o = fieldMap.get(key);
+ System.out.println(key + " - " + o + " -- " + o.getClass());
+ }
+
+ System.out.println("Done !");
+
+ }
+
+}
diff --git a/sm-search/src/test/java/com/shopizer/test/TestIndex.java b/sm-search/src/test/java/com/shopizer/test/TestIndex.java
new file mode 100644
index 0000000..e301fc5
--- /dev/null
+++ b/sm-search/src/test/java/com/shopizer/test/TestIndex.java
@@ -0,0 +1,70 @@
+package com.shopizer.test;
+
+import javax.inject.Inject;
+
+import org.junit.Ignore;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.TestExecutionListeners;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import org.springframework.test.context.support.DependencyInjectionTestExecutionListener;
+
+import com.shopizer.search.services.SearchService;
+
+
+@ContextConfiguration(locations = {
+ "classpath:spring/spring-context-test.xml"
+})
+@RunWith(SpringJUnit4ClassRunner.class)
+@TestExecutionListeners({
+ DependencyInjectionTestExecutionListener.class
+})
+
+/**
+ * Test if the server is running
+ * curl -X GET 'http://localhost:9200'
+ *
+ * Test if an indice exists
+ * curl -XHEAD -i 'http://localhost:9200/product_en_default'
+ *
+ * Get index infos
+ * curl -XGET 'http://localhost:9200/product_en_default/'
+ *
+ * Get all indexed data
+ * curl -XGET 'http://localhost:9200/product_en_default/_search?pretty=1'
+ *
+ * @author carlsamson
+ *
+ */
+public class TestIndex {
+
+ @Inject
+ private SearchService searchService;
+
+ //@Test
+ @Ignore
+ public void testIndex() throws Exception {
+
+ //String jsonData = "{\"id\":\"1\",\"name\":\"Sac de plage en tissu recyclé M4858\",\"price\":\"45.99\",\"categories\":[\"sac\",\"accessoires\"],\"store\":\"default\",\"availability\":\"*\",\"available\":\"true\",\"lang\":\"fr\",\"description\":\"Sac de plage vintage en tissu et cuir recyclés\"}";
+ //String jsonData = "{\"id\":\"2\",\"name\":\"Étui pour IPAD\",\"price\":\"45.99\",\"categories\":[\"accessoires\"],\"store\":\"default\",\"availability\":\"*\",\"available\":\"true\",\"lang\":\"fr\",\"description\":\"i-pad et apple\"}";
+
+
+ //String jsonData = "{\"id\":\"5\",\"name\":\"Tête de bufle en os sculptée\",\"price\":\"145.99\",\"categories\":[\"accessoires\"],\"manufacturer\":[\"vintage\"],\"store\":\"default\",\"availability\":\"*\",\"available\":\"true\",\"lang\":\"fr\",\"description\":\"os sculpté\"}";
+ String jsonData = "{\"id\":\"6\",\"name\":\"Tête de cheval en os sculptée\",\"price\":\"195.99\",\"categories\":[\"accessoires\"],\"manufacturer\":[\"horse\"],\"store\":\"default\",\"availability\":\"*\",\"available\":\"true\",\"lang\":\"fr\",\"description\":\"oeuvre os sculpté\"}";
+
+
+ //String jsonData = "{\"id\":\"3\",\"name\":\"Coussin en tissu\",\"price\":\"75.99\",\"categories\":[\"accessoires\"],\"store\":\"default\",\"availability\":\"*\",\"available\":\"true\",\"lang\":\"fr\",\"description\":\"Coussin de tissu\"}";
+ //String jsonData = "{\"id\":\"4\",\"name\":\"Sac en cuir\",\"price\":\"99.99\",\"categories\":[\"accessoires\"],\"store\":\"default\",\"availability\":\"*\",\"available\":\"true\",\"lang\":\"fr\",\"description\":\"Sac en cuir\"}";
+ //String jsonData = "{\"id\":\"1\",\"name\":\"Spring in action\",\"price\":\"23.99\",\"categories\":[\"book\",\"technology\"],\"store\":\"default\",\"availability\":\"*\",\"available\":\"true\",\"lang\":\"en\",\"description\":\"Best spring book, covers Spring MVC and Spring security\", \"tags\":[\"Spring\",\"Security\",\"Spring MVC\",\"Web\"]}";
+ //String jsonData = "{\"id\":\"2\",\"name\":\"Citizen tech model silver watch\",\"price\":\"453.99\",\"categories\":[\"Men watches\"],\"store\":\"default\",\"availability\":\"*\",\"available\":\"true\",\"lang\":\"en\",\"description\":\"Silver watch 2012 model\", \"tags\":[\"Silver watch\",\"Liquidation\"]}";
+
+
+ //searchService.index(jsonData, "product_en_default", "product_en");
+ searchService.index(jsonData, "product_fr_default", "product_fr");
+
+ System.out.println("Done !");
+
+ }
+
+}
diff --git a/sm-search/src/test/java/com/shopizer/test/TestSearch.java b/sm-search/src/test/java/com/shopizer/test/TestSearch.java
new file mode 100644
index 0000000..22fe1bf
--- /dev/null
+++ b/sm-search/src/test/java/com/shopizer/test/TestSearch.java
@@ -0,0 +1,105 @@
+package com.shopizer.test;
+
+import javax.inject.Inject;
+
+import org.junit.Ignore;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.TestExecutionListeners;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import org.springframework.test.context.support.DependencyInjectionTestExecutionListener;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.shopizer.search.services.SearchRequest;
+import com.shopizer.search.services.SearchResponse;
+import com.shopizer.search.services.SearchService;
+
+/**
+ * search api
+ *
+ * Get all indexed data
+ * curl -XGET 'http://localhost:9200/product_en_default/_search?pretty=1'
+ *
+ * Search
+ * curl -XGET 'http://localhost:9200/product_en_default/_search' -d '{"query":{"query_string":{"fields" : ["name^5", "description", "tags"], "query" : "*spr*", "use_dis_max" : true }},"facets" : { "categories" : { "terms" : {"field" : "categories"}}}}'
+ *
+ *
+ *
+ * GET product_fr_default/_search
+ {
+
+ "query":{
+
+ "multi_match" : {
+ "query": "bufle",
+ "type": "best_fields",
+ "fields": [ "name^10", "description^1" ]
+ }
+
+ },
+ "aggregations": {
+ "categories": {
+ "terms": {"field": "categories"}
+ },
+ "manufacturer": {
+ "terms": {"field": "manufacturer"}
+ }
+ }
+ }
+ *
+ *
+ * @author carlsamson
+ *
+ */
+@ContextConfiguration(locations = {
+ "classpath:spring/spring-context-test.xml"
+})
+@RunWith(SpringJUnit4ClassRunner.class)
+@TestExecutionListeners({
+ DependencyInjectionTestExecutionListener.class,
+})
+
+
+public class TestSearch {
+
+ @Inject
+ private SearchService searchService;
+
+ //@Test
+ @Ignore
+ public void testSearch() throws Exception {
+
+ String facets = "\"aggregations\": {\"categories\": {\"terms\": {\"field\": \"categories\"}},\"manufacturer\": {\"terms\": {\"field\": \"manufacturer\"}}}";
+ //String facets = "\"facets\" : { \"categories\" : { \"terms\" : {\"field\" : \"categories\"}}}";
+
+ //String q ="{\"query\":{\"query_string\":{\"fields\" : [\"name^5\", \"description\", \"tags\"], \"query\" : \"*spr*\", \"use_dis_max\" : true }}";
+
+ String q ="{\"query\":{\"query_string\":{\"fields\" : [\"name^5\", \"description\", \"tags\"], \"query\" : \"bufle\", \"use_dis_max\" : true }}";
+
+
+ String query = q + "," + facets + "}";
+ //String query = q + "}";
+
+ System.out.println(query);
+
+ //String json ="{\"query\":{\"filtered\":{\"query\":{\"text\":{\"_all\":\"beach\"}},\"filter\":{\"numeric_range\":{\"age\":{\"from\":\"22\",\"to\":\"45\",\"include_lower\":true,\"include_upper\":true}}}}},\"highlight\":{\"fields\":{\"description\":{}}},\"facets\":{\"tags\":{\"terms\":{\"field\":\"tags\"}}}}";
+
+ SearchRequest request = new SearchRequest();
+ request.addCollection("product_fr_default");
+ request.setJson(query);
+ request.setSize(20);
+ request.setStart(0);
+
+
+
+ SearchResponse resp= searchService.search(request);
+
+ ObjectMapper mapper = new ObjectMapper();
+ String indexData = mapper.writeValueAsString(resp);
+ System.out.println(indexData);
+
+
+ }
+
+}
diff --git a/sm-search/src/test/java/com/shopizer/test/TestSearchKeywords.java b/sm-search/src/test/java/com/shopizer/test/TestSearchKeywords.java
new file mode 100644
index 0000000..8907bc3
--- /dev/null
+++ b/sm-search/src/test/java/com/shopizer/test/TestSearchKeywords.java
@@ -0,0 +1,67 @@
+package com.shopizer.test;
+
+import javax.inject.Inject;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.TestExecutionListeners;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import org.springframework.test.context.support.DependencyInjectionTestExecutionListener;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.shopizer.search.services.SearchResponse;
+import com.shopizer.search.services.SearchService;
+
+
+/**
+ * curl -X POST http://localhost:9200/keyword_en_default/_search?pretty=true -d '{"query": {"match": {"keyword": {"query": "spr","analyzer": "standard"}}}}'
+ *
+ * Get all indexed data
+ * curl -XGET 'http://localhost:9200/keyword_en_default/_search?pretty=1'
+ *
+ * Test if an indice exists
+ * curl -XHEAD -i 'http://localhost:9200/keyword_en_default'
+ *
+ * Get index infos
+ * curl -XGET 'http://localhost:9200/keyword_en_default/'
+ *
+ *
+ * @author carlsamson
+ *
+ */
+
+@ContextConfiguration(locations = {
+ "classpath:spring/spring-context-test.xml"
+})
+@RunWith(SpringJUnit4ClassRunner.class)
+@TestExecutionListeners({
+ DependencyInjectionTestExecutionListener.class,
+})
+
+
+public class TestSearchKeywords {
+
+ @Inject
+ private SearchService searchService;
+
+ @Test
+ //@Ignore
+ public void testSearchKeywords() throws Exception {
+
+
+ String json="{\"query\": {\"match\" : {\"keyword\" : {\"query\" : \"Étu\",\"analyzer\" : \"standard\"}}}}";
+
+
+ System.out.println(json);
+
+ SearchResponse resp= searchService.searchAutoComplete("keyword_fr_default",json,10);
+
+ ObjectMapper mapper = new ObjectMapper();
+ String indexData = mapper.writeValueAsString(resp);
+ System.out.println(indexData);
+
+
+ }
+
+}
diff --git a/sm-search/src/test/resources/.svn/all-wcprops b/sm-search/src/test/resources/.svn/all-wcprops
new file mode 100644
index 0000000..0367388
--- /dev/null
+++ b/sm-search/src/test/resources/.svn/all-wcprops
@@ -0,0 +1,5 @@
+K 25
+svn:wc:ra_dav:version-url
+V 54
+/!svn/ver/567/branches/v2/sm-search/src/test/resources
+END
sm-search/src/test/resources/.svn/entries 31(+31 -0)
diff --git a/sm-search/src/test/resources/.svn/entries b/sm-search/src/test/resources/.svn/entries
new file mode 100644
index 0000000..a930aeb
--- /dev/null
+++ b/sm-search/src/test/resources/.svn/entries
@@ -0,0 +1,31 @@
+10
+
+dir
+567
+http://svn.shopizer.com/branches/v2/sm-search/src/test/resources
+http://svn.shopizer.com
+
+
+
+2013-12-17T22:28:54.444873Z
+567
+carl777
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+e1ff5de0-4b61-491c-91a6-c2558b0baace
+
+spring
+dir
+
diff --git a/sm-search/src/test/resources/spring/.svn/all-wcprops b/sm-search/src/test/resources/spring/.svn/all-wcprops
new file mode 100644
index 0000000..45a2431
--- /dev/null
+++ b/sm-search/src/test/resources/spring/.svn/all-wcprops
@@ -0,0 +1,41 @@
+K 25
+svn:wc:ra_dav:version-url
+V 61
+/!svn/ver/567/branches/v2/sm-search/src/test/resources/spring
+END
+product_fr.json
+K 25
+svn:wc:ra_dav:version-url
+V 77
+/!svn/ver/567/branches/v2/sm-search/src/test/resources/spring/product_fr.json
+END
+settings_product_fr.json
+K 25
+svn:wc:ra_dav:version-url
+V 86
+/!svn/ver/567/branches/v2/sm-search/src/test/resources/spring/settings_product_fr.json
+END
+spring-context-test.xml
+K 25
+svn:wc:ra_dav:version-url
+V 85
+/!svn/ver/567/branches/v2/sm-search/src/test/resources/spring/spring-context-test.xml
+END
+shopizer-search.xml
+K 25
+svn:wc:ra_dav:version-url
+V 81
+/!svn/ver/567/branches/v2/sm-search/src/test/resources/spring/shopizer-search.xml
+END
+product.json
+K 25
+svn:wc:ra_dav:version-url
+V 74
+/!svn/ver/567/branches/v2/sm-search/src/test/resources/spring/product.json
+END
+settings_product.json
+K 25
+svn:wc:ra_dav:version-url
+V 83
+/!svn/ver/567/branches/v2/sm-search/src/test/resources/spring/settings_product.json
+END
sm-search/src/test/resources/spring/.svn/entries 232(+232 -0)
diff --git a/sm-search/src/test/resources/spring/.svn/entries b/sm-search/src/test/resources/spring/.svn/entries
new file mode 100644
index 0000000..a7a97b8
--- /dev/null
+++ b/sm-search/src/test/resources/spring/.svn/entries
@@ -0,0 +1,232 @@
+10
+
+dir
+567
+http://svn.shopizer.com/branches/v2/sm-search/src/test/resources/spring
+http://svn.shopizer.com
+
+
+
+2013-12-17T22:28:54.444873Z
+567
+carl777
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+e1ff5de0-4b61-491c-91a6-c2558b0baace
+
+settings_product_fr.json
+file
+
+
+
+
+2013-12-07T19:20:03.000000Z
+60182772b24f669fabfa7ae4cb8cfe05
+2013-12-17T22:28:54.444873Z
+567
+carl777
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+280
+
+product_fr.json
+file
+
+
+
+
+2013-12-07T19:22:30.000000Z
+5adce96f24e8cdae7d051a8e2df05a52
+2013-12-17T22:28:54.444873Z
+567
+carl777
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+760
+
+spring-context-test.xml
+file
+
+
+
+
+2013-10-22T23:18:52.000000Z
+13a38abd88b40ac5ce9df69faecf8ab5
+2013-12-17T22:28:54.444873Z
+567
+carl777
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1464
+
+shopizer-search.xml
+file
+
+
+
+
+2013-12-07T19:18:27.000000Z
+dd4fe1152dc56cb269098cd4f09acbec
+2013-12-17T22:28:54.444873Z
+567
+carl777
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+6170
+
+product.json
+file
+
+
+
+
+2013-12-07T19:22:11.000000Z
+a99fac5e2bfd56fbcb0ec8408fb642d6
+2013-12-17T22:28:54.444873Z
+567
+carl777
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+761
+
+settings_product.json
+file
+
+
+
+
+2013-12-07T19:24:04.000000Z
+60182772b24f669fabfa7ae4cb8cfe05
+2013-12-17T22:28:54.444873Z
+567
+carl777
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+280
+
diff --git a/sm-search/src/test/resources/spring/.svn/text-base/product.json.svn-base b/sm-search/src/test/resources/spring/.svn/text-base/product.json.svn-base
new file mode 100644
index 0000000..5dfd03b
--- /dev/null
+++ b/sm-search/src/test/resources/spring/.svn/text-base/product.json.svn-base
@@ -0,0 +1,14 @@
+{"product_en": {
+ "properties" : {
+ "name": {"type": "multi_field","fields": {"name_original":{"type":"string","index":"not_analyzed"},"name_searchable":{"type":"string","index":"analyzed","store":"no"}}},
+ "price" : {"type":"string","index":"not_analyzed"},
+ "categories" : {"type":"string","index":"not_analyzed"},
+ "lang" : {"type":"string","index":"not_analyzed"},
+ "store" : {"type":"string","index":"not_analyzed"},
+ "availability" : {"type":"string","index":"not_analyzed"},
+ "available" : {"type":"string","index":"not_analyzed"},
+ "description" : {"type":"string","index":"analyzed","index_analyzer": "english"},
+ "tags" : {"type":"string","index":"analyzed"}
+ }
+ }
+}
\ No newline at end of file
diff --git a/sm-search/src/test/resources/spring/.svn/text-base/product_fr.json.svn-base b/sm-search/src/test/resources/spring/.svn/text-base/product_fr.json.svn-base
new file mode 100644
index 0000000..a32a216
--- /dev/null
+++ b/sm-search/src/test/resources/spring/.svn/text-base/product_fr.json.svn-base
@@ -0,0 +1,14 @@
+{"product_fr": {
+ "properties" : {
+ "name": {"type": "multi_field","fields": {"name_original":{"type":"string","index":"not_analyzed"},"name_searchable":{"type":"string","index":"analyzed","store":"no"}}},
+ "price" : {"type":"string","index":"not_analyzed"},
+ "categories" : {"type":"string","index":"not_analyzed"},
+ "lang" : {"type":"string","index":"not_analyzed"},
+ "store" : {"type":"string","index":"not_analyzed"},
+ "availability" : {"type":"string","index":"not_analyzed"},
+ "available" : {"type":"string","index":"not_analyzed"},
+ "description" : {"type":"string","index":"analyzed","index_analyzer": "french"},
+ "tags" : {"type":"string","index":"analyzed"}
+ }
+ }
+}
\ No newline at end of file
diff --git a/sm-search/src/test/resources/spring/.svn/text-base/settings_product.json.svn-base b/sm-search/src/test/resources/spring/.svn/text-base/settings_product.json.svn-base
new file mode 100644
index 0000000..452a01e
--- /dev/null
+++ b/sm-search/src/test/resources/spring/.svn/text-base/settings_product.json.svn-base
@@ -0,0 +1,11 @@
+ {"index": {
+ "analysis": {
+ "analyzer": {
+ "custom_analyzer": {
+ "type": "snowball",
+ "language": "English"
+ }
+ }
+ }
+ }
+ }
\ No newline at end of file
diff --git a/sm-search/src/test/resources/spring/.svn/text-base/settings_product_fr.json.svn-base b/sm-search/src/test/resources/spring/.svn/text-base/settings_product_fr.json.svn-base
new file mode 100644
index 0000000..452a01e
--- /dev/null
+++ b/sm-search/src/test/resources/spring/.svn/text-base/settings_product_fr.json.svn-base
@@ -0,0 +1,11 @@
+ {"index": {
+ "analysis": {
+ "analyzer": {
+ "custom_analyzer": {
+ "type": "snowball",
+ "language": "English"
+ }
+ }
+ }
+ }
+ }
\ No newline at end of file
diff --git a/sm-search/src/test/resources/spring/.svn/text-base/shopizer-search.xml.svn-base b/sm-search/src/test/resources/spring/.svn/text-base/shopizer-search.xml.svn-base
new file mode 100644
index 0000000..f774a66
--- /dev/null
+++ b/sm-search/src/test/resources/spring/.svn/text-base/shopizer-search.xml.svn-base
@@ -0,0 +1,188 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
+
+ <!-- can have different search client for indexing & searching -->
+ <bean id="searchClient" class="com.shopizer.search.utils.SearchClient">
+ <property name="serverConfiguration">
+ <ref bean="serverConfiguration" />
+ </property>
+ </bean>
+
+ <!-- Server configuration -->
+ <bean id="serverConfiguration" class="com.shopizer.search.utils.ServerConfiguration">
+ <property name="clusterName" value="shopizer"/>
+ <!-- local (embedded version, will create new indexes in the working directory) or remote (requires existing server) -->
+ <property name="mode" value="remote"/>
+ <!-- those properties are used when configured for remote -->
+ <property name="clusterHost" value="127.0.0.1"/>
+ <property name="clusterPort" value="9300"/>
+ </bean>
+
+
+
+ <bean id="searchDelegate" class="com.shopizer.search.services.impl.SearchDelegateImpl">
+ <property name="searchClient">
+ <ref bean="searchClient" />
+ </property>
+ </bean>
+
+ <!-- Main service -->
+ <bean id="searchService" class="com.shopizer.search.services.SearchService"></bean>
+
+
+ <!--
+ Flow definitions for indexing and searching
+ -->
+
+
+ <bean id="searchWorkflow" class="com.shopizer.search.services.workflow.SearchWorkflow">
+ <property name="searchFlow">
+ <list>
+ <bean id="search" class="com.shopizer.search.services.worker.SearchWorkerImpl"/>
+ </list>
+ </property>
+ <property name="searchKeywordWorkflow">
+ <list>
+ <bean id="searchKeyword" class="com.shopizer.search.services.worker.KeywordSearchWorkerImpl"/>
+ </list>
+ </property>
+ <property name="searchClient">
+ <ref bean="searchClient" />
+ </property>
+ </bean>
+
+ <bean id="indexWorkflow" class="com.shopizer.search.services.workflow.IndexWorkflow">
+ <property name="indexWorkflow">
+ <list>
+ <ref bean="index" />
+ <ref bean="keyword" />
+ </list>
+ </property>
+ <property name="searchClient">
+ <ref bean="searchClient" />
+ </property>
+ </bean>
+
+ <bean id="deleteWorkflow" class="com.shopizer.search.services.workflow.DeleteObjectWorkflow">
+ <property name="deleteObjectWorkflow">
+ <list>
+ <bean id="deleteObject" class="com.shopizer.search.services.worker.DeleteObjectImpl"/>
+ <ref bean="deleteKeywords" />
+ </list>
+ </property>
+ <property name="searchClient">
+ <ref bean="searchClient" />
+ </property>
+ </bean>
+
+
+ <bean id="getWorkflow" class="com.shopizer.search.services.workflow.GetWorkflow">
+ <property name="searchClient">
+ <ref bean="searchClient" />
+ </property>
+ </bean>
+
+ <bean id="deleteKeywords" class="com.shopizer.search.services.worker.DeleteKeywordsImpl">
+ <property name="indexConfigurations">
+ <list>
+ <ref bean="keywordindex_en" />
+ <ref bean="keywordindex_fr" />
+ </list>
+ </property>
+ </bean>
+
+ <bean id="index" class="com.shopizer.search.services.worker.ObjectIndexerImpl">
+ <property name="indexConfigurations">
+ <list>
+ <ref bean="productindex_en_defaultstore" />
+ <ref bean="productindex_fr_defaultstore" />
+ </list>
+ </property>
+ </bean>
+
+
+
+ <!-- The presence of those properties will allow the creation of mapping files -->
+ <bean id="productindex_en_defaultstore" class="com.shopizer.search.utils.IndexConfiguration">
+ <property name="collectionName" value="product_en_default"/>
+ <property name="indexName" value="product_en"/>
+ <property name="mappingFileName" value="spring/product.json"/>
+ <!-- not necessary, only to define index and search rules -->
+ <property name="settingsFileName" value="spring/settings_product.json"/>
+ </bean>
+
+ <bean id="productindex_fr_defaultstore" class="com.shopizer.search.utils.IndexConfiguration">
+ <property name="collectionName" value="product_fr_default"/>
+ <property name="indexName" value="product_fr"/>
+ <property name="mappingFileName" value="spring/product_fr.json"/>
+ <!-- not necessary, only to define index and search rules -->
+ <property name="settingsFileName" value="spring/settings_product_fr.json"/>
+ </bean>
+
+ <bean id="keyword" class="com.shopizer.search.services.worker.KeywordIndexerImpl">
+ <property name="indexConfigurations">
+ <list>
+ <ref bean="keywordindex_en" />
+ <ref bean="keywordindex_fr" />
+ </list>
+ </property>
+ </bean>
+
+ <bean id="keywordindex_en" class="com.shopizer.search.utils.CustomIndexConfiguration">
+ <property name="collectionName" value="keyword_en_%store%"/>
+ <property name="createOnIndexName" value="product_en"/>
+ <property name="fields">
+ <list>
+ <ref bean="field1" />
+ <ref bean="field2" />
+ </list>
+ </property>
+ <!-- NO FILTERS
+ <property name="filters">
+ <list>
+ <ref bean="filter1" />
+ </list>
+ </property>
+ -->
+ </bean>
+
+
+ <bean id="keywordindex_fr" class="com.shopizer.search.utils.CustomIndexConfiguration">
+ <property name="collectionName" value="keyword_fr_%store%"/>
+ <property name="createOnIndexName" value="product_fr"/>
+ <property name="fields">
+ <list>
+ <ref bean="field1" />
+ <ref bean="field2" />
+ </list>
+ </property>
+ <!-- NO FILTERS
+ <property name="filters">
+ <list>
+ <ref bean="filter1" />
+ </list>
+ </property>
+ -->
+ </bean>
+
+
+ <!-- supported field types List, Integer, Double, Boolean, String -->
+ <bean id="field1" class="com.shopizer.search.utils.CustomIndexFieldConfiguration">
+ <property name="fieldName" value="tags"/>
+ <property name="fieldType" value="List"/>
+ </bean>
+ <bean id="field2" class="com.shopizer.search.utils.CustomIndexFieldConfiguration">
+ <property name="fieldName" value="name"/>
+ <property name="fieldType" value="String"/>
+ </bean>
+ <!--
+ <bean id="filter1" class="com.shopizer.search.utils.CustomIndexFieldConfiguration">
+ <property name="fieldName" value="price"/>
+ <property name="fieldType" value="Double"/>
+ </bean>
+ -->
+
+</beans>
\ No newline at end of file
diff --git a/sm-search/src/test/resources/spring/.svn/text-base/spring-context-test.xml.svn-base b/sm-search/src/test/resources/spring/.svn/text-base/spring-context-test.xml.svn-base
new file mode 100644
index 0000000..3a2f00e
--- /dev/null
+++ b/sm-search/src/test/resources/spring/.svn/text-base/spring-context-test.xml.svn-base
@@ -0,0 +1,21 @@
+<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:aop="http://www.springframework.org/schema/aop"
+ xmlns:context="http://www.springframework.org/schema/context" xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:task="http://www.springframework.org/schema/task"
+ xmlns:util="http://www.springframework.org/schema/util"
+ xsi:schemaLocation="
+ http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+ http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+ http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
+ http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.0.xsd
+ http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
+ http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.0.xsd
+ http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd">
+
+ <context:annotation-config />
+ <context:component-scan base-package="com.shopizer" />
+
+
+ <!-- search -->
+ <import resource="classpath:/spring/shopizer-search.xml" />
+
+
+</beans>
\ No newline at end of file
diff --git a/sm-search/src/test/resources/spring/keyword.json b/sm-search/src/test/resources/spring/keyword.json
new file mode 100644
index 0000000..4dd1fdc
--- /dev/null
+++ b/sm-search/src/test/resources/spring/keyword.json
@@ -0,0 +1,11 @@
+{
+ "keyword_en": {
+ "properties": {
+ "keyword": {
+ "type": "string",
+ "analyzer": "autocomplete",
+ "search_analyzer": "standard"
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/sm-search/src/test/resources/spring/keyword_fr.json b/sm-search/src/test/resources/spring/keyword_fr.json
new file mode 100644
index 0000000..a03b835
--- /dev/null
+++ b/sm-search/src/test/resources/spring/keyword_fr.json
@@ -0,0 +1,11 @@
+{
+ "keyword_fr": {
+ "properties": {
+ "keyword": {
+ "type": "string",
+ "analyzer": "autocomplete",
+ "search_analyzer": "standard"
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/sm-search/src/test/resources/spring/product.json b/sm-search/src/test/resources/spring/product.json
new file mode 100644
index 0000000..7a70cfc
--- /dev/null
+++ b/sm-search/src/test/resources/spring/product.json
@@ -0,0 +1,15 @@
+{"product_en": {
+ "properties" : {
+ "name": {"type": "String","analyzer":"folding_en"},
+ "price" : {"type":"String","index":"not_analyzed"},
+ "categories" : {"type":"String","index":"not_analyzed"},
+ "manufacturer" : {"type":"String","index":"not_analyzed"},
+ "lang" : {"type":"String","index":"not_analyzed"},
+ "store" : {"type":"String","index":"not_analyzed"},
+ "availability" : {"type":"String","index":"not_analyzed"},
+ "available" : {"type":"String","index":"not_analyzed"},
+ "description" : {"type":"String","analyzer":"folding_en"},
+ "tags" : {"type":"String","analyzer":"folding_en"}
+ }
+ }
+}
\ No newline at end of file
diff --git a/sm-search/src/test/resources/spring/product_fr.json b/sm-search/src/test/resources/spring/product_fr.json
new file mode 100644
index 0000000..da1b86a
--- /dev/null
+++ b/sm-search/src/test/resources/spring/product_fr.json
@@ -0,0 +1,15 @@
+{"product_fr": {
+ "properties" : {
+ "name": {"type": "String","analyzer":"folding_fr"},
+ "price" : {"type":"String","index":"not_analyzed"},
+ "categories" : {"type":"String","index":"not_analyzed"},
+ "manufacturer" : {"type":"String","index":"not_analyzed"},
+ "lang" : {"type":"String","index":"not_analyzed"},
+ "store" : {"type":"String","index":"not_analyzed"},
+ "availability" : {"type":"String","index":"not_analyzed"},
+ "available" : {"type":"String","index":"not_analyzed"},
+ "description" : {"type":"String","analyzer":"folding_fr"},
+ "tags" : {"type":"String","analyzer":"folding_fr"}
+ }
+ }
+}
\ No newline at end of file
diff --git a/sm-search/src/test/resources/spring/settings_keyword.json b/sm-search/src/test/resources/spring/settings_keyword.json
new file mode 100644
index 0000000..3d8750e
--- /dev/null
+++ b/sm-search/src/test/resources/spring/settings_keyword.json
@@ -0,0 +1,22 @@
+ {
+ "analysis": {
+ "filter": {
+ "autocomplete_filter": {
+ "type": "edge_ngram",
+ "min_gram": 1,
+ "max_gram": 20
+ }
+ },
+ "analyzer": {
+ "autocomplete": {
+ "type": "custom",
+ "tokenizer": "standard",
+ "filter": [
+ "lowercase",
+ "asciifolding",
+ "autocomplete_filter"
+ ]
+ }
+ }
+ }
+ }
\ No newline at end of file
diff --git a/sm-search/src/test/resources/spring/settings_keyword_fr.json b/sm-search/src/test/resources/spring/settings_keyword_fr.json
new file mode 100644
index 0000000..3d8750e
--- /dev/null
+++ b/sm-search/src/test/resources/spring/settings_keyword_fr.json
@@ -0,0 +1,22 @@
+ {
+ "analysis": {
+ "filter": {
+ "autocomplete_filter": {
+ "type": "edge_ngram",
+ "min_gram": 1,
+ "max_gram": 20
+ }
+ },
+ "analyzer": {
+ "autocomplete": {
+ "type": "custom",
+ "tokenizer": "standard",
+ "filter": [
+ "lowercase",
+ "asciifolding",
+ "autocomplete_filter"
+ ]
+ }
+ }
+ }
+ }
\ No newline at end of file
diff --git a/sm-search/src/test/resources/spring/settings_product.json b/sm-search/src/test/resources/spring/settings_product.json
new file mode 100644
index 0000000..14dc17e
--- /dev/null
+++ b/sm-search/src/test/resources/spring/settings_product.json
@@ -0,0 +1,12 @@
+{
+ "index": {
+ "analysis": {
+ "analyzer": {
+ "folding_en": {
+ "tokenizer": "standard",
+ "filter": [ "lowercase", "asciifolding", "stop" ]
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/sm-search/src/test/resources/spring/settings_product_fr.json b/sm-search/src/test/resources/spring/settings_product_fr.json
new file mode 100644
index 0000000..56baf0b
--- /dev/null
+++ b/sm-search/src/test/resources/spring/settings_product_fr.json
@@ -0,0 +1,37 @@
+{
+ "index": {
+ "analysis": {
+ "filter": {
+ "french_elision": {
+ "type":"elision",
+ "articles_case": true,
+ "articles": [
+ "l", "m", "t", "qu", "n", "s",
+ "j", "d", "c", "jusqu", "quoiqu",
+ "lorsqu", "puisqu"
+ ]
+ },
+ "french_stop": {
+ "type": "stop",
+ "stopwords": "_french_"
+ },
+ "french_stemmer": {
+ "type": "stemmer",
+ "language": "light_french"
+ }
+ },
+ "analyzer": {
+ "folding_fr": {
+ "tokenizer": "standard",
+ "filter": [
+ "lowercase",
+ "asciifolding",
+ "french_elision",
+ "french_stop",
+ "french_stemmer"
+ ]
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/sm-search/src/test/resources/spring/settings_product_fr.json.bak b/sm-search/src/test/resources/spring/settings_product_fr.json.bak
new file mode 100644
index 0000000..574e3f1
--- /dev/null
+++ b/sm-search/src/test/resources/spring/settings_product_fr.json.bak
@@ -0,0 +1,12 @@
+{
+ "index": {
+ "analysis": {
+ "analyzer": {
+ "folding_fr": {
+ "tokenizer": "standard",
+ "filter": [ "lowercase", "asciifolding", "stop" ]
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/sm-search/src/test/resources/spring/shopizer-search.xml b/sm-search/src/test/resources/spring/shopizer-search.xml
new file mode 100644
index 0000000..8859040
--- /dev/null
+++ b/sm-search/src/test/resources/spring/shopizer-search.xml
@@ -0,0 +1,206 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:util="http://www.springframework.org/schema/util"
+ xsi:schemaLocation="
+ http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+ http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd
+ ">
+
+ <!-- can have different search client for indexing & searching -->
+ <bean id="searchClient" class="com.shopizer.search.utils.SearchClient">
+ <property name="serverConfiguration">
+ <ref bean="serverConfiguration" />
+ </property>
+ </bean>
+
+ <!-- Server configuration -->
+ <bean id="serverConfiguration" class="com.shopizer.search.utils.ServerConfiguration">
+ <property name="clusterName" value="shopizer"/>
+ <!-- local (embedded version, will create new indexes in the working directory) or remote (requires existing server) -->
+ <property name="mode" value="remote"/>
+ <!-- those properties are used when configured for remote -->
+ <property name="clusterHost" value="http://localhost"/>
+ <property name="clusterPort" value="9200"/>
+
+ <property name="proxyUser" value=""/>
+ <property name="proxyPassword" value=""/>
+ </bean>
+
+ <util:list id="facetTermsList" value-type="java.lang.String">
+ <value>categories</value>
+ <value>manufacturer</value>
+ </util:list>
+
+
+
+ <bean id="searchDelegate" class="com.shopizer.search.services.impl.SearchDelegateImpl">
+ <property name="searchClient">
+ <ref bean="searchClient" />
+ </property>
+ </bean>
+
+ <!-- Main service -->
+ <bean id="searchService" class="com.shopizer.search.services.SearchService"></bean>
+
+
+ <!--
+ Flow definitions for indexing and searching
+ -->
+
+
+ <bean id="searchWorkflow" class="com.shopizer.search.services.workflow.SearchWorkflow">
+ <property name="searchFlow">
+ <list>
+ <bean id="search" class="com.shopizer.search.services.worker.SearchWorkerImpl"/>
+ </list>
+ </property>
+ <property name="searchKeywordWorkflow">
+ <list>
+ <bean id="searchKeyword" class="com.shopizer.search.services.worker.KeywordSearchWorkerImpl"/>
+ </list>
+ </property>
+ <property name="searchClient">
+ <ref bean="searchClient" />
+ </property>
+ </bean>
+
+ <bean id="indexWorkflow" class="com.shopizer.search.services.workflow.IndexWorkflow">
+ <property name="indexWorkflow">
+ <list>
+ <ref bean="index" />
+ <ref bean="keyword" />
+ </list>
+ </property>
+ <property name="searchClient">
+ <ref bean="searchClient" />
+ </property>
+ </bean>
+
+ <bean id="deleteWorkflow" class="com.shopizer.search.services.workflow.DeleteObjectWorkflow">
+ <property name="deleteObjectWorkflow">
+ <list>
+ <bean id="deleteObject" class="com.shopizer.search.services.worker.DeleteObjectImpl"/>
+ <ref bean="deleteKeywords" />
+ </list>
+ </property>
+ <property name="searchClient">
+ <ref bean="searchClient" />
+ </property>
+ </bean>
+
+
+ <bean id="getWorkflow" class="com.shopizer.search.services.workflow.GetWorkflow">
+ <property name="searchClient">
+ <ref bean="searchClient" />
+ </property>
+ </bean>
+
+ <bean id="deleteKeywords" class="com.shopizer.search.services.worker.DeleteKeywordsImpl">
+ <property name="indexConfigurations">
+ <list>
+ <ref bean="keywordindex_en_defaultstore" />
+ <ref bean="keywordindex_fr_defaultstore" />
+ </list>
+ </property>
+ </bean>
+
+ <bean id="index" class="com.shopizer.search.services.worker.ObjectIndexerImpl">
+ <property name="indexConfigurations">
+ <list>
+ <ref bean="productindex_en_defaultstore" />
+ <ref bean="productindex_fr_defaultstore" />
+ </list>
+ </property>
+ </bean>
+
+
+
+ <!-- The presence of those properties will allow the creation of mapping files -->
+ <bean id="productindex_en_defaultstore" class="com.shopizer.search.utils.IndexConfiguration">
+ <property name="collectionName" value="product_en_default"/>
+ <property name="indexName" value="product_en"/>
+ <property name="mappingFileName" value="spring/product.json"/>
+ <!-- not necessary, only to define index and search rules -->
+ <property name="settingsFileName" value="spring/settings_product.json"/>
+ </bean>
+
+ <bean id="productindex_fr_defaultstore" class="com.shopizer.search.utils.IndexConfiguration">
+ <property name="collectionName" value="product_fr_default"/>
+ <property name="indexName" value="product_fr"/>
+ <property name="mappingFileName" value="spring/product_fr.json"/>
+ <!-- not necessary, only to define index and search rules -->
+ <property name="settingsFileName" value="spring/settings_product_fr.json"/>
+ </bean>
+
+ <bean id="keyword" class="com.shopizer.search.services.worker.KeywordIndexerImpl">
+ <property name="indexConfigurations">
+ <list>
+ <ref bean="keywordindex_en_defaultstore" />
+ <ref bean="keywordindex_fr_defaultstore" />
+ </list>
+ </property>
+ </bean>
+
+ <bean id="keywordindex_en_defaultstore" class="com.shopizer.search.utils.CustomIndexConfiguration">
+ <property name="collectionName" value="keyword_en_default"/>
+ <property name="indexName" value="keyword_en"/>
+ <property name="createOnIndexName" value="product_en"/>
+ <property name="mappingFileName" value="spring/keyword.json"/>
+ <property name="settingsFileName" value="spring/settings_keyword.json"/>
+ <property name="fields">
+ <list>
+ <ref bean="field1" />
+ <ref bean="field2" />
+ </list>
+ </property>
+ <!-- NO FILTERS
+ <property name="filters">
+ <list>
+ <ref bean="filter1" />
+ </list>
+ </property>
+ -->
+ </bean>
+
+
+ <bean id="keywordindex_fr_defaultstore" class="com.shopizer.search.utils.CustomIndexConfiguration">
+ <property name="collectionName" value="keyword_fr_default"/>
+ <property name="indexName" value="keyword_fr"/>
+ <property name="createOnIndexName" value="product_fr"/>
+ <property name="mappingFileName" value="spring/keyword_fr.json"/>
+ <property name="settingsFileName" value="spring/settings_keyword.json"/>
+ <property name="fields">
+ <list>
+ <ref bean="field1" />
+ <ref bean="field2" />
+ </list>
+ </property>
+ <!-- NO FILTERS
+ <property name="filters">
+ <list>
+ <ref bean="filter1" />
+ </list>
+ </property>
+ -->
+ </bean>
+
+
+ <!-- supported field types List, Integer, Double, Boolean, String -->
+ <bean id="field1" class="com.shopizer.search.utils.CustomIndexFieldConfiguration">
+ <property name="fieldName" value="tags"/>
+ <property name="fieldType" value="List"/>
+ </bean>
+ <bean id="field2" class="com.shopizer.search.utils.CustomIndexFieldConfiguration">
+ <property name="fieldName" value="name"/>
+ <property name="fieldType" value="String"/>
+ </bean>
+ <!--
+ <bean id="filter1" class="com.shopizer.search.utils.CustomIndexFieldConfiguration">
+ <property name="fieldName" value="price"/>
+ <property name="fieldType" value="Double"/>
+ </bean>
+ -->
+
+</beans>
\ No newline at end of file
diff --git a/sm-search/src/test/resources/spring/spring-context-test.xml b/sm-search/src/test/resources/spring/spring-context-test.xml
new file mode 100644
index 0000000..3a2f00e
--- /dev/null
+++ b/sm-search/src/test/resources/spring/spring-context-test.xml
@@ -0,0 +1,21 @@
+<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:aop="http://www.springframework.org/schema/aop"
+ xmlns:context="http://www.springframework.org/schema/context" xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:task="http://www.springframework.org/schema/task"
+ xmlns:util="http://www.springframework.org/schema/util"
+ xsi:schemaLocation="
+ http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+ http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+ http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
+ http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.0.xsd
+ http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
+ http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.0.xsd
+ http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd">
+
+ <context:annotation-config />
+ <context:component-scan base-package="com.shopizer" />
+
+
+ <!-- search -->
+ <import resource="classpath:/spring/shopizer-search.xml" />
+
+
+</beans>
\ No newline at end of file
diff --git a/sm-search/target/classes/com/shopizer/search/services/Entry.class b/sm-search/target/classes/com/shopizer/search/services/Entry.class
new file mode 100644
index 0000000..156b462
Binary files /dev/null and b/sm-search/target/classes/com/shopizer/search/services/Entry.class differ
diff --git a/sm-search/target/classes/com/shopizer/search/services/FacetEntry.class b/sm-search/target/classes/com/shopizer/search/services/FacetEntry.class
new file mode 100644
index 0000000..e429ab4
Binary files /dev/null and b/sm-search/target/classes/com/shopizer/search/services/FacetEntry.class differ
diff --git a/sm-search/target/classes/com/shopizer/search/services/field/BooleanField.class b/sm-search/target/classes/com/shopizer/search/services/field/BooleanField.class
new file mode 100644
index 0000000..8a5b6a6
Binary files /dev/null and b/sm-search/target/classes/com/shopizer/search/services/field/BooleanField.class differ
diff --git a/sm-search/target/classes/com/shopizer/search/services/field/DateField.class b/sm-search/target/classes/com/shopizer/search/services/field/DateField.class
new file mode 100644
index 0000000..4eba9b0
Binary files /dev/null and b/sm-search/target/classes/com/shopizer/search/services/field/DateField.class differ
diff --git a/sm-search/target/classes/com/shopizer/search/services/field/DoubleField.class b/sm-search/target/classes/com/shopizer/search/services/field/DoubleField.class
new file mode 100644
index 0000000..bdeecd3
Binary files /dev/null and b/sm-search/target/classes/com/shopizer/search/services/field/DoubleField.class differ
diff --git a/sm-search/target/classes/com/shopizer/search/services/field/Field.class b/sm-search/target/classes/com/shopizer/search/services/field/Field.class
new file mode 100644
index 0000000..eb75ce8
Binary files /dev/null and b/sm-search/target/classes/com/shopizer/search/services/field/Field.class differ
diff --git a/sm-search/target/classes/com/shopizer/search/services/field/IntegerField.class b/sm-search/target/classes/com/shopizer/search/services/field/IntegerField.class
new file mode 100644
index 0000000..c1a4777
Binary files /dev/null and b/sm-search/target/classes/com/shopizer/search/services/field/IntegerField.class differ
diff --git a/sm-search/target/classes/com/shopizer/search/services/field/ListField.class b/sm-search/target/classes/com/shopizer/search/services/field/ListField.class
new file mode 100644
index 0000000..b736d4a
Binary files /dev/null and b/sm-search/target/classes/com/shopizer/search/services/field/ListField.class differ
diff --git a/sm-search/target/classes/com/shopizer/search/services/field/LongField.class b/sm-search/target/classes/com/shopizer/search/services/field/LongField.class
new file mode 100644
index 0000000..11b785f
Binary files /dev/null and b/sm-search/target/classes/com/shopizer/search/services/field/LongField.class differ
diff --git a/sm-search/target/classes/com/shopizer/search/services/field/StringField.class b/sm-search/target/classes/com/shopizer/search/services/field/StringField.class
new file mode 100644
index 0000000..667bc18
Binary files /dev/null and b/sm-search/target/classes/com/shopizer/search/services/field/StringField.class differ
diff --git a/sm-search/target/classes/com/shopizer/search/services/GetResponse.class b/sm-search/target/classes/com/shopizer/search/services/GetResponse.class
new file mode 100644
index 0000000..a07e6c6
Binary files /dev/null and b/sm-search/target/classes/com/shopizer/search/services/GetResponse.class differ
diff --git a/sm-search/target/classes/com/shopizer/search/services/impl/SearchDelegate.class b/sm-search/target/classes/com/shopizer/search/services/impl/SearchDelegate.class
new file mode 100644
index 0000000..72f9436
Binary files /dev/null and b/sm-search/target/classes/com/shopizer/search/services/impl/SearchDelegate.class differ
diff --git a/sm-search/target/classes/com/shopizer/search/services/impl/SearchDelegateImpl.class b/sm-search/target/classes/com/shopizer/search/services/impl/SearchDelegateImpl.class
new file mode 100644
index 0000000..600c1bc
Binary files /dev/null and b/sm-search/target/classes/com/shopizer/search/services/impl/SearchDelegateImpl.class differ
diff --git a/sm-search/target/classes/com/shopizer/search/services/IndexKeywordRequest.class b/sm-search/target/classes/com/shopizer/search/services/IndexKeywordRequest.class
new file mode 100644
index 0000000..92a1a85
Binary files /dev/null and b/sm-search/target/classes/com/shopizer/search/services/IndexKeywordRequest.class differ
diff --git a/sm-search/target/classes/com/shopizer/search/services/SearchField.class b/sm-search/target/classes/com/shopizer/search/services/SearchField.class
new file mode 100644
index 0000000..6d1adf1
Binary files /dev/null and b/sm-search/target/classes/com/shopizer/search/services/SearchField.class differ
diff --git a/sm-search/target/classes/com/shopizer/search/services/SearchHit.class b/sm-search/target/classes/com/shopizer/search/services/SearchHit.class
new file mode 100644
index 0000000..acb3743
Binary files /dev/null and b/sm-search/target/classes/com/shopizer/search/services/SearchHit.class differ
diff --git a/sm-search/target/classes/com/shopizer/search/services/SearchRequest.class b/sm-search/target/classes/com/shopizer/search/services/SearchRequest.class
new file mode 100644
index 0000000..687b178
Binary files /dev/null and b/sm-search/target/classes/com/shopizer/search/services/SearchRequest.class differ
diff --git a/sm-search/target/classes/com/shopizer/search/services/SearchResponse.class b/sm-search/target/classes/com/shopizer/search/services/SearchResponse.class
new file mode 100644
index 0000000..bc7841a
Binary files /dev/null and b/sm-search/target/classes/com/shopizer/search/services/SearchResponse.class differ
diff --git a/sm-search/target/classes/com/shopizer/search/services/SearchService.class b/sm-search/target/classes/com/shopizer/search/services/SearchService.class
new file mode 100644
index 0000000..e985dcf
Binary files /dev/null and b/sm-search/target/classes/com/shopizer/search/services/SearchService.class differ
diff --git a/sm-search/target/classes/com/shopizer/search/services/worker/DeleteKeywordsImpl.class b/sm-search/target/classes/com/shopizer/search/services/worker/DeleteKeywordsImpl.class
new file mode 100644
index 0000000..830572d
Binary files /dev/null and b/sm-search/target/classes/com/shopizer/search/services/worker/DeleteKeywordsImpl.class differ
diff --git a/sm-search/target/classes/com/shopizer/search/services/worker/DeleteObjectImpl.class b/sm-search/target/classes/com/shopizer/search/services/worker/DeleteObjectImpl.class
new file mode 100644
index 0000000..0208099
Binary files /dev/null and b/sm-search/target/classes/com/shopizer/search/services/worker/DeleteObjectImpl.class differ
diff --git a/sm-search/target/classes/com/shopizer/search/services/worker/DeleteObjectWorker.class b/sm-search/target/classes/com/shopizer/search/services/worker/DeleteObjectWorker.class
new file mode 100644
index 0000000..d9678b1
Binary files /dev/null and b/sm-search/target/classes/com/shopizer/search/services/worker/DeleteObjectWorker.class differ
diff --git a/sm-search/target/classes/com/shopizer/search/services/worker/ExecutionContext.class b/sm-search/target/classes/com/shopizer/search/services/worker/ExecutionContext.class
new file mode 100644
index 0000000..cdc2030
Binary files /dev/null and b/sm-search/target/classes/com/shopizer/search/services/worker/ExecutionContext.class differ
diff --git a/sm-search/target/classes/com/shopizer/search/services/worker/IndexWorker.class b/sm-search/target/classes/com/shopizer/search/services/worker/IndexWorker.class
new file mode 100644
index 0000000..37d7aba
Binary files /dev/null and b/sm-search/target/classes/com/shopizer/search/services/worker/IndexWorker.class differ
diff --git a/sm-search/target/classes/com/shopizer/search/services/worker/KeywordIndexerImpl.class b/sm-search/target/classes/com/shopizer/search/services/worker/KeywordIndexerImpl.class
new file mode 100644
index 0000000..bace423
Binary files /dev/null and b/sm-search/target/classes/com/shopizer/search/services/worker/KeywordIndexerImpl.class differ
diff --git a/sm-search/target/classes/com/shopizer/search/services/worker/KeywordSearchWorker.class b/sm-search/target/classes/com/shopizer/search/services/worker/KeywordSearchWorker.class
new file mode 100644
index 0000000..22f5278
Binary files /dev/null and b/sm-search/target/classes/com/shopizer/search/services/worker/KeywordSearchWorker.class differ
diff --git a/sm-search/target/classes/com/shopizer/search/services/worker/KeywordSearchWorkerImpl.class b/sm-search/target/classes/com/shopizer/search/services/worker/KeywordSearchWorkerImpl.class
new file mode 100644
index 0000000..b2e3679
Binary files /dev/null and b/sm-search/target/classes/com/shopizer/search/services/worker/KeywordSearchWorkerImpl.class differ
diff --git a/sm-search/target/classes/com/shopizer/search/services/worker/ObjectIndexerImpl.class b/sm-search/target/classes/com/shopizer/search/services/worker/ObjectIndexerImpl.class
new file mode 100644
index 0000000..414bffd
Binary files /dev/null and b/sm-search/target/classes/com/shopizer/search/services/worker/ObjectIndexerImpl.class differ
diff --git a/sm-search/target/classes/com/shopizer/search/services/worker/SearchWorker.class b/sm-search/target/classes/com/shopizer/search/services/worker/SearchWorker.class
new file mode 100644
index 0000000..52f2195
Binary files /dev/null and b/sm-search/target/classes/com/shopizer/search/services/worker/SearchWorker.class differ
diff --git a/sm-search/target/classes/com/shopizer/search/services/worker/SearchWorkerImpl.class b/sm-search/target/classes/com/shopizer/search/services/worker/SearchWorkerImpl.class
new file mode 100644
index 0000000..3c6b494
Binary files /dev/null and b/sm-search/target/classes/com/shopizer/search/services/worker/SearchWorkerImpl.class differ
diff --git a/sm-search/target/classes/com/shopizer/search/services/workflow/DeleteObjectWorkflow.class b/sm-search/target/classes/com/shopizer/search/services/workflow/DeleteObjectWorkflow.class
new file mode 100644
index 0000000..9f205e7
Binary files /dev/null and b/sm-search/target/classes/com/shopizer/search/services/workflow/DeleteObjectWorkflow.class differ
diff --git a/sm-search/target/classes/com/shopizer/search/services/workflow/GetWorkflow.class b/sm-search/target/classes/com/shopizer/search/services/workflow/GetWorkflow.class
new file mode 100644
index 0000000..ede8301
Binary files /dev/null and b/sm-search/target/classes/com/shopizer/search/services/workflow/GetWorkflow.class differ
diff --git a/sm-search/target/classes/com/shopizer/search/services/workflow/IndexWorkflow.class b/sm-search/target/classes/com/shopizer/search/services/workflow/IndexWorkflow.class
new file mode 100644
index 0000000..0b9e6af
Binary files /dev/null and b/sm-search/target/classes/com/shopizer/search/services/workflow/IndexWorkflow.class differ
diff --git a/sm-search/target/classes/com/shopizer/search/services/workflow/SearchWorkflow.class b/sm-search/target/classes/com/shopizer/search/services/workflow/SearchWorkflow.class
new file mode 100644
index 0000000..d6677c9
Binary files /dev/null and b/sm-search/target/classes/com/shopizer/search/services/workflow/SearchWorkflow.class differ
diff --git a/sm-search/target/classes/com/shopizer/search/services/workflow/Workflow.class b/sm-search/target/classes/com/shopizer/search/services/workflow/Workflow.class
new file mode 100644
index 0000000..a9aa1a2
Binary files /dev/null and b/sm-search/target/classes/com/shopizer/search/services/workflow/Workflow.class differ
diff --git a/sm-search/target/classes/com/shopizer/search/utils/CustomIndexConfiguration.class b/sm-search/target/classes/com/shopizer/search/utils/CustomIndexConfiguration.class
new file mode 100644
index 0000000..0def8fa
Binary files /dev/null and b/sm-search/target/classes/com/shopizer/search/utils/CustomIndexConfiguration.class differ
diff --git a/sm-search/target/classes/com/shopizer/search/utils/CustomIndexFieldConfiguration.class b/sm-search/target/classes/com/shopizer/search/utils/CustomIndexFieldConfiguration.class
new file mode 100644
index 0000000..502dc45
Binary files /dev/null and b/sm-search/target/classes/com/shopizer/search/utils/CustomIndexFieldConfiguration.class differ
diff --git a/sm-search/target/classes/com/shopizer/search/utils/DateUtil.class b/sm-search/target/classes/com/shopizer/search/utils/DateUtil.class
new file mode 100644
index 0000000..71ac896
Binary files /dev/null and b/sm-search/target/classes/com/shopizer/search/utils/DateUtil.class differ
diff --git a/sm-search/target/classes/com/shopizer/search/utils/DynamicIndexNameUtil.class b/sm-search/target/classes/com/shopizer/search/utils/DynamicIndexNameUtil.class
new file mode 100644
index 0000000..91e4bb6
Binary files /dev/null and b/sm-search/target/classes/com/shopizer/search/utils/DynamicIndexNameUtil.class differ
diff --git a/sm-search/target/classes/com/shopizer/search/utils/FileUtil.class b/sm-search/target/classes/com/shopizer/search/utils/FileUtil.class
new file mode 100644
index 0000000..dca58e1
Binary files /dev/null and b/sm-search/target/classes/com/shopizer/search/utils/FileUtil.class differ
diff --git a/sm-search/target/classes/com/shopizer/search/utils/IndexConfiguration.class b/sm-search/target/classes/com/shopizer/search/utils/IndexConfiguration.class
new file mode 100644
index 0000000..f8f2968
Binary files /dev/null and b/sm-search/target/classes/com/shopizer/search/utils/IndexConfiguration.class differ
diff --git a/sm-search/target/classes/com/shopizer/search/utils/SearchClient.class b/sm-search/target/classes/com/shopizer/search/utils/SearchClient.class
new file mode 100644
index 0000000..d7d7660
Binary files /dev/null and b/sm-search/target/classes/com/shopizer/search/utils/SearchClient.class differ
diff --git a/sm-search/target/classes/com/shopizer/search/utils/ServerConfiguration.class b/sm-search/target/classes/com/shopizer/search/utils/ServerConfiguration.class
new file mode 100644
index 0000000..9898b8b
Binary files /dev/null and b/sm-search/target/classes/com/shopizer/search/utils/ServerConfiguration.class differ
sm-search/target/classes/log4j.xml 45(+45 -0)
diff --git a/sm-search/target/classes/log4j.xml b/sm-search/target/classes/log4j.xml
new file mode 100644
index 0000000..1b3b1c5
--- /dev/null
+++ b/sm-search/target/classes/log4j.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE log4j:configuration PUBLIC "-//APACHE//DTD LOG4J 1.2//EN" "log4j.dtd">
+<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
+
+ <!-- Appenders -->
+ <appender name="console" class="org.apache.log4j.ConsoleAppender">
+ <param name="Target" value="System.out" />
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="%-5p: %c - %m%n" />
+ </layout>
+ </appender>
+
+ <!-- Application Loggers -->
+ <logger name="mytld.mycompany.myapp">
+ <level value="info" />
+ </logger>
+
+ <!-- 3rdparty Loggers -->
+ <logger name="org.springframework.core">
+ <level value="info" />
+ </logger>
+
+ <logger name="org.springframework.beans">
+ <level value="info" />
+ </logger>
+
+ <logger name="org.springframework.context">
+ <level value="info" />
+ </logger>
+
+ <logger name="org.springframework.web">
+ <level value="info" />
+ </logger>
+
+ <logger name="org.elasticsearch">
+ <level value="info" />
+ </logger>
+
+ <!-- Root Logger -->
+ <root>
+ <priority value="info" />
+ <appender-ref ref="console" />
+ </root>
+
+</log4j:configuration>
diff --git a/sm-search/target/classes/META-INF/MANIFEST.MF b/sm-search/target/classes/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..bd82657
--- /dev/null
+++ b/sm-search/target/classes/META-INF/MANIFEST.MF
@@ -0,0 +1,5 @@
+Manifest-Version: 1.0
+Built-By: c.samson
+Build-Jdk: 1.8.0_91
+Created-By: Maven Integration for Eclipse
+
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
new file mode 100644
index 0000000..891a0d5
--- /dev/null
+++ b/sm-search/target/classes/META-INF/maven/com.shopizer/sm-search/pom.properties
@@ -0,0 +1,7 @@
+#Generated by Maven Integration for Eclipse
+#Tue Oct 25 09:55:52 EDT 2016
+version=2.5.0-SNAPSHOT
+groupId=com.shopizer
+m2e.projectName=sm-search
+m2e.projectLocation=C\:\\code\\personal\\shopizer-2.5\\shopizer\\sm-search
+artifactId=sm-search
diff --git a/sm-search/target/classes/META-INF/maven/com.shopizer/sm-search/pom.xml b/sm-search/target/classes/META-INF/maven/com.shopizer/sm-search/pom.xml
new file mode 100644
index 0000000..ec539a2
--- /dev/null
+++ b/sm-search/target/classes/META-INF/maven/com.shopizer/sm-search/pom.xml
@@ -0,0 +1,229 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>com.shopizer</groupId>
+ <artifactId>sm-search</artifactId>
+ <version>2.5.0-SNAPSHOT</version>
+ <packaging>jar</packaging>
+ <name>sm-search</name>
+ <url>http://www.shopizer.com</url>
+ <properties>
+
+
+ <java-version>1.8</java-version>
+
+ <jackson-version>2.7.3</jackson-version>
+ <gson.version>2.6.2</gson.version>
+ <guava.version>19.0</guava.version>
+ <junit.version>4.12</junit.version>
+ <httpcore.version>4.4.4</httpcore.version>
+ <httpclient.version>4.5.2</httpclient.version>
+ <javax.inject-version>1</javax.inject-version>
+ <commons-lang3-version>3.4</commons-lang3-version>
+ <commons-collections4-version>4.1</commons-collections4-version>
+ <org.slf4j-version>1.7.21</org.slf4j-version>
+ <log4j-version>1.2.17</log4j-version>
+
+
+ <org.springframework-version>4.2.1.RELEASE</org.springframework-version>
+ <org.aspectj-version>1.6.10</org.aspectj-version>
+
+
+ <org.elasticsearch-version>2.3.4</org.elasticsearch-version>
+ <io.searchbox.jest-version>2.0.2</io.searchbox.jest-version>
+
+
+
+ </properties>
+
+ <!-- mvn clean deploy -->
+ <parent>
+ <groupId>org.sonatype.oss</groupId>
+ <artifactId>oss-parent</artifactId>
+ <version>7</version>
+ </parent>
+
+ <scm>
+ <connection>scm:svn:http://svn.shopizer.com/branches/v2/sm-search/</connection>
+ <developerConnection>scm:svn:http://svn.shopizer.com/branches/v2/sm-search/</developerConnection>
+ <url>http://svn.shopizer.com/branches/v2/sm-search/</url>
+ </scm>
+
+
+
+ <dependencies>
+
+
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-lang3</artifactId>
+ <version>${commons-lang3-version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-collections4</artifactId>
+ <version>${commons-collections4-version}</version>
+ </dependency>
+
+
+ <!-- Spring -->
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-context</artifactId>
+ <version>${org.springframework-version}</version>
+ <exclusions>
+ <!-- Exclude Commons Logging in favor of SLF4j -->
+ <exclusion>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <!-- AspectJ -->
+ <dependency>
+ <groupId>org.aspectj</groupId>
+ <artifactId>aspectjrt</artifactId>
+ <version>${org.aspectj-version}</version>
+ </dependency>
+
+ <!-- Logging -->
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ <version>${org.slf4j-version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>jcl-over-slf4j</artifactId>
+ <version>${org.slf4j-version}</version>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ <version>${org.slf4j-version}</version>
+ <scope>runtime</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ <version>${log4j-version}</version>
+ <scope>compile</scope>
+ </dependency>
+
+ <!-- @Inject -->
+ <dependency>
+ <groupId>javax.inject</groupId>
+ <artifactId>javax.inject</artifactId>
+ <version>${javax.inject-version}</version>
+ </dependency>
+
+
+ <!-- Jackson JSON Processor -->
+ <dependency>
+ <groupId>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-core</artifactId>
+ <version>${jackson-version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-databind</artifactId>
+ <version>${jackson-version}</version>
+ </dependency>
+
+
+
+
+ <!-- Elastic search -->
+ <dependency>
+ <groupId>org.elasticsearch</groupId>
+ <artifactId>elasticsearch</artifactId>
+ <version>${org.elasticsearch-version}</version>
+ </dependency>
+
+
+ <dependency>
+ <groupId>io.searchbox</groupId>
+ <artifactId>jest</artifactId>
+ <version>${io.searchbox.jest-version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>com.google.guava</groupId>
+ <artifactId>guava</artifactId>
+ <version>${guava.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>com.google.code.gson</groupId>
+ <artifactId>gson</artifactId>
+ <version>${gson.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-lang3</artifactId>
+ <version>${commons-lang3-version}</version>
+ </dependency>
+
+
+ <!-- Http components -->
+ <dependency>
+ <groupId>org.apache.httpcomponents</groupId>
+ <artifactId>httpcore-nio</artifactId>
+ <version>${httpcore.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.httpcomponents</groupId>
+ <artifactId>httpclient</artifactId>
+ <version>${httpclient.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.apache.httpcomponents</groupId>
+ <artifactId>httpcore</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
+ <!-- Test dependencies -->
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>${junit.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-test</artifactId>
+ <version>${org.springframework-version}</version>
+ <scope>test</scope>
+ </dependency>
+
+
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>3.2</version>
+ <configuration>
+ <source>${java-version}</source>
+ <target>${java-version}</target>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>2.12</version>
+ <configuration>
+ <skipTests>true</skipTests>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+</project>
\ No newline at end of file
diff --git a/sm-search/target/maven-archiver/pom.properties b/sm-search/target/maven-archiver/pom.properties
new file mode 100644
index 0000000..6aaf8d3
--- /dev/null
+++ b/sm-search/target/maven-archiver/pom.properties
@@ -0,0 +1,5 @@
+#Generated by Maven
+#Mon Oct 24 12:57:47 EDT 2016
+version=2.5.0-SNAPSHOT
+groupId=com.shopizer
+artifactId=sm-search
diff --git a/sm-search/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/sm-search/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
new file mode 100644
index 0000000..9ed1f56
--- /dev/null
+++ b/sm-search/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
@@ -0,0 +1,43 @@
+com\shopizer\search\services\workflow\IndexWorkflow.class
+com\shopizer\search\services\SearchHit.class
+com\shopizer\search\services\worker\SearchWorkerImpl.class
+com\shopizer\search\services\field\DateField.class
+com\shopizer\search\services\impl\SearchDelegateImpl.class
+com\shopizer\search\services\worker\KeywordSearchWorkerImpl.class
+com\shopizer\search\services\Entry.class
+com\shopizer\search\services\field\Field.class
+com\shopizer\search\services\SearchResponse.class
+com\shopizer\search\services\worker\DeleteObjectWorker.class
+com\shopizer\search\services\workflow\DeleteObjectWorkflow.class
+com\shopizer\search\services\workflow\SearchWorkflow.class
+com\shopizer\search\utils\ServerConfiguration.class
+com\shopizer\search\services\field\IntegerField.class
+com\shopizer\search\services\worker\DeleteKeywordsImpl.class
+com\shopizer\search\utils\FileUtil.class
+com\shopizer\search\services\SearchService.class
+com\shopizer\search\services\worker\KeywordIndexerImpl.class
+com\shopizer\search\services\worker\KeywordSearchWorker.class
+com\shopizer\search\utils\IndexConfiguration.class
+com\shopizer\search\services\IndexKeywordRequest.class
+com\shopizer\search\services\field\DoubleField.class
+com\shopizer\search\services\field\ListField.class
+com\shopizer\search\services\FacetEntry.class
+com\shopizer\search\services\workflow\GetWorkflow.class
+com\shopizer\search\services\SearchField.class
+com\shopizer\search\services\field\LongField.class
+com\shopizer\search\services\GetResponse.class
+com\shopizer\search\utils\CustomIndexFieldConfiguration.class
+com\shopizer\search\services\field\StringField.class
+com\shopizer\search\services\worker\ExecutionContext.class
+com\shopizer\search\utils\DateUtil.class
+com\shopizer\search\utils\DynamicIndexNameUtil.class
+com\shopizer\search\services\worker\IndexWorker.class
+com\shopizer\search\utils\SearchClient.class
+com\shopizer\search\services\SearchRequest.class
+com\shopizer\search\utils\CustomIndexConfiguration.class
+com\shopizer\search\services\worker\DeleteObjectImpl.class
+com\shopizer\search\services\impl\SearchDelegate.class
+com\shopizer\search\services\worker\SearchWorker.class
+com\shopizer\search\services\field\BooleanField.class
+com\shopizer\search\services\worker\ObjectIndexerImpl.class
+com\shopizer\search\services\workflow\Workflow.class
diff --git a/sm-search/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/sm-search/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
new file mode 100644
index 0000000..7b9f379
--- /dev/null
+++ b/sm-search/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -0,0 +1,43 @@
+C:\code\personal\shopizer-search\sm-search\src\main\java\com\shopizer\search\services\impl\SearchDelegate.java
+C:\code\personal\shopizer-search\sm-search\src\main\java\com\shopizer\search\services\worker\IndexWorker.java
+C:\code\personal\shopizer-search\sm-search\src\main\java\com\shopizer\search\services\GetResponse.java
+C:\code\personal\shopizer-search\sm-search\src\main\java\com\shopizer\search\services\SearchService.java
+C:\code\personal\shopizer-search\sm-search\src\main\java\com\shopizer\search\services\worker\SearchWorker.java
+C:\code\personal\shopizer-search\sm-search\src\main\java\com\shopizer\search\services\workflow\Workflow.java
+C:\code\personal\shopizer-search\sm-search\src\main\java\com\shopizer\search\services\FacetEntry.java
+C:\code\personal\shopizer-search\sm-search\src\main\java\com\shopizer\search\services\worker\KeywordSearchWorker.java
+C:\code\personal\shopizer-search\sm-search\src\main\java\com\shopizer\search\services\Entry.java
+C:\code\personal\shopizer-search\sm-search\src\main\java\com\shopizer\search\services\worker\DeleteKeywordsImpl.java
+C:\code\personal\shopizer-search\sm-search\src\main\java\com\shopizer\search\services\field\Field.java
+C:\code\personal\shopizer-search\sm-search\src\main\java\com\shopizer\search\services\worker\KeywordIndexerImpl.java
+C:\code\personal\shopizer-search\sm-search\src\main\java\com\shopizer\search\utils\CustomIndexFieldConfiguration.java
+C:\code\personal\shopizer-search\sm-search\src\main\java\com\shopizer\search\services\worker\SearchWorkerImpl.java
+C:\code\personal\shopizer-search\sm-search\src\main\java\com\shopizer\search\services\worker\KeywordSearchWorkerImpl.java
+C:\code\personal\shopizer-search\sm-search\src\main\java\com\shopizer\search\services\worker\ExecutionContext.java
+C:\code\personal\shopizer-search\sm-search\src\main\java\com\shopizer\search\services\SearchRequest.java
+C:\code\personal\shopizer-search\sm-search\src\main\java\com\shopizer\search\services\field\BooleanField.java
+C:\code\personal\shopizer-search\sm-search\src\main\java\com\shopizer\search\services\field\LongField.java
+C:\code\personal\shopizer-search\sm-search\src\main\java\com\shopizer\search\services\field\IntegerField.java
+C:\code\personal\shopizer-search\sm-search\src\main\java\com\shopizer\search\services\workflow\IndexWorkflow.java
+C:\code\personal\shopizer-search\sm-search\src\main\java\com\shopizer\search\services\impl\SearchDelegateImpl.java
+C:\code\personal\shopizer-search\sm-search\src\main\java\com\shopizer\search\utils\ServerConfiguration.java
+C:\code\personal\shopizer-search\sm-search\src\main\java\com\shopizer\search\utils\FileUtil.java
+C:\code\personal\shopizer-search\sm-search\src\main\java\com\shopizer\search\services\field\DateField.java
+C:\code\personal\shopizer-search\sm-search\src\main\java\com\shopizer\search\services\SearchField.java
+C:\code\personal\shopizer-search\sm-search\src\main\java\com\shopizer\search\utils\CustomIndexConfiguration.java
+C:\code\personal\shopizer-search\sm-search\src\main\java\com\shopizer\search\utils\DateUtil.java
+C:\code\personal\shopizer-search\sm-search\src\main\java\com\shopizer\search\services\workflow\SearchWorkflow.java
+C:\code\personal\shopizer-search\sm-search\src\main\java\com\shopizer\search\services\SearchHit.java
+C:\code\personal\shopizer-search\sm-search\src\main\java\com\shopizer\search\utils\SearchClient.java
+C:\code\personal\shopizer-search\sm-search\src\main\java\com\shopizer\search\services\worker\DeleteObjectWorker.java
+C:\code\personal\shopizer-search\sm-search\src\main\java\com\shopizer\search\services\field\ListField.java
+C:\code\personal\shopizer-search\sm-search\src\main\java\com\shopizer\search\services\field\StringField.java
+C:\code\personal\shopizer-search\sm-search\src\main\java\com\shopizer\search\services\field\DoubleField.java
+C:\code\personal\shopizer-search\sm-search\src\main\java\com\shopizer\search\utils\DynamicIndexNameUtil.java
+C:\code\personal\shopizer-search\sm-search\src\main\java\com\shopizer\search\utils\IndexConfiguration.java
+C:\code\personal\shopizer-search\sm-search\src\main\java\com\shopizer\search\services\IndexKeywordRequest.java
+C:\code\personal\shopizer-search\sm-search\src\main\java\com\shopizer\search\services\workflow\GetWorkflow.java
+C:\code\personal\shopizer-search\sm-search\src\main\java\com\shopizer\search\services\SearchResponse.java
+C:\code\personal\shopizer-search\sm-search\src\main\java\com\shopizer\search\services\worker\DeleteObjectImpl.java
+C:\code\personal\shopizer-search\sm-search\src\main\java\com\shopizer\search\services\workflow\DeleteObjectWorkflow.java
+C:\code\personal\shopizer-search\sm-search\src\main\java\com\shopizer\search\services\worker\ObjectIndexerImpl.java
diff --git a/sm-search/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst b/sm-search/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
new file mode 100644
index 0000000..037ce31
--- /dev/null
+++ b/sm-search/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
@@ -0,0 +1,5 @@
+com\shopizer\test\TestIndex.class
+com\shopizer\test\TestSearchKeywords.class
+com\shopizer\test\TestGet.class
+com\shopizer\test\TestSearch.class
+com\shopizer\test\TestDelete.class
diff --git a/sm-search/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/sm-search/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
new file mode 100644
index 0000000..023c9fc
--- /dev/null
+++ b/sm-search/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
@@ -0,0 +1,5 @@
+C:\code\personal\shopizer-search\sm-search\src\test\java\com\shopizer\test\TestDelete.java
+C:\code\personal\shopizer-search\sm-search\src\test\java\com\shopizer\test\TestIndex.java
+C:\code\personal\shopizer-search\sm-search\src\test\java\com\shopizer\test\TestSearchKeywords.java
+C:\code\personal\shopizer-search\sm-search\src\test\java\com\shopizer\test\TestSearch.java
+C:\code\personal\shopizer-search\sm-search\src\test\java\com\shopizer\test\TestGet.java
diff --git a/sm-search/target/sm-search-2.5.0-SNAPSHOT.jar b/sm-search/target/sm-search-2.5.0-SNAPSHOT.jar
new file mode 100644
index 0000000..8c2b037
Binary files /dev/null and b/sm-search/target/sm-search-2.5.0-SNAPSHOT.jar differ
diff --git a/sm-search/target/test-classes/com/shopizer/test/TestDelete.class b/sm-search/target/test-classes/com/shopizer/test/TestDelete.class
new file mode 100644
index 0000000..b48de48
Binary files /dev/null and b/sm-search/target/test-classes/com/shopizer/test/TestDelete.class differ
diff --git a/sm-search/target/test-classes/com/shopizer/test/TestGet.class b/sm-search/target/test-classes/com/shopizer/test/TestGet.class
new file mode 100644
index 0000000..01e4e4f
Binary files /dev/null and b/sm-search/target/test-classes/com/shopizer/test/TestGet.class differ
diff --git a/sm-search/target/test-classes/com/shopizer/test/TestIndex.class b/sm-search/target/test-classes/com/shopizer/test/TestIndex.class
new file mode 100644
index 0000000..ba72304
Binary files /dev/null and b/sm-search/target/test-classes/com/shopizer/test/TestIndex.class differ
diff --git a/sm-search/target/test-classes/com/shopizer/test/TestSearch.class b/sm-search/target/test-classes/com/shopizer/test/TestSearch.class
new file mode 100644
index 0000000..18cb495
Binary files /dev/null and b/sm-search/target/test-classes/com/shopizer/test/TestSearch.class differ
diff --git a/sm-search/target/test-classes/com/shopizer/test/TestSearchKeywords.class b/sm-search/target/test-classes/com/shopizer/test/TestSearchKeywords.class
new file mode 100644
index 0000000..bb469e3
Binary files /dev/null and b/sm-search/target/test-classes/com/shopizer/test/TestSearchKeywords.class differ
diff --git a/sm-search/target/test-classes/spring/keyword.json b/sm-search/target/test-classes/spring/keyword.json
new file mode 100644
index 0000000..4dd1fdc
--- /dev/null
+++ b/sm-search/target/test-classes/spring/keyword.json
@@ -0,0 +1,11 @@
+{
+ "keyword_en": {
+ "properties": {
+ "keyword": {
+ "type": "string",
+ "analyzer": "autocomplete",
+ "search_analyzer": "standard"
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/sm-search/target/test-classes/spring/keyword_fr.json b/sm-search/target/test-classes/spring/keyword_fr.json
new file mode 100644
index 0000000..a03b835
--- /dev/null
+++ b/sm-search/target/test-classes/spring/keyword_fr.json
@@ -0,0 +1,11 @@
+{
+ "keyword_fr": {
+ "properties": {
+ "keyword": {
+ "type": "string",
+ "analyzer": "autocomplete",
+ "search_analyzer": "standard"
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/sm-search/target/test-classes/spring/product.json b/sm-search/target/test-classes/spring/product.json
new file mode 100644
index 0000000..7a70cfc
--- /dev/null
+++ b/sm-search/target/test-classes/spring/product.json
@@ -0,0 +1,15 @@
+{"product_en": {
+ "properties" : {
+ "name": {"type": "String","analyzer":"folding_en"},
+ "price" : {"type":"String","index":"not_analyzed"},
+ "categories" : {"type":"String","index":"not_analyzed"},
+ "manufacturer" : {"type":"String","index":"not_analyzed"},
+ "lang" : {"type":"String","index":"not_analyzed"},
+ "store" : {"type":"String","index":"not_analyzed"},
+ "availability" : {"type":"String","index":"not_analyzed"},
+ "available" : {"type":"String","index":"not_analyzed"},
+ "description" : {"type":"String","analyzer":"folding_en"},
+ "tags" : {"type":"String","analyzer":"folding_en"}
+ }
+ }
+}
\ No newline at end of file
diff --git a/sm-search/target/test-classes/spring/product_fr.json b/sm-search/target/test-classes/spring/product_fr.json
new file mode 100644
index 0000000..da1b86a
--- /dev/null
+++ b/sm-search/target/test-classes/spring/product_fr.json
@@ -0,0 +1,15 @@
+{"product_fr": {
+ "properties" : {
+ "name": {"type": "String","analyzer":"folding_fr"},
+ "price" : {"type":"String","index":"not_analyzed"},
+ "categories" : {"type":"String","index":"not_analyzed"},
+ "manufacturer" : {"type":"String","index":"not_analyzed"},
+ "lang" : {"type":"String","index":"not_analyzed"},
+ "store" : {"type":"String","index":"not_analyzed"},
+ "availability" : {"type":"String","index":"not_analyzed"},
+ "available" : {"type":"String","index":"not_analyzed"},
+ "description" : {"type":"String","analyzer":"folding_fr"},
+ "tags" : {"type":"String","analyzer":"folding_fr"}
+ }
+ }
+}
\ No newline at end of file
diff --git a/sm-search/target/test-classes/spring/settings_keyword.json b/sm-search/target/test-classes/spring/settings_keyword.json
new file mode 100644
index 0000000..3d8750e
--- /dev/null
+++ b/sm-search/target/test-classes/spring/settings_keyword.json
@@ -0,0 +1,22 @@
+ {
+ "analysis": {
+ "filter": {
+ "autocomplete_filter": {
+ "type": "edge_ngram",
+ "min_gram": 1,
+ "max_gram": 20
+ }
+ },
+ "analyzer": {
+ "autocomplete": {
+ "type": "custom",
+ "tokenizer": "standard",
+ "filter": [
+ "lowercase",
+ "asciifolding",
+ "autocomplete_filter"
+ ]
+ }
+ }
+ }
+ }
\ No newline at end of file
diff --git a/sm-search/target/test-classes/spring/settings_keyword_fr.json b/sm-search/target/test-classes/spring/settings_keyword_fr.json
new file mode 100644
index 0000000..3d8750e
--- /dev/null
+++ b/sm-search/target/test-classes/spring/settings_keyword_fr.json
@@ -0,0 +1,22 @@
+ {
+ "analysis": {
+ "filter": {
+ "autocomplete_filter": {
+ "type": "edge_ngram",
+ "min_gram": 1,
+ "max_gram": 20
+ }
+ },
+ "analyzer": {
+ "autocomplete": {
+ "type": "custom",
+ "tokenizer": "standard",
+ "filter": [
+ "lowercase",
+ "asciifolding",
+ "autocomplete_filter"
+ ]
+ }
+ }
+ }
+ }
\ No newline at end of file
diff --git a/sm-search/target/test-classes/spring/settings_product.json b/sm-search/target/test-classes/spring/settings_product.json
new file mode 100644
index 0000000..14dc17e
--- /dev/null
+++ b/sm-search/target/test-classes/spring/settings_product.json
@@ -0,0 +1,12 @@
+{
+ "index": {
+ "analysis": {
+ "analyzer": {
+ "folding_en": {
+ "tokenizer": "standard",
+ "filter": [ "lowercase", "asciifolding", "stop" ]
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/sm-search/target/test-classes/spring/settings_product_fr.json b/sm-search/target/test-classes/spring/settings_product_fr.json
new file mode 100644
index 0000000..56baf0b
--- /dev/null
+++ b/sm-search/target/test-classes/spring/settings_product_fr.json
@@ -0,0 +1,37 @@
+{
+ "index": {
+ "analysis": {
+ "filter": {
+ "french_elision": {
+ "type":"elision",
+ "articles_case": true,
+ "articles": [
+ "l", "m", "t", "qu", "n", "s",
+ "j", "d", "c", "jusqu", "quoiqu",
+ "lorsqu", "puisqu"
+ ]
+ },
+ "french_stop": {
+ "type": "stop",
+ "stopwords": "_french_"
+ },
+ "french_stemmer": {
+ "type": "stemmer",
+ "language": "light_french"
+ }
+ },
+ "analyzer": {
+ "folding_fr": {
+ "tokenizer": "standard",
+ "filter": [
+ "lowercase",
+ "asciifolding",
+ "french_elision",
+ "french_stop",
+ "french_stemmer"
+ ]
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/sm-search/target/test-classes/spring/settings_product_fr.json.bak b/sm-search/target/test-classes/spring/settings_product_fr.json.bak
new file mode 100644
index 0000000..574e3f1
--- /dev/null
+++ b/sm-search/target/test-classes/spring/settings_product_fr.json.bak
@@ -0,0 +1,12 @@
+{
+ "index": {
+ "analysis": {
+ "analyzer": {
+ "folding_fr": {
+ "tokenizer": "standard",
+ "filter": [ "lowercase", "asciifolding", "stop" ]
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/sm-search/target/test-classes/spring/shopizer-search.xml b/sm-search/target/test-classes/spring/shopizer-search.xml
new file mode 100644
index 0000000..8859040
--- /dev/null
+++ b/sm-search/target/test-classes/spring/shopizer-search.xml
@@ -0,0 +1,206 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:util="http://www.springframework.org/schema/util"
+ xsi:schemaLocation="
+ http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+ http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd
+ ">
+
+ <!-- can have different search client for indexing & searching -->
+ <bean id="searchClient" class="com.shopizer.search.utils.SearchClient">
+ <property name="serverConfiguration">
+ <ref bean="serverConfiguration" />
+ </property>
+ </bean>
+
+ <!-- Server configuration -->
+ <bean id="serverConfiguration" class="com.shopizer.search.utils.ServerConfiguration">
+ <property name="clusterName" value="shopizer"/>
+ <!-- local (embedded version, will create new indexes in the working directory) or remote (requires existing server) -->
+ <property name="mode" value="remote"/>
+ <!-- those properties are used when configured for remote -->
+ <property name="clusterHost" value="http://localhost"/>
+ <property name="clusterPort" value="9200"/>
+
+ <property name="proxyUser" value=""/>
+ <property name="proxyPassword" value=""/>
+ </bean>
+
+ <util:list id="facetTermsList" value-type="java.lang.String">
+ <value>categories</value>
+ <value>manufacturer</value>
+ </util:list>
+
+
+
+ <bean id="searchDelegate" class="com.shopizer.search.services.impl.SearchDelegateImpl">
+ <property name="searchClient">
+ <ref bean="searchClient" />
+ </property>
+ </bean>
+
+ <!-- Main service -->
+ <bean id="searchService" class="com.shopizer.search.services.SearchService"></bean>
+
+
+ <!--
+ Flow definitions for indexing and searching
+ -->
+
+
+ <bean id="searchWorkflow" class="com.shopizer.search.services.workflow.SearchWorkflow">
+ <property name="searchFlow">
+ <list>
+ <bean id="search" class="com.shopizer.search.services.worker.SearchWorkerImpl"/>
+ </list>
+ </property>
+ <property name="searchKeywordWorkflow">
+ <list>
+ <bean id="searchKeyword" class="com.shopizer.search.services.worker.KeywordSearchWorkerImpl"/>
+ </list>
+ </property>
+ <property name="searchClient">
+ <ref bean="searchClient" />
+ </property>
+ </bean>
+
+ <bean id="indexWorkflow" class="com.shopizer.search.services.workflow.IndexWorkflow">
+ <property name="indexWorkflow">
+ <list>
+ <ref bean="index" />
+ <ref bean="keyword" />
+ </list>
+ </property>
+ <property name="searchClient">
+ <ref bean="searchClient" />
+ </property>
+ </bean>
+
+ <bean id="deleteWorkflow" class="com.shopizer.search.services.workflow.DeleteObjectWorkflow">
+ <property name="deleteObjectWorkflow">
+ <list>
+ <bean id="deleteObject" class="com.shopizer.search.services.worker.DeleteObjectImpl"/>
+ <ref bean="deleteKeywords" />
+ </list>
+ </property>
+ <property name="searchClient">
+ <ref bean="searchClient" />
+ </property>
+ </bean>
+
+
+ <bean id="getWorkflow" class="com.shopizer.search.services.workflow.GetWorkflow">
+ <property name="searchClient">
+ <ref bean="searchClient" />
+ </property>
+ </bean>
+
+ <bean id="deleteKeywords" class="com.shopizer.search.services.worker.DeleteKeywordsImpl">
+ <property name="indexConfigurations">
+ <list>
+ <ref bean="keywordindex_en_defaultstore" />
+ <ref bean="keywordindex_fr_defaultstore" />
+ </list>
+ </property>
+ </bean>
+
+ <bean id="index" class="com.shopizer.search.services.worker.ObjectIndexerImpl">
+ <property name="indexConfigurations">
+ <list>
+ <ref bean="productindex_en_defaultstore" />
+ <ref bean="productindex_fr_defaultstore" />
+ </list>
+ </property>
+ </bean>
+
+
+
+ <!-- The presence of those properties will allow the creation of mapping files -->
+ <bean id="productindex_en_defaultstore" class="com.shopizer.search.utils.IndexConfiguration">
+ <property name="collectionName" value="product_en_default"/>
+ <property name="indexName" value="product_en"/>
+ <property name="mappingFileName" value="spring/product.json"/>
+ <!-- not necessary, only to define index and search rules -->
+ <property name="settingsFileName" value="spring/settings_product.json"/>
+ </bean>
+
+ <bean id="productindex_fr_defaultstore" class="com.shopizer.search.utils.IndexConfiguration">
+ <property name="collectionName" value="product_fr_default"/>
+ <property name="indexName" value="product_fr"/>
+ <property name="mappingFileName" value="spring/product_fr.json"/>
+ <!-- not necessary, only to define index and search rules -->
+ <property name="settingsFileName" value="spring/settings_product_fr.json"/>
+ </bean>
+
+ <bean id="keyword" class="com.shopizer.search.services.worker.KeywordIndexerImpl">
+ <property name="indexConfigurations">
+ <list>
+ <ref bean="keywordindex_en_defaultstore" />
+ <ref bean="keywordindex_fr_defaultstore" />
+ </list>
+ </property>
+ </bean>
+
+ <bean id="keywordindex_en_defaultstore" class="com.shopizer.search.utils.CustomIndexConfiguration">
+ <property name="collectionName" value="keyword_en_default"/>
+ <property name="indexName" value="keyword_en"/>
+ <property name="createOnIndexName" value="product_en"/>
+ <property name="mappingFileName" value="spring/keyword.json"/>
+ <property name="settingsFileName" value="spring/settings_keyword.json"/>
+ <property name="fields">
+ <list>
+ <ref bean="field1" />
+ <ref bean="field2" />
+ </list>
+ </property>
+ <!-- NO FILTERS
+ <property name="filters">
+ <list>
+ <ref bean="filter1" />
+ </list>
+ </property>
+ -->
+ </bean>
+
+
+ <bean id="keywordindex_fr_defaultstore" class="com.shopizer.search.utils.CustomIndexConfiguration">
+ <property name="collectionName" value="keyword_fr_default"/>
+ <property name="indexName" value="keyword_fr"/>
+ <property name="createOnIndexName" value="product_fr"/>
+ <property name="mappingFileName" value="spring/keyword_fr.json"/>
+ <property name="settingsFileName" value="spring/settings_keyword.json"/>
+ <property name="fields">
+ <list>
+ <ref bean="field1" />
+ <ref bean="field2" />
+ </list>
+ </property>
+ <!-- NO FILTERS
+ <property name="filters">
+ <list>
+ <ref bean="filter1" />
+ </list>
+ </property>
+ -->
+ </bean>
+
+
+ <!-- supported field types List, Integer, Double, Boolean, String -->
+ <bean id="field1" class="com.shopizer.search.utils.CustomIndexFieldConfiguration">
+ <property name="fieldName" value="tags"/>
+ <property name="fieldType" value="List"/>
+ </bean>
+ <bean id="field2" class="com.shopizer.search.utils.CustomIndexFieldConfiguration">
+ <property name="fieldName" value="name"/>
+ <property name="fieldType" value="String"/>
+ </bean>
+ <!--
+ <bean id="filter1" class="com.shopizer.search.utils.CustomIndexFieldConfiguration">
+ <property name="fieldName" value="price"/>
+ <property name="fieldType" value="Double"/>
+ </bean>
+ -->
+
+</beans>
\ No newline at end of file
diff --git a/sm-search/target/test-classes/spring/spring-context-test.xml b/sm-search/target/test-classes/spring/spring-context-test.xml
new file mode 100644
index 0000000..3a2f00e
--- /dev/null
+++ b/sm-search/target/test-classes/spring/spring-context-test.xml
@@ -0,0 +1,21 @@
+<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:aop="http://www.springframework.org/schema/aop"
+ xmlns:context="http://www.springframework.org/schema/context" xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:task="http://www.springframework.org/schema/task"
+ xmlns:util="http://www.springframework.org/schema/util"
+ xsi:schemaLocation="
+ http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
+ http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+ http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
+ http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.0.xsd
+ http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
+ http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.0.xsd
+ http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd">
+
+ <context:annotation-config />
+ <context:component-scan base-package="com.shopizer" />
+
+
+ <!-- search -->
+ <import resource="classpath:/spring/shopizer-search.xml" />
+
+
+</beans>
\ No newline at end of file
sm-shop/.classpath 37(+37 -0)
diff --git a/sm-shop/.classpath b/sm-shop/.classpath
new file mode 100644
index 0000000..81c8c83
--- /dev/null
+++ b/sm-shop/.classpath
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" output="target/classes" path="src/main/java">
+ <attributes>
+ <attribute name="optional" value="true"/>
+ <attribute name="maven.pomderived" value="true"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
+ <attributes>
+ <attribute name="maven.pomderived" value="true"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="src" output="target/test-classes" path="src/test/java">
+ <attributes>
+ <attribute name="optional" value="true"/>
+ <attribute name="maven.pomderived" value="true"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources">
+ <attributes>
+ <attribute name="maven.pomderived" value="true"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
+ <attributes>
+ <attribute name="maven.pomderived" value="true"/>
+ <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
+ <attributes>
+ <attribute name="maven.pomderived" value="true"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="output" path="target/classes"/>
+</classpath>
sm-shop/.project 37(+37 -0)
diff --git a/sm-shop/.project b/sm-shop/.project
new file mode 100644
index 0000000..3ace4e6
--- /dev/null
+++ b/sm-shop/.project
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>sm-shop</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.wst.common.project.facet.core.builder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.wst.validation.validationbuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.m2e.core.maven2Builder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
+ <nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.m2e.core.maven2Nature</nature>
+ <nature>org.eclipse.wst.common.project.facet.core.nature</nature>
+ <nature>org.eclipse.wst.jsdt.core.jsNature</nature>
+ </natures>
+</projectDescription>
sm-shop/.settings/.jsdtscope 12(+12 -0)
diff --git a/sm-shop/.settings/.jsdtscope b/sm-shop/.settings/.jsdtscope
new file mode 100644
index 0000000..e34514d
--- /dev/null
+++ b/sm-shop/.settings/.jsdtscope
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry excluding="**/bower_components/*|**/node_modules/*|**/*.min.js" kind="src" path="src/main/webapp"/>
+ <classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.WebProject">
+ <attributes>
+ <attribute name="hide" value="true"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.baseBrowserLibrary"/>
+ <classpathentry kind="output" path=""/>
+</classpath>
diff --git a/sm-shop/.settings/org.eclipse.core.resources.prefs b/sm-shop/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..04cfa2c
--- /dev/null
+++ b/sm-shop/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,6 @@
+eclipse.preferences.version=1
+encoding//src/main/java=UTF-8
+encoding//src/main/resources=UTF-8
+encoding//src/test/java=UTF-8
+encoding//src/test/resources=UTF-8
+encoding/<project>=UTF-8
diff --git a/sm-shop/.settings/org.eclipse.jdt.core.prefs b/sm-shop/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..1ab2bb5
--- /dev/null
+++ b/sm-shop/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,8 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/sm-shop/.settings/org.eclipse.m2e.core.prefs b/sm-shop/.settings/org.eclipse.m2e.core.prefs
new file mode 100644
index 0000000..41475ee
--- /dev/null
+++ b/sm-shop/.settings/org.eclipse.m2e.core.prefs
@@ -0,0 +1,4 @@
+activeProfiles=
+eclipse.preferences.version=1
+resolveWorkspaceProjects=false
+version=1
diff --git a/sm-shop/.settings/org.eclipse.wst.common.component b/sm-shop/.settings/org.eclipse.wst.common.component
new file mode 100644
index 0000000..8c8ba22
--- /dev/null
+++ b/sm-shop/.settings/org.eclipse.wst.common.component
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
+ <wb-module deploy-name="sm-shop-2.5.0-SNAPSHOT">
+ <wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources"/>
+ <wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/>
+ <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
+ <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/>
+ <property name="context-root" value="sm-shop"/>
+ <property name="java-output-path" value="/sm-shop/target/classes"/>
+ </wb-module>
+</project-modules>
diff --git a/sm-shop/.settings/org.eclipse.wst.common.project.facet.core.prefs.xml b/sm-shop/.settings/org.eclipse.wst.common.project.facet.core.prefs.xml
new file mode 100644
index 0000000..b01fdb7
--- /dev/null
+++ b/sm-shop/.settings/org.eclipse.wst.common.project.facet.core.prefs.xml
@@ -0,0 +1,7 @@
+<root>
+ <facet id="jst.jaxrs">
+ <node name="libprov">
+ <attribute name="provider-id" value="jaxrs-no-op-library-provider"/>
+ </node>
+ </facet>
+</root>
diff --git a/sm-shop/.settings/org.eclipse.wst.common.project.facet.core.xml b/sm-shop/.settings/org.eclipse.wst.common.project.facet.core.xml
new file mode 100644
index 0000000..b11c00a
--- /dev/null
+++ b/sm-shop/.settings/org.eclipse.wst.common.project.facet.core.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<faceted-project>
+ <fixed facet="wst.jsdt.web"/>
+ <installed facet="jst.web" version="3.1"/>
+ <installed facet="jst.jaxrs" version="1.1"/>
+ <installed facet="wst.jsdt.web" version="1.0"/>
+ <installed facet="java" version="1.8"/>
+</faceted-project>
diff --git a/sm-shop/.settings/org.eclipse.wst.jsdt.ui.superType.container b/sm-shop/.settings/org.eclipse.wst.jsdt.ui.superType.container
new file mode 100644
index 0000000..3bd5d0a
--- /dev/null
+++ b/sm-shop/.settings/org.eclipse.wst.jsdt.ui.superType.container
@@ -0,0 +1 @@
+org.eclipse.wst.jsdt.launching.baseBrowserLibrary
\ No newline at end of file
diff --git a/sm-shop/.settings/org.eclipse.wst.jsdt.ui.superType.name b/sm-shop/.settings/org.eclipse.wst.jsdt.ui.superType.name
new file mode 100644
index 0000000..05bd71b
--- /dev/null
+++ b/sm-shop/.settings/org.eclipse.wst.jsdt.ui.superType.name
@@ -0,0 +1 @@
+Window
\ No newline at end of file
diff --git a/sm-shop/.settings/org.eclipse.wst.validation.prefs b/sm-shop/.settings/org.eclipse.wst.validation.prefs
new file mode 100644
index 0000000..6f1cba6
--- /dev/null
+++ b/sm-shop/.settings/org.eclipse.wst.validation.prefs
@@ -0,0 +1,2 @@
+disabled=06target
+eclipse.preferences.version=1
sm-shop/pom.xml 627(+119 -508)
diff --git a/sm-shop/pom.xml b/sm-shop/pom.xml
old mode 100755
new mode 100644
index f87f82d..201e266
--- a/sm-shop/pom.xml
+++ b/sm-shop/pom.xml
@@ -1,508 +1,119 @@
-<?xml version="1.0"?>
-<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
- <modelVersion>4.0.0</modelVersion>
-
- <parent>
- <groupId>com.shopizer</groupId>
- <artifactId>shopizer</artifactId>
- <version>2.0.3-SNAPSHOT</version>
- </parent>
-
-
- <groupId>com.salesmanager</groupId>
- <artifactId>sm-shop</artifactId>
- <name>sm-shop</name>
- <packaging>war</packaging>
-
-
- <properties>
-
-
- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-
- <jackson-version>1.9.13</jackson-version>
- <fasterxml-version>2.6.5</fasterxml-version>
- <org.springframework-version>3.2.16.RELEASE</org.springframework-version>
- <org.springframework-security-version>3.2.9.RELEASE</org.springframework-security-version>
- <org.aspectj-version>1.8.7</org.aspectj-version>
- <org.slf4j-version>1.6.6</org.slf4j-version>
- <sm-core.jodatime.version>2.0</sm-core.jodatime.version>
- <sm-core.jodatime-hibernate.version>1.3</sm-core.jodatime-hibernate.version>
-
- </properties>
- <dependencies>
-
-
- <!-- sm-core -->
- <dependency>
- <groupId>com.shopizer</groupId>
- <artifactId>sm-core</artifactId>
- <version>${sm-core.version}</version>
- </dependency>
-
- <!-- sm-core-model -->
- <dependency>
- <groupId>com.shopizer</groupId>
- <artifactId>sm-core-model</artifactId>
- <version>${sm-core-model.version}</version>
- </dependency>
-
- <!-- sm-core-modules -->
- <dependency>
- <groupId>com.shopizer</groupId>
- <artifactId>sm-core-modules</artifactId>
- <version>${sm-core-modules.version}</version>
- </dependency>
-
-
- <!-- sm-search -->
- <dependency>
- <groupId>com.shopizer</groupId>
- <artifactId>sm-search</artifactId>
- <version>${sm-search.version}</version>
- </dependency>
-
- <!-- canadapost -->
- <dependency>
- <groupId>com.shopizer</groupId>
- <artifactId>shopizer-shipping-canadapost-module</artifactId>
- <version>${shopizer-canadapost.version}</version>
- </dependency>
-
- <!-- Spring -->
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-context</artifactId>
- <version>${org.springframework-version}</version>
- <exclusions>
- <!-- Exclude Commons Logging in favor of SLF4j -->
- <exclusion>
- <groupId>commons-logging</groupId>
- <artifactId>commons-logging</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-webmvc</artifactId>
- <version>${org.springframework-version}</version>
- </dependency>
-
- <dependency>
- <groupId>org.springframework.mobile</groupId>
- <artifactId>spring-mobile-device</artifactId>
- <version>1.1.0.RELEASE</version>
- </dependency>
-
- <!-- Spring Security -->
- <dependency>
- <groupId>org.springframework.security</groupId>
- <artifactId>spring-security-core</artifactId>
- <version>${org.springframework-security-version}</version>
- <exclusions>
- <exclusion>
- <artifactId>spring-tx</artifactId>
- <groupId>org.springframework</groupId>
- </exclusion>
- </exclusions>
- </dependency>
-
- <dependency>
- <groupId>org.springframework.security</groupId>
- <artifactId>spring-security-web</artifactId>
- <version>${org.springframework-security-version}</version>
- <exclusions>
- <exclusion>
- <artifactId>spring-tx</artifactId>
- <groupId>org.springframework</groupId>
- </exclusion>
- </exclusions>
- </dependency>
-
- <dependency>
- <groupId>org.springframework.security</groupId>
- <artifactId>spring-security-config</artifactId>
- <version>${org.springframework-security-version}</version>
- </dependency>
-
- <dependency>
- <groupId>org.springframework.security</groupId>
- <artifactId>spring-security-taglibs</artifactId>
- <version>${org.springframework-security-version}</version>
- <exclusions>
- <exclusion>
- <artifactId>spring-tx</artifactId>
- <groupId>org.springframework</groupId>
- </exclusion>
- </exclusions>
- </dependency>
-
- <dependency>
- <groupId>javax.annotation</groupId>
- <artifactId>jsr250-api</artifactId>
- <version>1.0</version>
- </dependency>
-
-
- <!-- AspectJ -->
- <dependency>
- <groupId>org.aspectj</groupId>
- <artifactId>aspectjrt</artifactId>
- <version>${org.aspectj-version}</version>
- </dependency>
-
- <dependency>
- <groupId>javax.transaction</groupId>
- <artifactId>jta</artifactId>
- <version>1.1</version>
- <scope>provided</scope>
- </dependency>
-
- <!-- Logging -->
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-api</artifactId>
- <version>${org.slf4j-version}</version>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>jcl-over-slf4j</artifactId>
- <version>${org.slf4j-version}</version>
- <scope>runtime</scope>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-log4j12</artifactId>
- <version>${org.slf4j-version}</version>
- <scope>runtime</scope>
- </dependency>
- <dependency>
- <groupId>log4j</groupId>
- <artifactId>log4j</artifactId>
- <version>1.2.16</version>
- <scope>runtime</scope>
- </dependency>
-
- <!-- @Inject -->
- <dependency>
- <groupId>javax.inject</groupId>
- <artifactId>javax.inject</artifactId>
- <version>1</version>
- </dependency>
-
- <!-- Servlet -->
- <dependency>
- <groupId>javax.servlet</groupId>
- <artifactId>servlet-api</artifactId>
- <version>2.5</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>javax.servlet.jsp</groupId>
- <artifactId>jsp-api</artifactId>
- <version>2.1</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>javax.servlet.jsp.jstl</groupId>
- <artifactId>jstl-api</artifactId>
- <version>1.2</version>
- </dependency>
- <dependency>
- <groupId>org.glassfish.web</groupId>
- <artifactId>jstl-impl</artifactId>
- <version>1.2</version>
- </dependency>
-
- <!-- Jackson JSON Processor -->
- <dependency>
- <groupId>org.codehaus.jackson</groupId>
- <artifactId>jackson-mapper-asl</artifactId>
- <version>${jackson-version}</version>
- </dependency>
- <dependency>
- <groupId>com.googlecode.json-simple</groupId>
- <artifactId>json-simple</artifactId>
- <version>1.1.1</version>
- </dependency>
- <dependency>
- <groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-core</artifactId>
- <version>${fasterxml-version}</version>
- </dependency>
- <dependency>
- <groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-databind</artifactId>
- <version>${fasterxml-version}</version>
- </dependency>
-
- <dependency>
- <groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-annotations</artifactId>
- <version>${fasterxml-version}</version>
- </dependency>
-
- <!-- Rome Atom+RSS -->
- <dependency>
- <groupId>net.java.dev.rome</groupId>
- <artifactId>rome</artifactId>
- <version>1.0.0</version>
- </dependency>
-
- <!-- JSR 303 with Hibernate Validator -->
- <dependency>
- <groupId>javax.validation</groupId>
- <artifactId>validation-api</artifactId>
- <version>1.0.0.GA</version>
- </dependency>
- <dependency>
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-validator</artifactId>
- <version>4.1.0.Final</version>
- </dependency>
-
-
-
- <dependency>
- <groupId>commons-fileupload</groupId>
- <artifactId>commons-fileupload</artifactId>
- <version>1.2.2</version>
- </dependency>
-
-
- <dependency>
- <groupId>commons-io</groupId>
- <artifactId>commons-io</artifactId>
- <version>2.0.1</version>
- </dependency>
-
- <dependency>
- <groupId>commons-collections</groupId>
- <artifactId>commons-collections</artifactId>
- <version>3.2.2</version>
- </dependency>
-
- <dependency>
- <groupId>commons-validator</groupId>
- <artifactId>commons-validator</artifactId>
- <version>1.4.0</version>
- </dependency>
-
- <dependency>
- <groupId>commons-httpclient</groupId>
- <artifactId>commons-httpclient</artifactId>
- <version>3.1</version>
- </dependency>
-
- <dependency>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-lang3</artifactId>
- <version>3.0</version>
- </dependency>
-
- <!-- Test -->
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>4.8.2</version>
- <scope>test</scope>
- </dependency>
-
- <!-- Needs Tiles core to add tiles to spring (2.1.2 is the latest supported) -->
- <dependency>
- <groupId>org.apache.tiles</groupId>
- <artifactId>tiles-core</artifactId>
- <version>2.1.2</version>
- </dependency>
-
- <dependency>
- <groupId>org.apache.tiles</groupId>
- <artifactId>tiles-servlet</artifactId>
- <version>2.1.2</version>
- </dependency>
-
- <dependency>
- <groupId>org.apache.tiles</groupId>
- <artifactId>tiles-jsp</artifactId>
- <version>2.1.2</version>
- </dependency>
-
- <dependency>
- <groupId>org.jboss.cache</groupId>
- <artifactId>jbosscache-core</artifactId>
- <version>3.2.5.GA</version>
- </dependency>
-
- <dependency>
- <groupId>org.jopendocument</groupId>
- <artifactId>jOpenDocument</artifactId>
- <version>1.3b1</version>
- </dependency>
-
- <!--
- <dependency>
- <groupId>com.lowagie</groupId>
- <artifactId>itext</artifactId>
- <version>4.2.1</version>
- </dependency>
- -->
-
- <dependency>
- <groupId>com.itextpdf</groupId>
- <artifactId>itextpdf</artifactId>
- <version>5.5.6</version>
- </dependency>
-
- <dependency>
- <groupId>net.tanesha.recaptcha4j</groupId>
- <artifactId>recaptcha4j</artifactId>
- <version>0.0.7</version>
- </dependency>
-
- </dependencies>
- <repositories>
- <!-- For testing against latest Spring snapshots -->
- <repository>
- <id>org.springframework.maven.snapshot</id>
- <name>Spring Maven Snapshot Repository</name>
- <url>http://maven.springframework.org/snapshot</url>
- <releases>
- <enabled>false</enabled>
- </releases>
- <snapshots>
- <enabled>true</enabled>
- </snapshots>
- </repository>
- <!-- For developing against latest Spring milestones -->
- <repository>
- <id>org.springframework.maven.milestone</id>
- <name>Spring Maven Milestone Repository</name>
- <url>http://maven.springframework.org/milestone</url>
- <snapshots>
- <enabled>false</enabled>
- </snapshots>
- </repository>
- <repository>
- <id>org.jboss.repository.releases</id>
- <name>JBoss Maven Release Repository</name>
- <url>https://repository.jboss.org/nexus/content/repositories/releases</url>
- <snapshots>
- <enabled>false</enabled>
- </snapshots>
- </repository>
-
- </repositories>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <version>3.2</version>
- <configuration>
- <source>${jdk-version}</source>
- <target>${jdk-version}</target>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-dependency-plugin</artifactId>
- <executions>
- <execution>
- <id>install</id>
- <phase>install</phase>
- <goals>
- <goal>sources</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- <!-- generate also a jar file from classes -->
- <plugin>
- <artifactId>maven-war-plugin</artifactId>
- <version>2.6</version>
- <configuration>
- <archiveClasses>true</archiveClasses>
- </configuration>
- </plugin>
-
-
-
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>aspectj-maven-plugin</artifactId>
- <!-- Have to use version 1.2 since version 1.3 does not appear to work
- with ITDs -->
- <version>1.2</version>
- <dependencies>
- <!-- You must use Maven 2.0.9 or above or these are ignored (see MNG-2972) -->
- <dependency>
- <groupId>org.aspectj</groupId>
- <artifactId>aspectjrt</artifactId>
- <version>${org.aspectj-version}</version>
- </dependency>
- <dependency>
- <groupId>org.aspectj</groupId>
- <artifactId>aspectjtools</artifactId>
- <version>${org.aspectj-version}</version>
- </dependency>
- </dependencies>
- <executions>
- <execution>
- <goals>
- <goal>compile</goal>
- <goal>test-compile</goal>
- </goals>
- </execution>
- </executions>
- <configuration>
- <outxml>true</outxml>
- <source>${java-version}</source>
- <target>${java-version}</target>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>tomcat-maven-plugin</artifactId>
- <version>1.1</version>
- </plugin>
- <!-- minify -->
- <!-- match with JDK (use 1.7.2 with JDK 1.7) -->
- <!-- match with JDK (use 1.7.2 with JDK 1.7) -->
- <!--
- <plugin>
- <groupId>com.samaxes.maven</groupId>
- <artifactId>minify-maven-plugin</artifactId>
- <version>1.6</version>
- <executions>
- <execution>
- <id>default-minify</id>
- <phase>prepare-package</phase>
- <configuration>
- <charset>UTF-8</charset>
- <cssSourceDir>resources/css</cssSourceDir>
- <cssSourceFiles>
- <cssSourceFile>shopizer-admin.css.css</cssSourceFile>
- <cssSourceFile>sm.css</cssSourceFile>
- <cssSourceFile>showLoading.css</cssSourceFile>
- </cssSourceFiles>
- <jsSourceDir>resources/js</jsSourceDir>
- <jsSourceFiles>
- <jsSourceFile>adminFunctions.js</jsSourceFile>
- <jsSourceFile>address.js</jsSourceFile>
- <jsSourceFile>login.js</jsSourceFile>
- <jsSourceFile>product.js</jsSourceFile>
- <jsSourceFile>registration.js</jsSourceFile>
- <jsSourceFile>shopping-cart.js</jsSourceFile>
- </jsSourceFiles>
- </configuration>
- <goals>
- <goal>minify</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- -->
- </plugins>
- </build>
-</project>
+<?xml version="1.0"?>
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>com.shopizer</groupId>
+ <artifactId>shopizer</artifactId>
+ <version>2.5.0-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>sm-shop</artifactId>
+ <packaging>war</packaging>
+
+ <name>sm-shop</name>
+ <url>http://www.shopizer.com</url>
+
+ <properties>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ <!-- testing properties -->
+ <!--<dbh2.version>1.4.187</dbh2.version>-->
+ <javax.inject.version>1</javax.inject.version>
+ <javax.el.version>2.2.4</javax.el.version>
+ </properties>
+
+ <dependencies>
+
+ <!-- sm-core -->
+ <dependency>
+ <groupId>com.shopizer</groupId>
+ <artifactId>sm-core</artifactId>
+ <version>${shopizer.version}</version>
+ </dependency>
+
+ <!-- sm-core-model -->
+ <dependency>
+ <groupId>com.shopizer</groupId>
+ <artifactId>sm-core-model</artifactId>
+ <version>${shopizer.version}</version>
+ </dependency>
+
+
+ <!-- sm-search -->
+ <dependency>
+ <groupId>com.shopizer</groupId>
+ <artifactId>sm-search</artifactId>
+ <version>${shopizer.search.version}</version>
+ </dependency>
+
+
+
+ <dependency>
+ <groupId>javax.el</groupId>
+ <artifactId>javax.el-api</artifactId>
+ <version>${javax.el.version}</version>
+ </dependency>
+
+ <!-- Spring boot -->
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-web</artifactId>
+ </dependency>
+
+ <!-- Spring JDBC -->
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-jdbc</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-security</artifactId>
+ </dependency>
+
+
+ <!-- H2 session -->
+ <dependency>
+ <groupId>com.h2database</groupId>
+ <artifactId>h2</artifactId>
+ </dependency>
+
+ <!-- https://mvnrepository.com/artifact/javax.inject/javax.inject -->
+ <dependency>
+ <groupId>javax.inject</groupId>
+ <artifactId>javax.inject</artifactId>
+ <version>${javax.inject.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>javax.validation</groupId>
+ <artifactId>validation-api</artifactId>
+ <version>1.1.0.Final</version>
+ </dependency>
+
+ <!-- https://mvnrepository.com/artifact/net.sf.ehcache/ehcache -->
+ <dependency>
+ <groupId>net.sf.ehcache</groupId>
+ <artifactId>ehcache</artifactId>
+ </dependency>
+
+
+ <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
+ <dependency>
+ <groupId>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-core</artifactId>
+ </dependency>
+
+
+
+
+
+
+ </dependencies>
+
+
+
+
+
+</project>
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/AdminController.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/AdminController.java
new file mode 100644
index 0000000..3481ca8
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/AdminController.java
@@ -0,0 +1,72 @@
+package com.salesmanager.shop.admin.controller;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.inject.Inject;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+
+import com.salesmanager.core.business.services.reference.country.CountryService;
+import com.salesmanager.core.business.services.user.UserService;
+import com.salesmanager.core.model.common.CriteriaOrderBy;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.order.OrderCriteria;
+import com.salesmanager.core.model.reference.country.Country;
+import com.salesmanager.core.model.reference.language.Language;
+import com.salesmanager.core.model.user.User;
+import com.salesmanager.shop.constants.Constants;
+
+
+
+@Controller
+public class AdminController {
+
+ @Inject
+ CountryService countryService;
+
+ @Inject
+ UserService userService;
+
+ @RequestMapping(value={"/admin/home.html","/admin/","/admin"}, method=RequestMethod.GET)
+ public String displayDashboard(Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+ Language language = (Language)request.getAttribute("LANGUAGE");
+
+ //display menu
+ Map<String,String> activeMenus = new HashMap<String,String>();
+ activeMenus.put("home", "home");
+
+ model.addAttribute("activeMenus",activeMenus);
+
+
+ //get store information
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ Map<String,Country> countries = countryService.getCountriesMap(language);
+
+ Country storeCountry = store.getCountry();
+ Country country = countries.get(storeCountry.getIsoCode());
+
+ String sCurrentUser = request.getRemoteUser();
+ User currentUser = userService.getByUserName(sCurrentUser);
+
+ model.addAttribute("store", store);
+ model.addAttribute("country", country);
+ model.addAttribute("user", currentUser);
+ //get last 10 orders
+ OrderCriteria orderCriteria = new OrderCriteria();
+ orderCriteria.setMaxCount(10);
+ orderCriteria.setOrderBy(CriteriaOrderBy.DESC);
+
+ return ControllerConstants.Tiles.adminDashboard;
+ }
+
+
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/categories/CategoryController.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/categories/CategoryController.java
new file mode 100644
index 0000000..7641379
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/categories/CategoryController.java
@@ -0,0 +1,508 @@
+package com.salesmanager.shop.admin.controller.categories;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+
+import javax.inject.Inject;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
+
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import com.salesmanager.core.business.services.catalog.category.CategoryService;
+import com.salesmanager.core.business.services.reference.country.CountryService;
+import com.salesmanager.core.business.services.reference.language.LanguageService;
+import com.salesmanager.core.business.utils.ajax.AjaxResponse;
+import com.salesmanager.core.model.catalog.category.Category;
+import com.salesmanager.core.model.catalog.category.CategoryDescription;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.reference.language.Language;
+import com.salesmanager.shop.admin.model.web.Menu;
+import com.salesmanager.shop.constants.Constants;
+import com.salesmanager.shop.utils.LabelUtils;
+
+
+
+@Controller
+public class CategoryController {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(CategoryController.class);
+
+ @Inject
+ LanguageService languageService;
+
+ @Inject
+ CategoryService categoryService;
+
+ @Inject
+ CountryService countryService;
+
+ @Inject
+ LabelUtils messages;
+
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/categories/editCategory.html", method=RequestMethod.GET)
+ public String displayCategoryEdit(@RequestParam("id") long categoryId, Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+ return displayCategory(categoryId,model,request,response);
+
+ }
+
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/categories/createCategory.html", method=RequestMethod.GET)
+ public String displayCategoryCreate(Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+ return displayCategory(null,model,request,response);
+
+ }
+
+
+
+ private String displayCategory(Long categoryId, Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+
+ //display menu
+ setMenu(model,request);
+
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+ Language language = (Language)request.getAttribute("LANGUAGE");
+
+ //get parent categories
+ List<Category> categories = categoryService.listByStore(store,language);
+
+
+ List<Language> languages = store.getLanguages();
+ Category category = new Category();
+
+ if(categoryId!=null && categoryId!=0) {//edit mode
+ category = categoryService.getById(categoryId);
+
+
+
+ if(category==null || category.getMerchantStore().getId().intValue()!=store.getId().intValue()) {
+ return "catalogue-categories";
+ }
+ } else {
+
+ category.setVisible(true);
+
+ }
+
+ List<CategoryDescription> descriptions = new ArrayList<CategoryDescription>();
+
+ for(Language l : languages) {
+
+ CategoryDescription description = null;
+ if(category!=null) {
+ for(CategoryDescription desc : category.getDescriptions()) {
+
+
+ if(desc.getLanguage().getCode().equals(l.getCode())) {
+ description = desc;
+ }
+
+
+ }
+ }
+
+ if(description==null) {
+ description = new CategoryDescription();
+ description.setLanguage(l);
+ }
+
+ descriptions.add(description);
+
+ }
+
+ category.setDescriptions(descriptions);
+
+
+
+ model.addAttribute("category", category);
+ model.addAttribute("categories", categories);
+
+
+
+ return "catalogue-categories-category";
+ }
+
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/categories/save.html", method=RequestMethod.POST)
+ public String saveCategory(@Valid @ModelAttribute("category") Category category, BindingResult result, Model model, HttpServletRequest request) throws Exception {
+
+ Language language = (Language)request.getAttribute("LANGUAGE");
+
+ //display menu
+ setMenu(model,request);
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ if(category.getId() != null && category.getId() >0) { //edit entry
+
+ //get from DB
+ Category currentCategory = categoryService.getById(category.getId());
+
+ if(currentCategory==null || currentCategory.getMerchantStore().getId().intValue()!=store.getId().intValue()) {
+ return "catalogue-categories";
+ }
+
+ }
+
+
+ Map<String,Language> langs = languageService.getLanguagesMap();
+
+
+
+ List<CategoryDescription> descriptions = category.getDescriptions();
+ if(descriptions!=null) {
+
+ for(CategoryDescription description : descriptions) {
+
+ String code = description.getLanguage().getCode();
+ Language l = langs.get(code);
+ description.setLanguage(l);
+ description.setCategory(category);
+
+
+ }
+
+ }
+
+ //save to DB
+ category.setMerchantStore(store);
+ //}
+
+ if (result.hasErrors()) {
+ return "catalogue-categories-category";
+ }
+
+ //check parent
+ if(category.getParent()!=null) {
+ if(category.getParent().getId()==-1) {//this is a root category
+ category.setParent(null);
+ category.setLineage("/");
+ category.setDepth(0);
+ }
+ }
+
+ category.getAuditSection().setModifiedBy(request.getRemoteUser());
+ categoryService.saveOrUpdate(category);
+
+
+ //ajust lineage and depth
+ if(category.getParent()!=null && category.getParent().getId()!=-1) {
+
+ Category parent = new Category();
+ parent.setId(category.getParent().getId());
+ parent.setMerchantStore(store);
+
+ categoryService.addChild(parent, category);
+
+ }
+
+
+ //get parent categories
+ List<Category> categories = categoryService.listByStore(store,language);
+ model.addAttribute("categories", categories);
+
+
+ model.addAttribute("success","success");
+ return "catalogue-categories-category";
+ }
+
+
+ //category list
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/categories/categories.html", method=RequestMethod.GET)
+ public String displayCategories(Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+
+
+ setMenu(model,request);
+
+ //does nothing, ajax subsequent request
+
+ return "catalogue-categories";
+ }
+
+ @SuppressWarnings({ "unchecked"})
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/categories/paging.html", method=RequestMethod.POST, produces="application/json;charset=UTF-8")
+ public @ResponseBody String pageCategories(HttpServletRequest request, HttpServletResponse response) {
+ String categoryName = request.getParameter("name");
+ String categoryCode = request.getParameter("code");
+
+
+ AjaxResponse resp = new AjaxResponse();
+
+
+ try {
+
+ Language language = (Language)request.getAttribute("LANGUAGE");
+
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ List<Category> categories = null;
+
+ if(!StringUtils.isBlank(categoryName)) {
+
+
+ categories = categoryService.getByName(store, categoryName, language);
+
+ } else if(!StringUtils.isBlank(categoryCode)) {
+
+ categoryService.listByCodes(store, new ArrayList<String>(Arrays.asList(categoryCode)), language);
+
+ } else {
+
+ categories = categoryService.listByStore(store, language);
+
+ }
+
+
+
+ for(Category category : categories) {
+
+ @SuppressWarnings("rawtypes")
+ Map entry = new HashMap();
+ entry.put("categoryId", category.getId());
+
+ CategoryDescription description = category.getDescriptions().get(0);
+
+ entry.put("name", description.getName());
+ entry.put("code", category.getCode());
+ entry.put("visible", category.isVisible());
+ resp.addDataEntry(entry);
+
+
+ }
+
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_SUCCESS);
+
+
+
+ } catch (Exception e) {
+ LOGGER.error("Error while paging categories", e);
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ }
+
+ String returnString = resp.toJSONString();
+
+ return returnString;
+ }
+
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/categories/hierarchy.html", method=RequestMethod.GET)
+ public String displayCategoryHierarchy(Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+
+
+ setMenu(model,request);
+
+ //get the list of categories
+ Language language = (Language)request.getAttribute("LANGUAGE");
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ List<Category> categories = categoryService.listByStore(store, language);
+
+ model.addAttribute("categories", categories);
+
+ return "catalogue-categories-hierarchy";
+ }
+
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/categories/remove.html", method=RequestMethod.POST, produces="application/json")
+ public @ResponseBody String deleteCategory(HttpServletRequest request, HttpServletResponse response, Locale locale) {
+ String sid = request.getParameter("categoryId");
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ AjaxResponse resp = new AjaxResponse();
+
+
+ try {
+
+ Long id = Long.parseLong(sid);
+
+ Category category = categoryService.getById(id);
+
+ if(category==null || category.getMerchantStore().getId().intValue() !=store.getId().intValue() ) {
+
+ resp.setStatusMessage(messages.getMessage("message.unauthorized", locale));
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+
+ } else {
+
+ categoryService.delete(category);
+ resp.setStatus(AjaxResponse.RESPONSE_OPERATION_COMPLETED);
+
+ }
+
+
+ } catch (Exception e) {
+ LOGGER.error("Error while deleting category", e);
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorMessage(e);
+ }
+
+ String returnString = resp.toJSONString();
+
+ return returnString;
+ }
+
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/categories/moveCategory.html", method=RequestMethod.POST, produces="application/json")
+ public @ResponseBody String moveCategory(HttpServletRequest request, HttpServletResponse response, Locale locale) {
+ String parentid = request.getParameter("parentId");
+ String childid = request.getParameter("childId");
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ AjaxResponse resp = new AjaxResponse();
+
+
+ try {
+
+ Long parentId = Long.parseLong(parentid);
+ Long childId = Long.parseLong(childid);
+
+ Category child = categoryService.getById(childId);
+ Category parent = categoryService.getById(parentId);
+
+ if(child.getParent().getId()==parentId) {
+ resp.setStatus(AjaxResponse.RESPONSE_OPERATION_COMPLETED);
+ return resp.toJSONString();
+ }
+
+ if(parentId!=1) {
+
+ if(child==null || parent==null || child.getMerchantStore().getId()!=store.getId() || parent.getMerchantStore().getId()!=store.getId()) {
+ resp.setStatusMessage(messages.getMessage("message.unauthorized", locale));
+
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ return resp.toJSONString();
+ }
+
+ if(child.getMerchantStore().getId()!=store.getId() || parent.getMerchantStore().getId()!=store.getId()) {
+ resp.setStatusMessage(messages.getMessage("message.unauthorized", locale));
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ return resp.toJSONString();
+ }
+
+ }
+
+
+ parent.getAuditSection().setModifiedBy(request.getRemoteUser());
+ categoryService.addChild(parent, child);
+ resp.setStatus(AjaxResponse.RESPONSE_OPERATION_COMPLETED);
+
+ } catch (Exception e) {
+ LOGGER.error("Error while moving category", e);
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorMessage(e);
+ }
+
+ String returnString = resp.toJSONString();
+
+ return returnString;
+ }
+
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/categories/checkCategoryCode.html", method=RequestMethod.POST, produces="application/json")
+ public @ResponseBody String checkCategoryCode(HttpServletRequest request, HttpServletResponse response, Locale locale) {
+ String code = request.getParameter("code");
+ String id = request.getParameter("id");
+
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+
+ AjaxResponse resp = new AjaxResponse();
+
+ if(StringUtils.isBlank(code)) {
+ resp.setStatus(AjaxResponse.CODE_ALREADY_EXIST);
+ return resp.toJSONString();
+ }
+
+
+ try {
+
+ Category category = categoryService.getByCode(store, code);
+
+ if(category!=null && StringUtils.isBlank(id)) {
+ resp.setStatus(AjaxResponse.CODE_ALREADY_EXIST);
+ return resp.toJSONString();
+ }
+
+
+ if(category!=null && !StringUtils.isBlank(id)) {
+ try {
+ Long lid = Long.parseLong(id);
+
+ if(category.getCode().equals(code) && category.getId().longValue()==lid) {
+ resp.setStatus(AjaxResponse.CODE_ALREADY_EXIST);
+ return resp.toJSONString();
+ }
+ } catch (Exception e) {
+ resp.setStatus(AjaxResponse.CODE_ALREADY_EXIST);
+ return resp.toJSONString();
+ }
+
+ }
+
+
+
+
+
+
+
+
+
+
+ resp.setStatus(AjaxResponse.RESPONSE_OPERATION_COMPLETED);
+
+ } catch (Exception e) {
+ LOGGER.error("Error while getting category", e);
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorMessage(e);
+ }
+
+ String returnString = resp.toJSONString();
+
+ return returnString;
+ }
+
+ private void setMenu(Model model, HttpServletRequest request) throws Exception {
+
+ //display menu
+ Map<String,String> activeMenus = new HashMap<String,String>();
+ activeMenus.put("catalogue", "catalogue");
+ activeMenus.put("catalogue-categories", "catalogue-categories");
+
+ @SuppressWarnings("unchecked")
+ Map<String, Menu> menus = (Map<String, Menu>)request.getAttribute("MENUMAP");
+
+ Menu currentMenu = (Menu)menus.get("catalogue");
+ model.addAttribute("currentMenu",currentMenu);
+ model.addAttribute("activeMenus",activeMenus);
+ //
+
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/configurations/CacheController.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/configurations/CacheController.java
new file mode 100644
index 0000000..ca62dac
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/configurations/CacheController.java
@@ -0,0 +1,109 @@
+package com.salesmanager.shop.admin.controller.configurations;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.inject.Inject;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import com.salesmanager.core.business.utils.CacheUtils;
+import com.salesmanager.core.business.utils.ajax.AjaxResponse;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.shop.admin.controller.ControllerConstants;
+import com.salesmanager.shop.admin.model.web.Menu;
+import com.salesmanager.shop.constants.Constants;
+
+
+
+
+@Controller
+public class CacheController {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(CacheController.class);
+
+ @Inject
+ private CacheUtils cache;
+
+
+
+ @PreAuthorize("hasRole('AUTH')")
+ @RequestMapping(value="/admin/cache/cacheManagement.html", method=RequestMethod.GET)
+ public String displayAccounts(Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+ this.setMenu(model, request);
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ //get cache keys
+ List<String> cacheKeysList = cache.getCacheKeys(store);
+
+ model.addAttribute("keys", cacheKeysList);
+
+ return ControllerConstants.Tiles.Configuration.cache;
+
+ }
+
+
+ @PreAuthorize("hasRole('AUTH')")
+ @RequestMapping(value="/admin/cache/clear.html", method=RequestMethod.POST, produces="application/json")
+ public @ResponseBody String clearCache(HttpServletRequest request, HttpServletResponse response) {
+ String cacheKey = request.getParameter("cacheKey");
+
+ AjaxResponse resp = new AjaxResponse();
+
+ try {
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ StringBuilder key = new StringBuilder();
+ key.append(store.getId()).append("_").append(cacheKey);
+
+ if(cacheKey!=null) {
+ cache.removeFromCache(key.toString());
+ } else {
+ cache.removeAllFromCache(store);
+ }
+
+ resp.setStatus(AjaxResponse.RESPONSE_OPERATION_COMPLETED);
+
+ } catch (Exception e) {
+ LOGGER.error("Error while updateing groups", e);
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ }
+
+ String returnString = resp.toJSONString();
+ return returnString;
+ }
+
+
+
+ private void setMenu(Model model, HttpServletRequest request) throws Exception {
+
+ //display menu
+ Map<String,String> activeMenus = new HashMap<String,String>();
+ activeMenus.put("cache", "cache");
+
+
+ @SuppressWarnings("unchecked")
+ Map<String, Menu> menus = (Map<String, Menu>)request.getAttribute("MENUMAP");
+
+ Menu currentMenu = (Menu)menus.get("cache");
+ model.addAttribute("currentMenu",currentMenu);
+ model.addAttribute("activeMenus",activeMenus);
+ //
+
+ }
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/configurations/ConfigurationController.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/configurations/ConfigurationController.java
new file mode 100644
index 0000000..ff0ddd0
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/configurations/ConfigurationController.java
@@ -0,0 +1,226 @@
+package com.salesmanager.shop.admin.controller.configurations;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+
+import javax.inject.Inject;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.core.env.Environment;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+
+import com.salesmanager.core.business.modules.email.EmailConfig;
+import com.salesmanager.core.business.services.system.EmailService;
+import com.salesmanager.core.business.services.system.MerchantConfigurationService;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.system.MerchantConfiguration;
+import com.salesmanager.core.model.system.MerchantConfigurationType;
+import com.salesmanager.shop.admin.controller.ControllerConstants;
+import com.salesmanager.shop.admin.model.web.ConfigListWrapper;
+import com.salesmanager.shop.admin.model.web.Menu;
+import com.salesmanager.shop.constants.Constants;
+
+
+
+
+@Controller
+public class ConfigurationController {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(ConfigurationController.class);
+
+ @Inject
+ private MerchantConfigurationService merchantConfigurationService;
+
+ @Inject
+ private EmailService emailService;
+
+ @Inject
+ Environment env;
+
+
+ @PreAuthorize("hasRole('AUTH')")
+ @RequestMapping(value="/admin/configuration/accounts.html", method=RequestMethod.GET)
+ public String displayAccountsConfguration(Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+ setConfigurationMenu(model, request);
+ List<MerchantConfiguration> configs = new ArrayList<MerchantConfiguration>();
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+ MerchantConfiguration merchantFBConfiguration = merchantConfigurationService.getMerchantConfiguration(Constants.KEY_FACEBOOK_PAGE_URL,store);
+ if(null == merchantFBConfiguration)
+ {
+ merchantFBConfiguration = new MerchantConfiguration();
+ merchantFBConfiguration.setKey(Constants.KEY_FACEBOOK_PAGE_URL);
+ merchantFBConfiguration.setMerchantConfigurationType(MerchantConfigurationType.CONFIG);
+ }
+ configs.add(merchantFBConfiguration);
+
+ MerchantConfiguration merchantGoogleAnalyticsConfiguration = merchantConfigurationService.getMerchantConfiguration(Constants.KEY_GOOGLE_ANALYTICS_URL,store);
+ if(null == merchantGoogleAnalyticsConfiguration)
+ {
+ merchantGoogleAnalyticsConfiguration = new MerchantConfiguration();
+ merchantGoogleAnalyticsConfiguration.setKey(Constants.KEY_GOOGLE_ANALYTICS_URL);
+ merchantGoogleAnalyticsConfiguration.setMerchantConfigurationType(MerchantConfigurationType.CONFIG);
+ }
+ configs.add(merchantGoogleAnalyticsConfiguration);
+
+ MerchantConfiguration merchantInstagramConfiguration = merchantConfigurationService.getMerchantConfiguration(Constants.KEY_INSTAGRAM_URL,store);
+ if(null == merchantInstagramConfiguration)
+ {
+ merchantInstagramConfiguration = new MerchantConfiguration();
+ merchantInstagramConfiguration.setKey(Constants.KEY_INSTAGRAM_URL);
+ merchantInstagramConfiguration.setMerchantConfigurationType(MerchantConfigurationType.CONFIG);
+ }
+ configs.add(merchantInstagramConfiguration);
+
+ MerchantConfiguration merchantPinterestConfiguration = merchantConfigurationService.getMerchantConfiguration(Constants.KEY_PINTEREST_PAGE_URL,store);
+ if(null == merchantPinterestConfiguration)
+ {
+ merchantPinterestConfiguration = new MerchantConfiguration();
+ merchantPinterestConfiguration.setKey(Constants.KEY_PINTEREST_PAGE_URL);
+ merchantPinterestConfiguration.setMerchantConfigurationType(MerchantConfigurationType.CONFIG);
+ }
+ configs.add(merchantPinterestConfiguration);
+
+ /**
+ MerchantConfiguration merchantGoogleApiConfiguration = merchantConfigurationService.getMerchantConfiguration(Constants.KEY_GOOGLE_API_KEY,store);
+ if(null == merchantGoogleApiConfiguration)
+ {
+ merchantGoogleApiConfiguration = new MerchantConfiguration();
+ merchantGoogleApiConfiguration.setKey(Constants.KEY_GOOGLE_API_KEY);
+ merchantGoogleApiConfiguration.setMerchantConfigurationType(MerchantConfigurationType.CONFIG);
+ }
+ configs.add(merchantGoogleApiConfiguration);
+ **/
+
+ MerchantConfiguration twitterConfiguration = merchantConfigurationService.getMerchantConfiguration(Constants.KEY_TWITTER_HANDLE,store);
+ if(null == twitterConfiguration)
+ {
+ twitterConfiguration = new MerchantConfiguration();
+ twitterConfiguration.setKey(Constants.KEY_TWITTER_HANDLE);
+ twitterConfiguration.setMerchantConfigurationType(MerchantConfigurationType.CONFIG);
+ }
+ configs.add(twitterConfiguration);
+
+ ConfigListWrapper configWrapper = new ConfigListWrapper();
+ configWrapper.setMerchantConfigs(configs);
+ model.addAttribute("configuration",configWrapper);
+
+ return com.salesmanager.shop.admin.controller.ControllerConstants.Tiles.Configuration.accounts;
+ }
+
+ @PreAuthorize("hasRole('AUTH')")
+ @RequestMapping(value="/admin/configuration/saveConfiguration.html", method=RequestMethod.POST)
+ public String saveConfigurations(@ModelAttribute("configuration") ConfigListWrapper configWrapper, BindingResult result, Model model, HttpServletRequest request, Locale locale) throws Exception
+ {
+ setConfigurationMenu(model, request);
+ List<MerchantConfiguration> configs = configWrapper.getMerchantConfigs();
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+ for(MerchantConfiguration mConfigs : configs)
+ {
+ mConfigs.setMerchantStore(store);
+ if(!StringUtils.isBlank(mConfigs.getValue())) {
+ mConfigs.setMerchantConfigurationType(MerchantConfigurationType.CONFIG);
+ merchantConfigurationService.saveOrUpdate(mConfigs);
+ } else {//remove if submited blank and exists
+ MerchantConfiguration config = merchantConfigurationService.getMerchantConfiguration(mConfigs.getKey(), store);
+ if(config!=null) {
+ merchantConfigurationService.delete(config);
+ }
+ }
+ }
+ model.addAttribute("success","success");
+ model.addAttribute("configuration",configWrapper);
+ return com.salesmanager.shop.admin.controller.ControllerConstants.Tiles.Configuration.accounts;
+
+ }
+
+ @PreAuthorize("hasRole('AUTH')")
+ @RequestMapping(value="/admin/configuration/email.html", method=RequestMethod.GET)
+ public String displayEmailSettings(Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+ setEmailConfigurationMenu(model, request);
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+ EmailConfig emailConfig = emailService.getEmailConfiguration(store);
+ if(emailConfig == null){
+ emailConfig = new EmailConfig();
+ //TODO: Need to check below properties. When there are no record available in MerchantConfguration table with EMAIL_CONFIG key,
+ // instead of showing blank fields in setup screen, show default configured values from email.properties
+ emailConfig.setProtocol(env.getProperty("mailSender.protocol"));
+ emailConfig.setHost(env.getProperty("mailSender.host"));
+ emailConfig.setPort(env.getProperty("mailSender.port}"));
+ emailConfig.setUsername(env.getProperty("mailSender.username"));
+ emailConfig.setPassword(env.getProperty("mailSender.password"));
+ emailConfig.setSmtpAuth(Boolean.parseBoolean(env.getProperty("mailSender.mail.smtp.auth")));
+ emailConfig.setStarttls(Boolean.parseBoolean(env.getProperty("mail.smtp.starttls.enable")));
+ }
+
+ model.addAttribute("configuration", emailConfig);
+ return ControllerConstants.Tiles.Configuration.email;
+ }
+
+ @PreAuthorize("hasRole('AUTH')")
+ @RequestMapping(value="/admin/configuration/saveEmailConfiguration.html", method=RequestMethod.POST)
+ public String saveEmailSettings(@ModelAttribute("configuration") EmailConfig config, BindingResult result, Model model, HttpServletRequest request, Locale locale) throws Exception {
+ setEmailConfigurationMenu(model, request);
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+ EmailConfig emailConfig = emailService.getEmailConfiguration(store);
+ if(emailConfig == null){
+ emailConfig = new EmailConfig();
+ }
+
+ // populte EmailConfig model from UI values
+ emailConfig.setProtocol(config.getProtocol());
+ emailConfig.setHost(config.getHost());
+ emailConfig.setPort(config.getPort());
+ emailConfig.setUsername(config.getUsername());
+ emailConfig.setPassword(config.getPassword());
+ emailConfig.setSmtpAuth(config.isSmtpAuth());
+ emailConfig.setStarttls(config.isStarttls());
+
+ emailService.saveEmailConfiguration(emailConfig, store);
+
+ model.addAttribute("configuration", emailConfig);
+ model.addAttribute("success","success");
+ return ControllerConstants.Tiles.Configuration.email;
+ }
+
+ private void setConfigurationMenu(Model model, HttpServletRequest request) throws Exception {
+
+ Map<String,String> activeMenus = new HashMap<String,String>();
+ activeMenus.put("configuration", "configuration");
+ activeMenus.put("accounts-conf", "accounts-conf");
+
+ @SuppressWarnings("unchecked")
+ Map<String, Menu> menus = (Map<String, Menu>)request.getAttribute("MENUMAP");
+
+ Menu currentMenu = (Menu)menus.get("configuration");
+ model.addAttribute("currentMenu",currentMenu);
+ model.addAttribute("activeMenus",activeMenus);
+ }
+
+ private void setEmailConfigurationMenu(Model model, HttpServletRequest request) throws Exception {
+
+ Map<String,String> activeMenus = new HashMap<String,String>();
+ activeMenus.put("configuration", "configuration");
+ activeMenus.put("email-conf", "email-conf");
+
+ @SuppressWarnings("unchecked")
+ Map<String, Menu> menus = (Map<String, Menu>)request.getAttribute("MENUMAP");
+
+ Menu currentMenu = (Menu)menus.get("configuration");
+ model.addAttribute("currentMenu",currentMenu);
+ model.addAttribute("activeMenus",activeMenus);
+ }
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/configurations/SystemConfigurationController.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/configurations/SystemConfigurationController.java
new file mode 100644
index 0000000..56dccfb
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/configurations/SystemConfigurationController.java
@@ -0,0 +1,87 @@
+package com.salesmanager.shop.admin.controller.configurations;
+
+import java.util.HashMap;
+import java.util.Locale;
+import java.util.Map;
+
+import javax.inject.Inject;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.core.env.Environment;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+
+import com.salesmanager.core.business.services.system.MerchantConfigurationService;
+import com.salesmanager.core.model.merchant.MerchantStore;
+import com.salesmanager.core.model.system.MerchantConfig;
+import com.salesmanager.shop.admin.model.web.Menu;
+import com.salesmanager.shop.constants.Constants;
+
+
+
+@Controller
+public class SystemConfigurationController {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(SystemConfigurationController.class);
+
+ @Inject
+ private MerchantConfigurationService merchantConfigurationService;
+
+ @Inject
+ Environment env;
+
+
+ @PreAuthorize("hasRole('AUTH')")
+ @RequestMapping(value="/admin/configuration/system.html", method=RequestMethod.GET)
+ public String displaySysyemConfgurations(Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+ setMenu(model, request);
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+ MerchantConfig merchantConfiguration = merchantConfigurationService.getMerchantConfig(store);
+
+ if(merchantConfiguration==null) {
+ merchantConfiguration = new MerchantConfig();
+ }
+
+ model.addAttribute("store", store);
+ model.addAttribute("configuration",merchantConfiguration);
+ return com.salesmanager.shop.admin.controller.ControllerConstants.Tiles.Configuration.system;
+ }
+
+ @PreAuthorize("hasRole('AUTH')")
+ @RequestMapping(value="/admin/configuration/saveSystemConfiguration.html", method=RequestMethod.POST)
+ public String saveSystemConfigurations(@ModelAttribute("configuration") MerchantConfig merchantConfiguration, BindingResult result, Model model, HttpServletRequest request, Locale locale) throws Exception
+ {
+ setMenu(model, request);
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+ merchantConfigurationService.saveMerchantConfig(merchantConfiguration, store);
+ model.addAttribute("success","success");
+ model.addAttribute("store", store);
+ model.addAttribute("configuration",merchantConfiguration);
+ return com.salesmanager.shop.admin.controller.ControllerConstants.Tiles.Configuration.system;
+
+ }
+
+
+ private void setMenu(Model model, HttpServletRequest request) throws Exception {
+
+ Map<String,String> activeMenus = new HashMap<String,String>();
+ activeMenus.put("configuration", "configuration");
+ activeMenus.put("system-configurations", "system-configurations");
+
+ @SuppressWarnings("unchecked")
+ Map<String, Menu> menus = (Map<String, Menu>)request.getAttribute("MENUMAP");
+
+ Menu currentMenu = (Menu)menus.get("configuration");
+ model.addAttribute("currentMenu",currentMenu);
+ model.addAttribute("activeMenus",activeMenus);
+ }
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/content/ContentBoxesController.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/content/ContentBoxesController.java
new file mode 100644
index 0000000..68a4153
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/content/ContentBoxesController.java
@@ -0,0 +1,221 @@
+package com.salesmanager.web.admin.controller.content;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import com.salesmanager.core.business.content.model.Content;
+import com.salesmanager.core.business.content.model.ContentDescription;
+import com.salesmanager.core.business.content.model.ContentType;
+import com.salesmanager.core.business.content.service.ContentService;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.business.reference.language.service.LanguageService;
+import com.salesmanager.shop.admin.controller.ControllerConstants;
+import com.salesmanager.web.admin.entity.web.Menu;
+import com.salesmanager.web.constants.Constants;
+
+@Controller
+public class ContentBoxesController {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(ContentBoxesController.class);
+
+ @Inject
+ private ContentService contentService;
+
+ @Inject
+ LanguageService languageService;
+
+ @ModelAttribute("boxPositions")
+ public Set<Map.Entry<String, String>> boxPositions() {
+ final Map<String, String> map = new HashMap<String, String>();
+
+ map.put("LEFT", "LEFT");
+ map.put("RIGHT", "RIGHT");
+
+
+ return (map.entrySet());
+ }
+
+
+
+
+ @PreAuthorize("hasRole('CONTENT')")
+ @RequestMapping(value="/admin/content/boxes/list.html", method=RequestMethod.GET)
+ public String listContentBoxes(Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+ setMenu(model,request);
+
+ model.addAttribute("boxes", true);
+ return ControllerConstants.Tiles.Content.contentPages;
+
+
+ }
+
+ @PreAuthorize("hasRole('CONTENT')")
+ @RequestMapping(value="/admin/content/boxes/create.html", method=RequestMethod.GET)
+ public String createBox(Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+ model.addAttribute("boxes", true);
+ setMenu(model,request);
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+ Content content = new Content();
+ content.setMerchantStore(store);
+ content.setContentType(ContentType.BOX);
+
+
+ List<Language> languages = store.getLanguages();
+
+
+ for(Language l : languages) {
+
+ ContentDescription description = new ContentDescription();
+ description.setLanguage(l);
+ content.getDescriptions().add(description);
+ }
+
+ //add positions
+ List<String> positions = new ArrayList<String>();
+ positions.add("LEFT");
+ positions.add("RIGHT");
+
+ model.addAttribute("positions",positions);
+ model.addAttribute("content",content);
+
+
+ return ControllerConstants.Tiles.Content.contentPagesDetails;
+
+
+ }
+
+ @PreAuthorize("hasRole('CONTENT')")
+ @RequestMapping(value="/admin/content/boxes/details.html", method=RequestMethod.GET)
+ public String getContentDetails(@RequestParam("id") Long id, Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+ model.addAttribute("boxes", true);
+ setMenu(model,request);
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+ Content content = contentService.getById(id);
+
+
+ List<String> positions = new ArrayList<String>();
+ positions.add("LEFT");
+ positions.add("RIGHT");
+
+ model.addAttribute("positions",positions);
+
+ if(content==null) {
+ LOGGER.error("Content entity null for id " + id);
+ return "redirect:/admin/content/boxes/listContent.html";
+ }
+
+ if(content.getMerchantStore().getId().intValue()!=store.getId().intValue()) {
+ LOGGER.error("Content id " + id + " does not belong to merchant " + store.getId());
+ return "redirect:/admin/content/boxes/listContent.html";
+ }
+
+ if(!content.getContentType().name().equals(ContentType.BOX.name())) {
+ LOGGER.error("This controller does not handle content type " + content.getContentType().name());
+ return "redirect:/admin/content/boxes/listContent.html";
+ }
+
+ List<Language> languages = store.getLanguages();
+
+ List<ContentDescription> descriptions = new ArrayList<ContentDescription>();
+ for(Language l : languages) {
+ for(ContentDescription description : content.getDescriptions()) {
+ if(description.getLanguage().getCode().equals(l.getCode())) {
+ descriptions.add(description);
+ }
+ }
+ }
+ content.setDescriptions(descriptions);
+
+ model.addAttribute("content",content);
+
+
+ return ControllerConstants.Tiles.Content.contentPagesDetails;
+
+
+ }
+
+
+
+
+
+ @PreAuthorize("hasRole('CONTENT')")
+ @RequestMapping(value="/admin/content/boxes/save.html", method=RequestMethod.POST)
+ public String saveContent(@Valid @ModelAttribute Content content, BindingResult result, Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+ model.addAttribute("boxes", true);
+ setMenu(model,request);
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ List<String> positions = new ArrayList<String>();
+ positions.add("LEFT");
+ positions.add("RIGHT");
+
+ model.addAttribute("positions",positions);
+
+ if (result.hasErrors()) {
+ return ControllerConstants.Tiles.Content.contentPagesDetails;
+ }
+
+ Map<String,Language> langs = languageService.getLanguagesMap();
+
+ List<ContentDescription> descriptions = content.getDescriptions();
+ for(ContentDescription description : descriptions) {
+ Language l = langs.get(description.getLanguage().getCode());
+ description.setLanguage(l);
+ description.setContent(content);
+ }
+
+ content.setContentType(ContentType.BOX);
+ content.setMerchantStore(store);
+ contentService.saveOrUpdate(content);
+
+
+ model.addAttribute("content",content);
+ model.addAttribute("success","success");
+ return ControllerConstants.Tiles.Content.contentPagesDetails;
+
+
+ }
+
+
+
+ private void setMenu(Model model, HttpServletRequest request) throws Exception {
+
+ //display menu
+ Map<String,String> activeMenus = new HashMap<String,String>();
+ activeMenus.put("content", "content");
+ activeMenus.put("content-boxes", "content-boxes");
+
+ @SuppressWarnings("unchecked")
+ Map<String, Menu> menus = (Map<String, Menu>)request.getAttribute("MENUMAP");
+
+ Menu currentMenu = (Menu)menus.get("content");
+ model.addAttribute("currentMenu",currentMenu);
+ model.addAttribute("activeMenus",activeMenus);
+ //
+
+ }
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/content/ContentImageController.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/content/ContentImageController.java
new file mode 100644
index 0000000..7b60508
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/content/ContentImageController.java
@@ -0,0 +1,263 @@
+package com.salesmanager.web.admin.controller.content;
+
+import java.io.ByteArrayInputStream;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
+
+import org.apache.commons.collections.CollectionUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.multipart.MultipartFile;
+
+import com.salesmanager.core.business.content.model.FileContentType;
+import com.salesmanager.core.business.content.model.InputContentFile;
+import com.salesmanager.core.business.content.service.ContentService;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.utils.ajax.AjaxResponse;
+import com.salesmanager.shop.admin.controller.ControllerConstants;
+import com.salesmanager.web.admin.entity.content.ContentFiles;
+import com.salesmanager.web.admin.entity.web.Menu;
+import com.salesmanager.web.constants.Constants;
+import com.salesmanager.web.utils.ImageFilePath;
+
+/**
+ * Manage static content type image
+ * - Add images
+ * - Remove images
+ * @author Carl Samson
+ *
+ */
+@Controller
+public class ContentImageController {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(ContentImageController.class);
+
+ @Inject
+ private ContentService contentService;
+
+ @Inject
+ @Qualifier("img")
+ private ImageFilePath imageUtils;
+
+ /**
+ * Entry point for the file browser used from the javascript
+ * content editor
+ * @param model
+ * @param request
+ * @param response
+ * @return
+ * @throws Exception
+ */
+ @PreAuthorize("hasRole('CONTENT')")
+ @RequestMapping(value={"/admin/content/fileBrowser.html"}, method=RequestMethod.GET)
+ public String displayFileBrowser(Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+
+ return ControllerConstants.Tiles.ContentImages.fileBrowser;
+
+ }
+
+
+
+ /**
+ * Get images for a given merchant store
+ * @param model
+ * @param request
+ * @param response
+ * @return
+ * @throws Exception
+ */
+ @PreAuthorize("hasRole('CONTENT')")
+ @RequestMapping(value={"/admin/content/contentImages.html","/admin/content/contentManagement.html"}, method=RequestMethod.GET)
+ public String getContentImages(Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+ this.setMenu(model, request);
+ return ControllerConstants.Tiles.ContentImages.contentImages;
+
+ }
+
+
+ @SuppressWarnings({ "unchecked"})
+ @PreAuthorize("hasRole('CONTENT')")
+ @RequestMapping(value="/admin/content/images/paging.html", method=RequestMethod.POST, produces="application/json")
+ public @ResponseBody String pageImages(HttpServletRequest request, HttpServletResponse response) {
+ AjaxResponse resp = new AjaxResponse();
+
+ try {
+
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ List<String> imageNames = contentService.getContentFilesNames(store.getCode(),FileContentType.IMAGE);
+
+ if(imageNames!=null) {
+
+ for(String name : imageNames) {
+
+ @SuppressWarnings("rawtypes")
+ Map entry = new HashMap();
+ entry.put("picture", new StringBuilder().append(request.getContextPath()).append(imageUtils.buildStaticimageUtils(store, name)).toString());
+
+ entry.put("name", name);
+ entry.put("id", name);
+ resp.addDataEntry(entry);
+
+ }
+
+ }
+
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_SUCCESS);
+
+ } catch (Exception e) {
+ LOGGER.error("Error while paging content images", e);
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ }
+
+ String returnString = resp.toJSONString();
+
+ return returnString;
+ }
+
+ /**
+ * Controller methods which allow Admin to add content images to underlying
+ * Infinispan cache.
+ * @param model model object
+ * @param request http request object
+ * @param response http response object
+ * @return view allowing user to add content images
+ * @throws Exception
+ */
+ @PreAuthorize("hasRole('CONTENT')")
+ @RequestMapping(value="/admin/content/createContentImages.html", method=RequestMethod.GET)
+ public String displayContentImagesCreate(final Model model, final HttpServletRequest request, final HttpServletResponse response) throws Exception {
+
+ return ControllerConstants.Tiles.ContentImages.addContentImages;
+
+ }
+
+ /**
+ * Method responsible for adding content images to underlying Infinispan cache.
+ * It will add given content image(s) for given merchant store in the cache.
+ * Following steps will be performed in order to add images
+ * <pre>
+ * 1. Validate form data
+ * 2. Get Merchant Store based on merchant Id.
+ * 3. Call {@link InputContentFile} to add image(s).
+ * </pre>
+ *
+ * @param contentImages
+ * @param bindingResult
+ * @param model
+ * @param request
+ * @return
+ * @throws Exception
+ */
+ @PreAuthorize("hasRole('CONTENT')")
+ @RequestMapping(value="/admin/content/saveContentImages.html", method=RequestMethod.POST)
+ public String saveContentImages(@ModelAttribute(value="contentFiles") @Valid final ContentFiles contentImages, final BindingResult bindingResult,final Model model, final HttpServletRequest request) throws Exception{
+
+ this.setMenu(model, request);
+ if (bindingResult.hasErrors()) {
+ LOGGER.info( "Found {} Validation errors", bindingResult.getErrorCount());
+ return ControllerConstants.Tiles.ContentImages.addContentImages;
+
+ }
+ final List<InputContentFile> contentImagesList=new ArrayList<InputContentFile>();
+ final MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+ if(CollectionUtils.isNotEmpty( contentImages.getFile() )){
+ LOGGER.info("Saving {} content images for merchant {}",contentImages.getFile().size(),store.getId());
+ for(final MultipartFile multipartFile:contentImages.getFile()){
+ if(!multipartFile.isEmpty()){
+ ByteArrayInputStream inputStream = new ByteArrayInputStream( multipartFile.getBytes() );
+ InputContentFile cmsContentImage = new InputContentFile();
+ cmsContentImage.setFileName(multipartFile.getOriginalFilename() );
+ cmsContentImage.setMimeType( multipartFile.getContentType() );
+ cmsContentImage.setFile( inputStream );
+ cmsContentImage.setFileContentType(FileContentType.IMAGE);
+ contentImagesList.add( cmsContentImage);
+ }
+ }
+
+ if(CollectionUtils.isNotEmpty( contentImagesList )){
+ contentService.addContentFiles( store.getCode(), contentImagesList );
+ }
+ else{
+ // show error message on UI
+ }
+ }
+
+ return ControllerConstants.Tiles.ContentImages.contentImages;
+ }
+
+
+ /**
+ * Removes a content image from the CMS
+ * @param request
+ * @param response
+ * @param locale
+ * @return
+ */
+ @PreAuthorize("hasRole('CONTENT')")
+ @RequestMapping(value="/admin/content/removeImage.html", method=RequestMethod.POST, produces="application/json")
+ public @ResponseBody String removeImage(HttpServletRequest request, HttpServletResponse response, Locale locale) {
+ String imageName = request.getParameter("name");
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ AjaxResponse resp = new AjaxResponse();
+
+
+ try {
+
+
+
+ contentService.removeFile(store.getCode(), FileContentType.IMAGE, imageName);
+
+
+
+ } catch (Exception e) {
+ LOGGER.error("Error while deleting product", e);
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorMessage(e);
+ }
+
+ String returnString = resp.toJSONString();
+
+ return returnString;
+ }
+
+ private void setMenu(Model model, HttpServletRequest request) throws Exception {
+
+ //display menu
+ Map<String,String> activeMenus = new HashMap<String,String>();
+ activeMenus.put("content", "content");
+ activeMenus.put("content-images", "content-images");
+
+ @SuppressWarnings("unchecked")
+ Map<String, Menu> menus = (Map<String, Menu>)request.getAttribute("MENUMAP");
+
+ Menu currentMenu = (Menu)menus.get("content");
+ model.addAttribute("currentMenu",currentMenu);
+ model.addAttribute("activeMenus",activeMenus);
+ //
+
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/content/ContentPagesController.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/content/ContentPagesController.java
new file mode 100644
index 0000000..128304c
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/content/ContentPagesController.java
@@ -0,0 +1,371 @@
+package com.salesmanager.web.admin.controller.content;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
+
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import com.salesmanager.core.business.content.model.Content;
+import com.salesmanager.core.business.content.model.ContentDescription;
+import com.salesmanager.core.business.content.model.ContentType;
+import com.salesmanager.core.business.content.service.ContentService;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.business.reference.language.service.LanguageService;
+import com.salesmanager.core.utils.ajax.AjaxResponse;
+import com.salesmanager.shop.admin.controller.ControllerConstants;
+import com.salesmanager.web.admin.entity.web.Menu;
+import com.salesmanager.web.constants.Constants;
+
+@Controller
+public class ContentPagesController {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(StaticContentController.class);
+
+ @Inject
+ private ContentService contentService;
+
+ @Inject
+ LanguageService languageService;
+
+
+ @PreAuthorize("hasRole('CONTENT')")
+ @RequestMapping(value="/admin/content/pages/list.html", method=RequestMethod.GET)
+ public String listContentPages(Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+ setMenu(model,request);
+
+ return ControllerConstants.Tiles.Content.contentPages;
+
+
+ }
+
+ @PreAuthorize("hasRole('CONTENT')")
+ @RequestMapping(value="/admin/content/pages/create.html", method=RequestMethod.GET)
+ public String createPage(Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+ setMenu(model,request);
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+ Content content = new Content();
+ content.setMerchantStore(store);
+ content.setContentType(ContentType.PAGE);
+
+
+ List<Language> languages = store.getLanguages();
+
+
+ for(Language l : languages) {
+
+ ContentDescription description = new ContentDescription();
+ description.setLanguage(l);
+ content.getDescriptions().add(description);
+ }
+
+
+
+ model.addAttribute("content",content);
+
+
+ return ControllerConstants.Tiles.Content.contentPagesDetails;
+
+
+ }
+
+ @PreAuthorize("hasRole('CONTENT')")
+ @RequestMapping(value="/admin/content/pages/details.html", method=RequestMethod.GET)
+ public String getContentDetails(@RequestParam("id") Long id, Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+ setMenu(model,request);
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+ Content content = contentService.getById(id);
+
+
+
+ if(content==null) {
+ LOGGER.error("Content entity null for id " + id);
+ return "redirect:/admin/content/pages/listContent.html";
+ }
+
+ if(content.getMerchantStore().getId().intValue()!=store.getId().intValue()) {
+ LOGGER.error("Content id " + id + " does not belong to merchant " + store.getId());
+ return "redirect:/admin/content/pages/listContent.html";
+ }
+
+ if(!content.getContentType().name().equals(ContentType.PAGE.name())) {
+ LOGGER.error("This controller does not handle content type " + content.getContentType().name());
+ return "redirect:/admin/content/pages/listContent.html";
+ }
+
+ List<Language> languages = store.getLanguages();
+
+ List<ContentDescription> descriptions = new ArrayList<ContentDescription>();
+ for(Language l : languages) {
+ for(ContentDescription description : content.getDescriptions()) {
+ if(description.getLanguage().getCode().equals(l.getCode())) {
+ descriptions.add(description);
+ }
+ }
+ }
+ content.setDescriptions(descriptions);
+
+ model.addAttribute("content",content);
+
+
+ return ControllerConstants.Tiles.Content.contentPagesDetails;
+
+
+ }
+
+
+
+ @PreAuthorize("hasRole('CONTENT')")
+ @RequestMapping(value="/admin/content/remove.html", method=RequestMethod.POST, produces="application/json")
+ public @ResponseBody String removeContent(HttpServletRequest request, HttpServletResponse response, Locale locale) {
+ String id = request.getParameter("id");
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ AjaxResponse resp = new AjaxResponse();
+
+
+ try {
+
+ //get the content first
+ Long lid = Long.parseLong(id);
+
+ Content dbContent = contentService.getById(lid);
+
+ if(dbContent==null) {
+ LOGGER.error("Invalid content id ", id);
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ return resp.toJSONString();
+ }
+
+ if(dbContent!=null && dbContent.getMerchantStore().getId().intValue()!= store.getId().intValue()) {
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ return resp.toJSONString();
+ }
+
+ contentService.delete(dbContent);
+
+ resp.setStatus(AjaxResponse.RESPONSE_OPERATION_COMPLETED);
+
+ } catch (Exception e) {
+ LOGGER.error("Error while deleting product", e);
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorMessage(e);
+ }
+
+ String returnString = resp.toJSONString();
+
+ return returnString;
+ }
+
+
+ @SuppressWarnings({ "unchecked"})
+ @PreAuthorize("hasRole('CONTENT')")
+ @RequestMapping(value="/admin/content/page.html", method=RequestMethod.POST, produces="application/json;charset=UTF-8")
+ public @ResponseBody String pageStaticContent(@RequestParam("contentType") String contentType, HttpServletRequest request, HttpServletResponse response) {
+ AjaxResponse resp = new AjaxResponse();
+
+ try {
+
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ Language language = (Language)request.getAttribute("LANGUAGE");
+
+
+
+
+ ContentType cType = ContentType.PAGE;
+ if(ContentType.BOX.name().equals(contentType)) {
+ cType = ContentType.BOX;
+ }
+ List<Content> contentList = contentService.listByType(cType, store, language);
+
+ if(contentList!=null) {
+
+ for(Content content : contentList) {
+
+ List<ContentDescription> descriptions = content.getDescriptions();
+ ContentDescription description = descriptions.get(0);
+ for(ContentDescription desc : descriptions) {
+ if(desc.getLanguage().getCode().equals(language.getCode())) {
+ description = desc;
+ break;
+ }
+ }
+
+
+ @SuppressWarnings("rawtypes")
+ Map entry = new HashMap();
+ entry.put("id", content.getId());
+ entry.put("code", content.getCode());
+ entry.put("name", description.getName());
+ resp.addDataEntry(entry);
+
+ }
+
+ }
+
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_SUCCESS);
+
+ } catch (Exception e) {
+ LOGGER.error("Error while paging content", e);
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ }
+
+ String returnString = resp.toJSONString();
+
+ return returnString;
+ }
+
+
+ @PreAuthorize("hasRole('CONTENT')")
+ @RequestMapping(value="/admin/content/pages/save.html", method=RequestMethod.POST)
+ public String saveContent(@Valid @ModelAttribute Content content, BindingResult result, Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+ setMenu(model,request);
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ if (result.hasErrors()) {
+ return ControllerConstants.Tiles.Content.contentPagesDetails;
+ }
+
+ Map<String,Language> langs = languageService.getLanguagesMap();
+
+ List<ContentDescription> descriptions = content.getDescriptions();
+ for(ContentDescription description : descriptions) {
+ Language l = langs.get(description.getLanguage().getCode());
+ description.setLanguage(l);
+ description.setContent(content);
+ }
+
+ if(content.getSortOrder()==null) {
+ content.setSortOrder(0);
+ }
+
+ content.setContentType(ContentType.PAGE);
+ content.setMerchantStore(store);
+ contentService.saveOrUpdate(content);
+
+
+ model.addAttribute("content",content);
+ model.addAttribute("success","success");
+ return ControllerConstants.Tiles.Content.contentPagesDetails;
+
+
+ }
+
+ /**
+ * Check if the content code filled in by the
+ * user is unique
+ * @param request
+ * @param response
+ * @param locale
+ * @return
+ */
+ @PreAuthorize("hasRole('CONTENT')")
+ @RequestMapping(value="/admin/content/checkContentCode.html", method=RequestMethod.POST, produces="application/json")
+ public @ResponseBody String checkContentCode(HttpServletRequest request, HttpServletResponse response, Locale locale) {
+
+ String code = request.getParameter("code");
+ String id = request.getParameter("id");
+
+
+
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+
+
+
+ AjaxResponse resp = new AjaxResponse();
+
+ if(StringUtils.isBlank(code)) {
+ resp.setStatus(AjaxResponse.CODE_ALREADY_EXIST);
+ return resp.toJSONString();
+ }
+
+ try {
+
+ Content content = contentService.getByCode(code, store);
+
+
+ if(!StringUtils.isBlank(id)) {
+ try {
+ Long lid = Long.parseLong(id);
+
+ if(content!=null && content.getCode().equals(code) && content.getId().longValue()==lid) {
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_SUCCESS);
+ return resp.toJSONString();
+ }
+ } catch (Exception e) {
+ resp.setStatus(AjaxResponse.CODE_ALREADY_EXIST);
+ return resp.toJSONString();
+ }
+
+ } else {
+ if(content!=null) {
+ resp.setStatus(AjaxResponse.CODE_ALREADY_EXIST);
+ return resp.toJSONString();
+ }
+ }
+
+
+
+ resp.setStatus(AjaxResponse.RESPONSE_OPERATION_COMPLETED);
+
+ } catch (Exception e) {
+ LOGGER.error("Error while getting category", e);
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorMessage(e);
+ }
+
+ String returnString = resp.toJSONString();
+
+ return returnString;
+ }
+
+
+
+ private void setMenu(Model model, HttpServletRequest request) throws Exception {
+
+ //display menu
+ Map<String,String> activeMenus = new HashMap<String,String>();
+ activeMenus.put("content", "content");
+ activeMenus.put("content-pages", "content-pages");
+
+ @SuppressWarnings("unchecked")
+ Map<String, Menu> menus = (Map<String, Menu>)request.getAttribute("MENUMAP");
+
+ Menu currentMenu = (Menu)menus.get("content");
+ model.addAttribute("currentMenu",currentMenu);
+ model.addAttribute("activeMenus",activeMenus);
+ //
+
+ }
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/content/StaticContentController.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/content/StaticContentController.java
new file mode 100644
index 0000000..2e0d20b
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/content/StaticContentController.java
@@ -0,0 +1,248 @@
+package com.salesmanager.web.admin.controller.content;
+
+import java.io.ByteArrayInputStream;
+import java.net.URLConnection;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
+
+import org.apache.commons.collections.CollectionUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.multipart.MultipartFile;
+
+import com.salesmanager.core.business.content.model.FileContentType;
+import com.salesmanager.core.business.content.model.InputContentFile;
+import com.salesmanager.core.business.content.service.ContentService;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.utils.ajax.AjaxResponse;
+import com.salesmanager.shop.admin.controller.ControllerConstants;
+import com.salesmanager.web.admin.entity.content.ContentFiles;
+import com.salesmanager.web.admin.entity.web.Menu;
+import com.salesmanager.web.constants.Constants;
+import com.salesmanager.web.utils.ImageFilePath;
+
+
+@Controller
+public class StaticContentController {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(StaticContentController.class);
+
+ @Inject
+ private ContentService contentService;
+
+
+ @Inject
+ @Qualifier("img")
+ private ImageFilePath imageUtils;
+
+
+ @PreAuthorize("hasRole('CONTENT')")
+ @RequestMapping(value={"/admin/content/static/contentFiles.html","/admin/content/static/contentManagement.html"}, method=RequestMethod.GET)
+ public String getContentImages(Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+ this.setMenu(model, request);
+ return ControllerConstants.Tiles.ContentFiles.contentFiles;
+
+ }
+
+
+ /**
+ * Display files in a List grid
+ * @param request
+ * @param response
+ * @return
+ */
+ @SuppressWarnings({ "unchecked"})
+ @PreAuthorize("hasRole('CONTENT')")
+ @RequestMapping(value="/admin/content/static/page.html", method=RequestMethod.POST, produces="application/json;charset=UTF-8")
+ public @ResponseBody String pageStaticContent(HttpServletRequest request, HttpServletResponse response) {
+ AjaxResponse resp = new AjaxResponse();
+
+ try {
+
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ List<String> fileNames = contentService.getContentFilesNames(store.getCode(), FileContentType.STATIC_FILE);
+
+/* Map<String,String> configurations = (Map<String, String>)request.getSession().getAttribute(Constants.STORE_CONFIGURATION);
+ String scheme = Constants.HTTP_SCHEME;
+ if(configurations!=null) {
+ scheme = (String)configurations.get("scheme");
+ }
+
+
+ StringBuilder storePath = new StringBuilder();
+ storePath.append(scheme).append("://")
+ .append(store.getDomainName())
+ .append(request.getContextPath());
+*/
+
+ if(fileNames!=null) {
+
+ for(String name : fileNames) {
+
+ String mimeType = URLConnection.getFileNameMap().getContentTypeFor(name);
+
+ //StringBuilder filePath = new StringBuilder();
+
+ //filePath.append(storePath.toString()).append(filePathUtils.buildStaticFilePath(store,name));
+
+ String filePath = imageUtils.buildStaticContentFilePath(store,name);
+
+ //String filePath = filePathUtils.buildStaticFileAbsolutePath(store, name);
+
+
+ @SuppressWarnings("rawtypes")
+ Map entry = new HashMap();
+ entry.put("name", name);
+ entry.put("path", filePath.toString());
+ entry.put("mimeType", mimeType);
+ resp.addDataEntry(entry);
+
+ }
+
+ }
+
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_SUCCESS);
+
+ } catch (Exception e) {
+ LOGGER.error("Error while paging content images", e);
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ }
+
+ String returnString = resp.toJSONString();
+
+ return returnString;
+ }
+
+
+
+ /**
+ * Method responsible for adding content files to underlying Infinispan cache.
+ * It will add given content file(s) for given merchant store in the cache.
+ * Following steps will be performed in order to add files
+ * <pre>
+ * 1. Validate form data
+ * 2. Get Merchant Store based on merchant Id.
+ * 3. Call {@link InputContentFile} to add file(s).
+ * </pre>
+ *
+ * @param contentImages
+ * @param bindingResult
+ * @param model
+ * @param request
+ * @return
+ * @throws Exception
+ */
+ @PreAuthorize("hasRole('CONTENT')")
+ @RequestMapping(value="/admin/content/static/saveFiles.html", method=RequestMethod.POST)
+ public String saveFiles(@ModelAttribute(value="contentFiles") @Valid final ContentFiles contentFiles, final BindingResult bindingResult,final Model model, final HttpServletRequest request) throws Exception{
+
+ this.setMenu(model, request);
+ if (bindingResult.hasErrors()) {
+ LOGGER.info( "Found {} Validation errors", bindingResult.getErrorCount());
+ return ControllerConstants.Tiles.ContentFiles.contentFiles;
+
+ }
+ final List<InputContentFile> contentFilesList=new ArrayList<InputContentFile>();
+ final MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+ if(CollectionUtils.isNotEmpty( contentFiles.getFile() )){
+ LOGGER.info("Saving {} content files for merchant {}",contentFiles.getFile().size(),store.getId());
+ for(final MultipartFile multipartFile:contentFiles.getFile()){
+ if(!multipartFile.isEmpty()){
+ ByteArrayInputStream inputStream = new ByteArrayInputStream( multipartFile.getBytes() );
+ InputContentFile cmsContentImage = new InputContentFile();
+ cmsContentImage.setFileName(multipartFile.getOriginalFilename() );
+ cmsContentImage.setFileContentType( FileContentType.STATIC_FILE );
+ cmsContentImage.setFile( inputStream );
+ contentFilesList.add( cmsContentImage);
+ }
+ }
+
+ if(CollectionUtils.isNotEmpty( contentFilesList )){
+ contentService.addContentFiles( store.getCode(), contentFilesList );
+ }
+ else{
+ // show error message on UI
+ }
+ }
+
+ return ControllerConstants.Tiles.ContentFiles.contentFiles;
+ }
+
+
+ /**
+ * Removes a static file from the CMS
+ * @param request
+ * @param response
+ * @param locale
+ * @return
+ */
+ @PreAuthorize("hasRole('CONTENT')")
+ @RequestMapping(value="/admin/content/static/removeFile.html", method=RequestMethod.POST, produces="application/json")
+ public @ResponseBody String removeFile(HttpServletRequest request, HttpServletResponse response, Locale locale) {
+ String fileName = request.getParameter("name");
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ AjaxResponse resp = new AjaxResponse();
+
+
+ try {
+
+
+
+ contentService.removeFile(store.getCode(), FileContentType.STATIC_FILE, fileName);
+
+ resp.setStatus(AjaxResponse.RESPONSE_OPERATION_COMPLETED);
+
+ } catch (Exception e) {
+ LOGGER.error("Error while deleting product", e);
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorMessage(e);
+ }
+
+ String returnString = resp.toJSONString();
+
+ return returnString;
+ }
+
+
+
+
+ private void setMenu(Model model, HttpServletRequest request) throws Exception {
+
+ //display menu
+ Map<String,String> activeMenus = new HashMap<String,String>();
+ activeMenus.put("content", "content");
+ activeMenus.put("content-files", "content-files");
+
+ @SuppressWarnings("unchecked")
+ Map<String, Menu> menus = (Map<String, Menu>)request.getAttribute("MENUMAP");
+
+ Menu currentMenu = (Menu)menus.get("content");
+ model.addAttribute("currentMenu",currentMenu);
+ model.addAttribute("activeMenus",activeMenus);
+ //
+
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/ControllerConstants.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/ControllerConstants.java
new file mode 100644
index 0000000..fd6d686
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/ControllerConstants.java
@@ -0,0 +1,109 @@
+/**
+ *
+ */
+package com.salesmanager.shop.admin.controller;
+
+/**
+ * Interface contain constant for Controller.These constant will be used throughout
+ * sm-shop to providing constant values to various Controllers being used in the
+ * application.
+ * @author Umesh A
+ *
+ */
+public interface ControllerConstants
+{
+
+ interface Tiles{
+
+ final String adminDashboard="admin-dashboard";
+ interface ContentImages{
+ final String addContentImages="admin-contentImages-add";
+ final String contentImages="admin-content-images";
+ final String fileBrowser="admin-content-filebrowser";
+
+ }
+
+ interface ContentFiles{
+ final String addContentFiles="admin-content-files-add";
+ final String contentFiles="admin-content-files";
+
+
+ }
+
+ interface Content{
+ final String contentPages="admin-content-pages";
+ final String contentPagesDetails="admin-content-pages-details";
+
+ }
+
+ interface Customer{
+ final String optionsList="admin-customer-options-list";
+ final String optionDetails="admin-customer-options-details";
+ final String optionsValuesList="admin-customer-options-values-list";
+ final String optionsValueDetails="admin-customer-options-values-details";
+ final String optionsSet="admin-customer-options-set";
+
+ }
+
+ interface Product{
+ final String productReviews="catalogue-product-reviews";
+ final String productPrices="admin-products-prices";
+ final String productPrice="admin-products-price";
+ final String relatedItems="admin-products-related";
+ final String digitalProduct="admin-products-digital";
+ final String productImages="admin-products-images";
+ final String productImagesUrl="admin-products-images-url";
+ final String productKeywords="admin-products-keywords";
+ final String customGroups="admin-products-groups";
+ final String customGroupsDetails="admin-products-groups-details";
+ final String manufacturerList="admin-products-manufacturer";
+ final String manufacturerDetails="admin-products-manufacturer-details";
+ }
+
+ interface User{
+ final String profile="admin-user-profile";
+ final String users="admin-users";
+ final String password="admin-user-password";
+ }
+
+ interface Store{
+ final String stores="admin-stores";
+ }
+
+
+ interface Shipping{
+ final String shippingMethod="shipping-method";
+ final String shippingMethods="shipping-methods";
+ final String shippingOptions="shipping-options";
+ final String shippingPackaging="shipping-packaging";
+ final String customShippingWeightBased="admin-shipping-custom";
+ }
+
+ interface Payment{
+ final String paymentMethods="payment-methods";
+ final String paymentMethod="payment-method";
+ }
+
+ interface Order{
+ final String orders="admin-orders";
+ final String ordersEdit="admin-orders-edit";
+ final String ordersTransactions="admin-orders-transactions";
+ }
+
+ interface Configuration{
+ final String accounts="config-accounts";
+ final String email="config-email";
+ final String cache="admin-cache";
+ final String system="config-system";
+ }
+
+ interface Tax{
+ final String taxClasses="tax-classes";
+ final String taxClass="tax-class";
+ final String taxConfiguration="tax-configuration";
+ final String taxRates="tax-rates";
+ final String taxRate="tax-rate";
+ }
+
+ }
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/customers/CustomerOptionsController.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/customers/CustomerOptionsController.java
new file mode 100644
index 0000000..1bb5c13
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/customers/CustomerOptionsController.java
@@ -0,0 +1,342 @@
+package com.salesmanager.web.admin.controller.customers;
+
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.Set;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
+
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.validation.BindingResult;
+import org.springframework.validation.ObjectError;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import com.salesmanager.core.business.customer.model.attribute.CustomerOption;
+import com.salesmanager.core.business.customer.model.attribute.CustomerOptionDescription;
+import com.salesmanager.core.business.customer.service.attribute.CustomerOptionService;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.business.reference.language.service.LanguageService;
+import com.salesmanager.core.utils.ajax.AjaxResponse;
+import com.salesmanager.shop.admin.controller.ControllerConstants;
+import com.salesmanager.web.admin.entity.web.Menu;
+import com.salesmanager.web.constants.Constants;
+import com.salesmanager.web.utils.LabelUtils;
+
+@Controller
+public class CustomerOptionsController {
+
+ @Inject
+ private LanguageService languageService;
+
+ @Inject
+ private CustomerOptionService customerOptionService;
+
+ @Inject
+ private LabelUtils messages;
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(CustomerOptionsController.class);
+
+
+ @PreAuthorize("hasRole('CUSTOMER')")
+ @RequestMapping(value="/admin/customers/options/list.html", method=RequestMethod.GET)
+ public String displayOptions(Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+ setMenu(model,request);
+ return ControllerConstants.Tiles.Customer.optionsList;
+
+
+ }
+
+ @PreAuthorize("hasRole('CUSTOMER')")
+ @RequestMapping(value="/admin/customers/options/edit.html", method=RequestMethod.GET)
+ public String displayOptionEdit(@RequestParam("id") long id, HttpServletRequest request, HttpServletResponse response, Model model, Locale locale) throws Exception {
+ return displayOption(id,request,response,model,locale);
+ }
+
+ @PreAuthorize("hasRole('CUSTOMER')")
+ @RequestMapping(value="/admin/customers/options/create.html", method=RequestMethod.GET)
+ public String displayOptionCreate(HttpServletRequest request, HttpServletResponse response, Model model, Locale locale) throws Exception {
+ return displayOption(null,request,response,model,locale);
+ }
+
+ private String displayOption(Long optionId, HttpServletRequest request, HttpServletResponse response,Model model,Locale locale) throws Exception {
+
+
+ this.setMenu(model, request);
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ List<Language> languages = store.getLanguages();
+
+ Set<CustomerOptionDescription> descriptions = new HashSet<CustomerOptionDescription>();
+
+ CustomerOption option = new CustomerOption();
+
+ if(optionId!=null && optionId!=0) {//edit mode
+
+
+ option = customerOptionService.getById(optionId);
+
+
+ if(option==null) {
+ return "redirect:/admin/customers/options/list.html";
+ }
+
+ if(option.getMerchantStore().getId().intValue()!=store.getId().intValue()) {
+ return "redirect:/admin/customers/options/list.html";
+ }
+
+ Set<CustomerOptionDescription> optionDescriptions = option.getDescriptions();
+
+
+
+ for(Language l : languages) {
+
+ CustomerOptionDescription optionDescription = null;
+
+ if(optionDescriptions!=null) {
+
+ for(CustomerOptionDescription description : optionDescriptions) {
+
+ String code = description.getLanguage().getCode();
+ if(code.equals(l.getCode())) {
+ optionDescription = description;
+ }
+ }
+
+ }
+
+ if(optionDescription==null) {
+ optionDescription = new CustomerOptionDescription();
+ optionDescription.setLanguage(l);
+ }
+ descriptions.add(optionDescription);
+ }
+
+ } else {
+ for(Language l : languages) {
+ CustomerOptionDescription desc = new CustomerOptionDescription();
+ desc.setLanguage(l);
+ descriptions.add(desc);
+ }
+ }
+
+
+ option.setDescriptions(descriptions);
+ model.addAttribute("option", option);
+ return ControllerConstants.Tiles.Customer.optionDetails;
+
+
+ }
+
+
+ @PreAuthorize("hasRole('CUSTOMER')")
+ @RequestMapping(value="/admin/customers/options/save.html", method=RequestMethod.POST)
+ public String saveOption(@Valid @ModelAttribute("option") CustomerOption option, BindingResult result, Model model, HttpServletRequest request, Locale locale) throws Exception {
+
+
+ //display menu
+ setMenu(model,request);
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+ CustomerOption dbEntity = null;
+
+ if(option.getId() != null && option.getId() >0) { //edit entry
+
+ //get from DB
+ dbEntity = customerOptionService.getById(option.getId());
+
+ if(dbEntity==null) {
+ return "redirect:/admin/options/options.html";
+ }
+ }
+
+ //validate if it contains an existing code
+ CustomerOption byCode = customerOptionService.getByCode(store, option.getCode());
+ if(byCode!=null && option.getId()==null) {
+ ObjectError error = new ObjectError("code",messages.getMessage("message.code.exist", locale));
+ result.addError(error);
+ }
+
+
+ Map<String,Language> langs = languageService.getLanguagesMap();
+
+
+ List<CustomerOptionDescription> descriptions = option.getDescriptionsList();
+
+ if(descriptions!=null) {
+
+ for(CustomerOptionDescription description : descriptions) {
+
+ if(StringUtils.isBlank(description.getName())) {
+ ObjectError error = new ObjectError("name",messages.getMessage("message.name.required", locale));
+ result.addError(error);
+ } else {
+
+ String code = description.getLanguage().getCode();
+ Language l = langs.get(code);
+ description.setLanguage(l);
+ description.setCustomerOption(option);
+
+ }
+
+ }
+
+ }
+
+ option.setDescriptions(new HashSet<CustomerOptionDescription>(descriptions));
+ option.setMerchantStore(store);
+
+
+ if (result.hasErrors()) {
+ return ControllerConstants.Tiles.Customer.optionDetails;
+ }
+
+
+
+
+ customerOptionService.saveOrUpdate(option);
+
+
+
+
+ model.addAttribute("success","success");
+ return ControllerConstants.Tiles.Customer.optionDetails;
+ }
+
+
+
+ @SuppressWarnings("unchecked")
+ @PreAuthorize("hasRole('CUSTOMER')")
+ @RequestMapping(value="/admin/customers/options/paging.html", method=RequestMethod.POST, produces="application/json;text/plain;charset=UTF-8")
+ public @ResponseBody String pageOptions(HttpServletRequest request, HttpServletResponse response) {
+
+ AjaxResponse resp = new AjaxResponse();
+
+
+ try {
+
+
+ Language language = (Language)request.getAttribute("LANGUAGE");
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ List<CustomerOption> options = null;
+
+
+
+ options = customerOptionService.listByStore(store, language);
+
+
+
+
+
+ for(CustomerOption option : options) {
+
+ @SuppressWarnings("rawtypes")
+ Map entry = new HashMap();
+ entry.put("id", option.getId());
+
+ CustomerOptionDescription description = option.getDescriptions().iterator().next();
+
+ entry.put("name", description.getName());
+ entry.put("type", option.getCustomerOptionType());
+ entry.put("active", option.isActive());
+ entry.put("public", option.isPublicOption());
+ resp.addDataEntry(entry);
+
+
+ }
+
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_SUCCESS);
+
+
+
+ } catch (Exception e) {
+ LOGGER.error("Error while paging options", e);
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ }
+
+ String returnString = resp.toJSONString();
+
+ return returnString;
+
+
+ }
+
+
+
+
+ private void setMenu(Model model, HttpServletRequest request) throws Exception {
+
+ //display menu
+ Map<String,String> activeMenus = new HashMap<String,String>();
+ activeMenus.put("customer", "customer");
+ activeMenus.put("customer-options", "customer-options");
+
+ @SuppressWarnings("unchecked")
+ Map<String, Menu> menus = (Map<String, Menu>)request.getAttribute("MENUMAP");
+
+ Menu currentMenu = (Menu)menus.get("customer");
+ model.addAttribute("currentMenu",currentMenu);
+ model.addAttribute("activeMenus",activeMenus);
+ //
+
+ }
+
+ @PreAuthorize("hasRole('CUSTOMER')")
+ @RequestMapping(value="/admin/customers/options/remove.html", method=RequestMethod.POST, produces="application/json")
+ public @ResponseBody String deleteOption(HttpServletRequest request, HttpServletResponse response, Locale locale) {
+ String sid = request.getParameter("id");
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ AjaxResponse resp = new AjaxResponse();
+
+
+ try {
+
+ Long id = Long.parseLong(sid);
+
+ CustomerOption entity = customerOptionService.getById(id);
+
+ if(entity==null || entity.getMerchantStore().getId().intValue()!=store.getId().intValue()) {
+
+ resp.setStatusMessage(messages.getMessage("message.unauthorized", locale));
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+
+ } else {
+
+ customerOptionService.delete(entity);
+ resp.setStatus(AjaxResponse.RESPONSE_OPERATION_COMPLETED);
+
+ }
+
+
+ } catch (Exception e) {
+ LOGGER.error("Error while deleting option", e);
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorMessage(e);
+ }
+
+ String returnString = resp.toJSONString();
+
+ return returnString;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/customers/CustomerOptionsSetController.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/customers/CustomerOptionsSetController.java
new file mode 100644
index 0000000..0c337d8
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/customers/CustomerOptionsSetController.java
@@ -0,0 +1,367 @@
+package com.salesmanager.web.admin.controller.customers;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
+
+import org.codehaus.jackson.map.ObjectMapper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.validation.BindingResult;
+import org.springframework.validation.ObjectError;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import com.salesmanager.core.business.customer.model.attribute.CustomerOption;
+import com.salesmanager.core.business.customer.model.attribute.CustomerOptionDescription;
+import com.salesmanager.core.business.customer.model.attribute.CustomerOptionSet;
+import com.salesmanager.core.business.customer.model.attribute.CustomerOptionValue;
+import com.salesmanager.core.business.customer.model.attribute.CustomerOptionValueDescription;
+import com.salesmanager.core.business.customer.service.attribute.CustomerOptionService;
+import com.salesmanager.core.business.customer.service.attribute.CustomerOptionSetService;
+import com.salesmanager.core.business.customer.service.attribute.CustomerOptionValueService;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.business.reference.language.service.LanguageService;
+import com.salesmanager.core.utils.ajax.AjaxResponse;
+import com.salesmanager.shop.admin.controller.ControllerConstants;
+import com.salesmanager.web.admin.entity.web.Menu;
+import com.salesmanager.web.constants.Constants;
+import com.salesmanager.web.utils.LabelUtils;
+
+@Controller
+public class CustomerOptionsSetController {
+
+ @Inject
+ private LanguageService languageService;
+
+ @Inject
+ private CustomerOptionSetService customerOptionSetService;
+
+ @Inject
+ private CustomerOptionService customerOptionService;
+
+ @Inject
+ private CustomerOptionValueService customerOptionValueService;
+
+ @Inject
+ private LabelUtils messages;
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(CustomerOptionsSetController.class);
+
+
+ @PreAuthorize("hasRole('CUSTOMER')")
+ @RequestMapping(value="/admin/customers/optionsset/list.html", method=RequestMethod.GET)
+ public String displayOptions(Model model, HttpServletRequest request, HttpServletResponse response, Locale locale) throws Exception {
+
+ Language language = languageService.toLanguage(locale);
+
+
+ this.setMenu(model, request);
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+
+ //get options
+ List<CustomerOption> options = customerOptionService.listByStore(store, language);
+
+
+ //get values
+ List<CustomerOptionValue> optionsValues = customerOptionValueService.listByStore(store, language);
+
+
+ CustomerOptionSet optionSet = new CustomerOptionSet();
+
+ model.addAttribute("optionSet", optionSet);
+ model.addAttribute("options", options);
+ model.addAttribute("optionsValues", optionsValues);
+ return ControllerConstants.Tiles.Customer.optionsSet;
+
+
+ }
+
+
+ @PreAuthorize("hasRole('CUSTOMER')")
+ @RequestMapping(value="/admin/customers/optionsset/save.html", method=RequestMethod.POST)
+ public String saveOptionSet(@Valid @ModelAttribute("optionSet") CustomerOptionSet optionSet, BindingResult result, Model model, HttpServletRequest request, Locale locale) throws Exception {
+
+
+ //display menu
+ setMenu(model,request);
+
+ Language language = languageService.toLanguage(locale);
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+
+ /** reference objects **/
+
+ //get options
+ List<CustomerOption> options = customerOptionService.listByStore(store, language);
+
+
+ //get values
+ List<CustomerOptionValue> optionsValues = customerOptionValueService.listByStore(store, language);
+
+
+ model.addAttribute("options", options);
+ model.addAttribute("optionsValues", optionsValues);
+
+ if(optionSet.getCustomerOption()==null || optionSet.getCustomerOptionValue()==null) {
+ model.addAttribute("errorMessageAssociation",messages.getMessage("message.optionset.noassociation", locale));
+ ObjectError error = new ObjectError("customerOptionValue.id",messages.getMessage("message.optionset.noassociation", locale));
+ result.addError(error);
+ return ControllerConstants.Tiles.Customer.optionsSet;
+ }
+
+ //see if association already exist
+ CustomerOption option = null;
+
+ //get from DB
+ //option = customerOptionService.getById(optionSet.getPk().getCustomerOption().getId());
+ option = customerOptionService.getById(optionSet.getCustomerOption().getId());
+
+ if(option==null) {
+ return "redirect:/admin/customers/optionsset/list.html";
+ }
+
+ //CustomerOptionValue optionValue = customerOptionValueService.getById(optionSet.getPk().getCustomerOptionValue().getId());
+ CustomerOptionValue optionValue = customerOptionValueService.getById(optionSet.getCustomerOptionValue().getId());
+
+ if(optionValue==null) {
+ return "redirect:/admin/customers/optionsset/list.html";
+ }
+
+
+ List<CustomerOptionSet> optionsSet = customerOptionSetService.listByStore(store, language);
+
+ if(optionsSet!=null && optionsSet.size()>0) {
+
+ for(CustomerOptionSet optSet : optionsSet) {
+
+ //CustomerOption opt = optSet.getPk().getCustomerOption();
+ CustomerOption opt = optSet.getCustomerOption();
+ //CustomerOptionValue optValue = optSet.getPk().getCustomerOptionValue();
+ CustomerOptionValue optValue = optSet.getCustomerOptionValue();
+
+ //if(opt.getId().longValue()==optionSet.getPk().getCustomerOption().getId().longValue()
+ if(opt.getId().longValue()==optionSet.getCustomerOption().getId().longValue()
+ //&& optValue.getId().longValue() == optionSet.getPk().getCustomerOptionValue().getId().longValue()) {
+ && optValue.getId().longValue() == optionSet.getCustomerOptionValue().getId().longValue()) {
+ model.addAttribute("errorMessageAssociation",messages.getMessage("message.optionset.optionassociationexists", locale));
+ ObjectError error = new ObjectError("customerOptionValue.id",messages.getMessage("message.optionset.optionassociationexists", locale));
+ result.addError(error);
+ break;
+ }
+ }
+ }
+
+ if (result.hasErrors()) {
+ return ControllerConstants.Tiles.Customer.optionsSet;
+ }
+
+
+ //optionSet.getPk().setCustomerOption(option);
+ optionSet.setCustomerOption(option);
+ //optionSet.getPk().setCustomerOptionValue(optionValue);
+ optionSet.setCustomerOptionValue(optionValue);
+ customerOptionSetService.create(optionSet);
+
+
+
+
+ model.addAttribute("success","success");
+ return ControllerConstants.Tiles.Customer.optionsSet;
+ }
+
+
+
+ @SuppressWarnings("unchecked")
+ @PreAuthorize("hasRole('CUSTOMER')")
+ @RequestMapping(value="/admin/customers/optionsset/paging.html", method=RequestMethod.POST, produces="application/json;text/plain;charset=UTF-8")
+ public @ResponseBody String pageOptionsSet(HttpServletRequest request, HttpServletResponse response) {
+
+ AjaxResponse resp = new AjaxResponse();
+
+
+ try {
+
+
+ Language language = (Language)request.getAttribute("LANGUAGE");
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+ //List<CustomerOption> options = null;
+
+ List<CustomerOptionSet> optionSet = customerOptionSetService.listByStore(store, language);
+ //for(CustomerOption option : options) {
+
+
+ //Set<CustomerOptionSet> optionSet = option.getCustomerOptions();
+
+ if(optionSet!=null && optionSet.size()>0) {
+
+ for(CustomerOptionSet optSet : optionSet) {
+
+ //CustomerOption customerOption = optSet.getPk().getCustomerOption();
+ CustomerOption customerOption = optSet.getCustomerOption();
+ //CustomerOptionValue customerOptionValue = optSet.getPk().getCustomerOptionValue();
+ CustomerOptionValue customerOptionValue = optSet.getCustomerOptionValue();
+
+ @SuppressWarnings("rawtypes")
+ Map entry = new HashMap();
+
+
+ entry.put("id", optSet.getId());
+
+ CustomerOptionDescription description = customerOption.getDescriptionsSettoList().get(0);
+ CustomerOptionValueDescription valueDescription = customerOptionValue.getDescriptionsSettoList().get(0);
+
+ entry.put("optionCode", customerOption.getCode());
+ entry.put("optionName", description.getName());
+ entry.put("optionValueCode", customerOptionValue.getCode());
+ entry.put("optionValueName", valueDescription.getName());
+ entry.put("order", customerOptionValue.getSortOrder());
+ resp.addDataEntry(entry);
+
+ }
+
+ }
+
+
+ //}
+
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_SUCCESS);
+
+
+
+ } catch (Exception e) {
+ LOGGER.error("Error while paging options", e);
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ }
+
+ String returnString = resp.toJSONString();
+
+ return returnString;
+
+
+ }
+
+
+
+
+ private void setMenu(Model model, HttpServletRequest request) throws Exception {
+
+ //display menu
+ Map<String,String> activeMenus = new HashMap<String,String>();
+ activeMenus.put("customer", "customer");
+ activeMenus.put("customer-options", "customer-options");
+
+ @SuppressWarnings("unchecked")
+ Map<String, Menu> menus = (Map<String, Menu>)request.getAttribute("MENUMAP");
+
+ Menu currentMenu = (Menu)menus.get("customer");
+ model.addAttribute("currentMenu",currentMenu);
+ model.addAttribute("activeMenus",activeMenus);
+ //
+
+ }
+
+ @PreAuthorize("hasRole('CUSTOMER')")
+ @RequestMapping(value="/admin/customers/optionsset/remove.html", method=RequestMethod.POST, produces="application/json")
+ public @ResponseBody String deleteOptionSet(HttpServletRequest request, HttpServletResponse response, Locale locale) {
+ String sid = request.getParameter("id");
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+ AjaxResponse resp = new AjaxResponse();
+
+
+ try {
+
+
+
+ Long optionSetId = Long.parseLong(sid);
+
+
+ CustomerOptionSet entity = customerOptionSetService.getById(optionSetId);
+ //if(entity==null || entity.getPk().getCustomerOption().getMerchantStore().getId().intValue()!=store.getId().intValue()) {
+ if(entity==null || entity.getCustomerOption().getMerchantStore().getId().intValue()!=store.getId().intValue()) {
+
+ resp.setStatusMessage(messages.getMessage("message.unauthorized", locale));
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+
+ } else {
+
+ customerOptionSetService.delete(entity);
+ resp.setStatus(AjaxResponse.RESPONSE_OPERATION_COMPLETED);
+
+ }
+
+
+ } catch (Exception e) {
+ LOGGER.error("Error while deleting option", e);
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorMessage(e);
+ }
+
+ String returnString = resp.toJSONString();
+
+ return returnString;
+ }
+
+
+
+ @PreAuthorize("hasRole('CUSTOMER')")
+ @RequestMapping(value="/admin/customers/optionsset/update.html", method=RequestMethod.POST, produces="application/json;text/plain;charset=UTF-8")
+ public @ResponseBody String updateOrder(HttpServletRequest request, HttpServletResponse response) {
+ String values = request.getParameter("_oldValues");
+ String order = request.getParameter("order");
+
+ AjaxResponse resp = new AjaxResponse();
+
+ try {
+
+ /**
+ * Values
+ */
+ ObjectMapper mapper = new ObjectMapper();
+ @SuppressWarnings("rawtypes")
+ Map conf = mapper.readValue(values, Map.class);
+
+ String sid = (String)conf.get("id");
+
+ Long optionId = Long.parseLong(sid);
+
+ CustomerOptionSet entity = customerOptionSetService.getById(optionId);
+
+
+ if(entity!=null) {
+
+ entity.setSortOrder(Integer.parseInt(order));
+ customerOptionSetService.update(entity);
+ resp.setStatus(AjaxResponse.RESPONSE_OPERATION_COMPLETED);
+
+ }
+
+
+ } catch (Exception e) {
+ LOGGER.error("Error while paging shipping countries", e);
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ }
+
+ String returnString = resp.toJSONString();
+
+ return returnString;
+ }
+
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/customers/CustomerOptionsValueController.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/customers/CustomerOptionsValueController.java
new file mode 100644
index 0000000..cf1a9c9
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/customers/CustomerOptionsValueController.java
@@ -0,0 +1,350 @@
+package com.salesmanager.web.admin.controller.customers;
+
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.Set;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
+
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.validation.BindingResult;
+import org.springframework.validation.ObjectError;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import com.salesmanager.core.business.customer.model.attribute.CustomerOptionValue;
+import com.salesmanager.core.business.customer.model.attribute.CustomerOptionValueDescription;
+import com.salesmanager.core.business.customer.service.attribute.CustomerOptionValueService;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.business.reference.language.service.LanguageService;
+import com.salesmanager.core.utils.ajax.AjaxResponse;
+import com.salesmanager.shop.admin.controller.ControllerConstants;
+import com.salesmanager.web.admin.entity.web.Menu;
+import com.salesmanager.web.constants.Constants;
+import com.salesmanager.web.utils.LabelUtils;
+
+@Controller
+public class CustomerOptionsValueController {
+
+ @Inject
+ LanguageService languageService;
+
+
+ @Inject
+ private CustomerOptionValueService customerOptionValueService;
+
+ @Inject
+ LabelUtils messages;
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(CustomerOptionsValueController.class);
+
+ /**
+ * Displays the list of customer options values
+ * @param model
+ * @param request
+ * @param response
+ * @return
+ * @throws Exception
+ */
+ @PreAuthorize("hasRole('CUSTOMER')")
+ @RequestMapping(value="/admin/customers/options/values/list.html", method=RequestMethod.GET)
+ public String displayOptionValues(Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+
+ setMenu(model,request);
+ return ControllerConstants.Tiles.Customer.optionsValuesList;
+
+
+
+ }
+
+ /**
+ * Display an option value in edit mode
+ * @param id
+ * @param request
+ * @param response
+ * @param model
+ * @param locale
+ * @return
+ * @throws Exception
+ */
+ @PreAuthorize("hasRole('CUSTOMER')")
+ @RequestMapping(value="/admin/customers/options/values/edit.html", method=RequestMethod.GET)
+ public String displayOptionValueEdit(@RequestParam("id") long id, HttpServletRequest request, HttpServletResponse response, Model model, Locale locale) throws Exception {
+ return displayOption(id,request,response,model,locale);
+ }
+
+ @PreAuthorize("hasRole('CUSTOMER')")
+ @RequestMapping(value="/admin/customers/options/values/create.html", method=RequestMethod.GET)
+ public String displayOptionValueCreate(HttpServletRequest request, HttpServletResponse response, Model model, Locale locale) throws Exception {
+ return displayOption(null,request,response,model,locale);
+ }
+
+ private String displayOption(Long id, HttpServletRequest request, HttpServletResponse response,Model model,Locale locale) throws Exception {
+
+ this.setMenu(model, request);
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ List<Language> languages = store.getLanguages();
+
+ Set<CustomerOptionValueDescription> descriptions = new HashSet<CustomerOptionValueDescription>();
+ CustomerOptionValue option = new CustomerOptionValue();
+
+ if(id!=null && id!=0) {//edit mode
+
+
+ option = customerOptionValueService.getById(id);
+
+
+ if(option==null) {
+ return "redirect:/admin/customers/options/values/list.html";
+ }
+
+ if(option.getMerchantStore().getId().intValue()!=store.getId().intValue()) {
+ return "redirect:/admin/customers/options/values/list.html";
+ }
+
+ Set<CustomerOptionValueDescription> optionDescriptions = option.getDescriptions();
+
+ for(Language l : languages) {
+
+ CustomerOptionValueDescription optionDescription = null;
+
+ if(optionDescriptions!=null) {
+ for(CustomerOptionValueDescription description : optionDescriptions) {
+ String code = description.getLanguage().getCode();
+ if(code.equals(l.getCode())) {
+ optionDescription = description;
+ }
+ }
+ }
+
+ if(optionDescription==null) {
+ optionDescription = new CustomerOptionValueDescription();
+ optionDescription.setLanguage(l);
+ }
+
+ descriptions.add(optionDescription);
+ }
+
+ } else {
+
+ for(Language l : languages) {
+ CustomerOptionValueDescription desc = new CustomerOptionValueDescription();
+ desc.setLanguage(l);
+ descriptions.add(desc);
+ }
+
+ option.setDescriptions(descriptions);
+ }
+
+
+
+ model.addAttribute("optionValue", option);
+ return ControllerConstants.Tiles.Customer.optionsValueDetails;
+
+
+ }
+
+
+ @PreAuthorize("hasRole('CUSTOMER')")
+ @RequestMapping(value="/admin/customers/options/values/save.html", method=RequestMethod.POST)
+ public String saveOption(@Valid @ModelAttribute("optionValue") CustomerOptionValue optionValue, BindingResult result, Model model, HttpServletRequest request, Locale locale) throws Exception {
+
+
+ //display menu
+ setMenu(model,request);
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+ CustomerOptionValue dbEntity = null;
+
+ if(optionValue.getId() != null && optionValue.getId() >0) { //edit entry
+
+ //get from DB
+ dbEntity = customerOptionValueService.getById(optionValue.getId());
+
+ if(dbEntity==null) {
+ return "redirect:/admin/customers/options/values/list.html";
+ }
+
+ if(dbEntity.getMerchantStore().getId().intValue()!=store.getId().intValue()) {
+ return "redirect:/admin/customers/options/values/list.html";
+ }
+ }
+
+ //validate if it contains an existing code
+ CustomerOptionValue byCode = customerOptionValueService.getByCode(store, optionValue.getCode());
+ if(byCode!=null && optionValue.getId()==null) {
+ ObjectError error = new ObjectError("code",messages.getMessage("message.code.exist", locale));
+ result.addError(error);
+ }
+
+
+ Map<String,Language> langs = languageService.getLanguagesMap();
+
+
+ List<CustomerOptionValueDescription> descriptions = optionValue.getDescriptionsList();
+ if(descriptions!=null && descriptions.size()>0) {
+
+ Set<CustomerOptionValueDescription> descs = new HashSet<CustomerOptionValueDescription>();
+ optionValue.setDescriptions(descs);
+ for(CustomerOptionValueDescription description : descriptions) {
+
+ if(StringUtils.isBlank(description.getName())) {
+ ObjectError error = new ObjectError("name",messages.getMessage("message.name.required", locale));
+ result.addError(error);
+ } else {
+ String code = description.getLanguage().getCode();
+ Language l = langs.get(code);
+ description.setLanguage(l);
+ description.setCustomerOptionValue(optionValue);
+ descs.add(description);
+ }
+ }
+
+ } else {
+
+ ObjectError error = new ObjectError("name",messages.getMessage("message.name.required", locale));
+ result.addError(error);
+
+ }
+
+
+ optionValue.setMerchantStore(store);
+
+
+ if (result.hasErrors()) {
+ return ControllerConstants.Tiles.Customer.optionsValueDetails;
+ }
+
+
+ customerOptionValueService.saveOrUpdate(optionValue);
+
+ model.addAttribute("success","success");
+ return ControllerConstants.Tiles.Customer.optionsValueDetails;
+ }
+
+
+
+ @SuppressWarnings("unchecked")
+ @PreAuthorize("hasRole('CUSTOMER')")
+ @RequestMapping(value="/admin/customers/options/values/paging.html", method=RequestMethod.POST, produces="application/json")
+ public @ResponseBody String pageOptions(HttpServletRequest request, HttpServletResponse response) {
+
+ AjaxResponse resp = new AjaxResponse();
+
+
+ try {
+
+
+ Language language = (Language)request.getAttribute("LANGUAGE");
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ List<CustomerOptionValue> options = null;
+
+
+ options = customerOptionValueService.listByStore(store, language);
+
+ for(CustomerOptionValue option : options) {
+
+ @SuppressWarnings("rawtypes")
+ Map entry = new HashMap();
+ entry.put("id", option.getId());
+ entry.put("code", option.getCode());
+ CustomerOptionValueDescription description = option.getDescriptions().iterator().next();
+
+ entry.put("name", description.getName());
+ resp.addDataEntry(entry);
+
+
+ }
+
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_SUCCESS);
+
+
+
+ } catch (Exception e) {
+ LOGGER.error("Error while paging options", e);
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ }
+
+ String returnString = resp.toJSONString();
+
+ return returnString;
+
+
+ }
+
+ @PreAuthorize("hasRole('CUSTOMER')")
+ @RequestMapping(value="/admin/customers/options/values/remove.html", method=RequestMethod.POST, produces="application/json")
+ public @ResponseBody String deleteOptionValue(HttpServletRequest request, HttpServletResponse response, Locale locale) {
+ String sid = request.getParameter("id");
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ AjaxResponse resp = new AjaxResponse();
+
+
+ try {
+
+ Long id = Long.parseLong(sid);
+
+ CustomerOptionValue entity = customerOptionValueService.getById(id);
+
+ if(entity==null || entity.getMerchantStore().getId().intValue()!=store.getId().intValue()) {
+ resp.setStatusMessage(messages.getMessage("message.unauthorized", locale));
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ } else {
+ customerOptionValueService.delete(entity);
+ resp.setStatus(AjaxResponse.RESPONSE_OPERATION_COMPLETED);
+
+ }
+
+
+ } catch (Exception e) {
+ LOGGER.error("Error while deleting option", e);
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorMessage(e);
+ }
+
+ String returnString = resp.toJSONString();
+
+ return returnString;
+ }
+
+
+
+ private void setMenu(Model model, HttpServletRequest request) throws Exception {
+
+ //display menu
+ Map<String,String> activeMenus = new HashMap<String,String>();
+ activeMenus.put("customer", "customer");
+ activeMenus.put("customer-options", "customer-options");
+
+ @SuppressWarnings("unchecked")
+ Map<String, Menu> menus = (Map<String, Menu>)request.getAttribute("MENUMAP");
+
+ Menu currentMenu = (Menu)menus.get("customer");
+ model.addAttribute("currentMenu",currentMenu);
+ model.addAttribute("activeMenus",activeMenus);
+ //
+
+ }
+
+}
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
new file mode 100644
index 0000000..e17b1f2
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/merchant/MerchantStoreController.java
@@ -0,0 +1,486 @@
+package com.salesmanager.web.admin.controller.merchant;
+
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
+
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.validation.BindingResult;
+import org.springframework.validation.ObjectError;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.merchant.service.MerchantStoreService;
+import com.salesmanager.core.business.reference.country.model.Country;
+import com.salesmanager.core.business.reference.country.service.CountryService;
+import com.salesmanager.core.business.reference.currency.model.Currency;
+import com.salesmanager.core.business.reference.currency.service.CurrencyService;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.business.reference.language.service.LanguageService;
+import com.salesmanager.core.business.reference.zone.model.Zone;
+import com.salesmanager.core.business.reference.zone.service.ZoneService;
+import com.salesmanager.core.business.system.service.EmailService;
+import com.salesmanager.core.business.user.model.User;
+import com.salesmanager.core.business.user.service.UserService;
+import com.salesmanager.core.modules.email.Email;
+import com.salesmanager.core.utils.ajax.AjaxResponse;
+import com.salesmanager.shop.admin.controller.ControllerConstants;
+import com.salesmanager.web.admin.entity.reference.Size;
+import com.salesmanager.web.admin.entity.reference.Weight;
+import com.salesmanager.web.admin.entity.web.Menu;
+import com.salesmanager.web.constants.Constants;
+import com.salesmanager.web.constants.EmailConstants;
+import com.salesmanager.web.utils.DateUtil;
+import com.salesmanager.web.utils.EmailUtils;
+import com.salesmanager.web.utils.FilePathUtils;
+import com.salesmanager.web.utils.LabelUtils;
+import com.salesmanager.web.utils.LocaleUtils;
+import com.salesmanager.web.utils.UserUtils;
+
+@Controller
+public class MerchantStoreController {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(MerchantStoreController.class);
+
+ @Inject
+ private MerchantStoreService merchantStoreService;
+
+ @Inject
+ private CountryService countryService;
+
+ @Inject
+ private ZoneService zoneService;
+
+ @Inject
+ private LanguageService languageService;
+
+ @Inject
+ private CurrencyService currencyService;
+
+ @Inject
+ private UserService userService;
+
+ @Inject
+ private LabelUtils messages;
+
+ @Inject
+ private EmailService emailService;
+
+ @Inject
+ private EmailUtils emailUtils;
+
+ @Inject
+ private FilePathUtils filePathUtils;
+
+
+ private final static String NEW_STORE_TMPL = "email_template_new_store.ftl";
+
+ @PreAuthorize("hasRole('STORE_ADMIN')")
+ @RequestMapping(value="/admin/store/list.html", method=RequestMethod.GET)
+ public String displayStores(Model model, HttpServletRequest request, HttpServletResponse response, Locale locale) throws Exception {
+
+
+ setMenu(model,request);
+ return ControllerConstants.Tiles.Store.stores;
+ }
+
+ @PreAuthorize("hasRole('STORE_ADMIN')")
+ @RequestMapping(value = "/admin/store/paging.html", method = RequestMethod.POST, produces = "application/json")
+ public @ResponseBody
+ String pageStores(HttpServletRequest request,
+ HttpServletResponse response) {
+
+ AjaxResponse resp = new AjaxResponse();
+
+
+ try {
+
+ List<MerchantStore> stores = merchantStoreService.list();
+
+ for (MerchantStore store : stores) {
+
+ if(!store.getCode().equals(MerchantStore.DEFAULT_STORE)){
+ Map<String,String> entry = new HashMap<String,String> ();
+ entry.put("storeId", String.valueOf(store.getId()));
+ entry.put("code", store.getCode());
+ entry.put("name", store.getStorename());
+ entry.put("email", store.getStoreEmailAddress());
+ resp.addDataEntry(entry);
+ }
+
+ }
+
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_SUCCESS);
+
+ } catch (Exception e) {
+ LOGGER.error("Error while paging products", e);
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ }
+
+ String returnString = resp.toJSONString();
+
+ return returnString;
+ }
+
+ @PreAuthorize("hasRole('STORE')")
+ @RequestMapping(value="/admin/store/storeCreate.html", method=RequestMethod.GET)
+ public String displayMerchantStoreCreate(Model model, HttpServletRequest request, HttpServletResponse response, Locale locale) throws Exception {
+
+
+
+ setMenu(model,request);
+
+ MerchantStore store = new MerchantStore();
+
+ MerchantStore sessionStore = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+ store.setCurrency(sessionStore.getCurrency());
+ store.setCountry(sessionStore.getCountry());
+ store.setZone(sessionStore.getZone());
+ store.setStorestateprovince(sessionStore.getStorestateprovince());
+ store.setLanguages(sessionStore.getLanguages());
+ store.setDomainName(sessionStore.getDomainName());
+
+
+ return displayMerchantStore(store, model, request, response, locale);
+ }
+
+ @PreAuthorize("hasRole('STORE')")
+ @RequestMapping(value="/admin/store/store.html", method=RequestMethod.GET)
+ public String displayMerchantStore(Model model, HttpServletRequest request, HttpServletResponse response, Locale locale) throws Exception {
+
+ setMenu(model,request);
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+ return displayMerchantStore(store, model, request, response, locale);
+ }
+
+
+ @PreAuthorize("hasRole('STORE')")
+ @RequestMapping(value="/admin/store/editStore.html", method=RequestMethod.GET)
+ public String displayMerchantStore(@ModelAttribute("id") Integer id, Model model, HttpServletRequest request, HttpServletResponse response, Locale locale) throws Exception {
+
+ setMenu(model,request);
+ MerchantStore store = merchantStoreService.getById(id);
+ return displayMerchantStore(store, model, request, response, locale);
+ }
+
+ private String displayMerchantStore(MerchantStore store, Model model, HttpServletRequest request, HttpServletResponse response, Locale locale) throws Exception {
+
+
+ setMenu(model,request);
+ Language language = (Language)request.getAttribute("LANGUAGE");
+ List<Language> languages = languageService.getLanguages();
+ List<Currency> currencies = currencyService.list();
+ Date dt = store.getInBusinessSince();
+ if(dt!=null) {
+ store.setDateBusinessSince(DateUtil.formatDate(dt));
+ } else {
+ store.setDateBusinessSince(DateUtil.formatDate(new Date()));
+ }
+
+ //get countries
+ List<Country> countries = countryService.getCountries(language);
+
+ List<Weight> weights = new ArrayList<Weight>();
+ weights.add(new Weight("LB",messages.getMessage("label.generic.weightunit.LB", locale)));
+ weights.add(new Weight("KG",messages.getMessage("label.generic.weightunit.KG", locale)));
+
+ List<Size> sizes = new ArrayList<Size>();
+ sizes.add(new Size("CM",messages.getMessage("label.generic.sizeunit.CM", locale)));
+ sizes.add(new Size("IN",messages.getMessage("label.generic.sizeunit.IN", locale)));
+
+ //display menu
+
+ model.addAttribute("countries", countries);
+ model.addAttribute("languages",languages);
+ model.addAttribute("currencies",currencies);
+
+ model.addAttribute("weights",weights);
+ model.addAttribute("sizes",sizes);
+ model.addAttribute("store", store);
+
+
+ return "admin-store";
+
+
+ }
+
+
+ @PreAuthorize("hasRole('STORE')")
+ @RequestMapping(value="/admin/store/save.html", method=RequestMethod.POST)
+ public String saveMerchantStore(@Valid @ModelAttribute("store") MerchantStore store, BindingResult result, Model model, HttpServletRequest request, HttpServletResponse response, Locale locale) throws Exception {
+
+ setMenu(model,request);
+ MerchantStore sessionStore = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ if(store.getId()!=null) {
+ if(store.getId().intValue() != sessionStore.getId().intValue()) {
+ return "redirect:/admin/store/store.html";
+ }
+ }
+
+ Date date = new Date();
+ if(!StringUtils.isBlank(store.getDateBusinessSince())) {
+ try {
+ date = DateUtil.getDate(store.getDateBusinessSince());
+ store.setInBusinessSince(date);
+ } catch (Exception e) {
+ ObjectError error = new ObjectError("dateBusinessSince",messages.getMessage("message.invalid.date", locale));
+ result.addError(error);
+ }
+ }
+
+ List<Currency> currencies = currencyService.list();
+
+
+ Language language = (Language)request.getAttribute("LANGUAGE");
+ List<Language> languages = languageService.getLanguages();
+
+ //get countries
+ List<Country> countries = countryService.getCountries(language);
+
+ List<Weight> weights = new ArrayList<Weight>();
+ weights.add(new Weight("LB",messages.getMessage("label.generic.weightunit.LB", locale)));
+ weights.add(new Weight("KG",messages.getMessage("label.generic.weightunit.KG", locale)));
+
+ List<Size> sizes = new ArrayList<Size>();
+ sizes.add(new Size("CM",messages.getMessage("label.generic.sizeunit.CM", locale)));
+ sizes.add(new Size("IN",messages.getMessage("label.generic.sizeunit.IN", locale)));
+
+ model.addAttribute("weights",weights);
+ model.addAttribute("sizes",sizes);
+
+ model.addAttribute("countries", countries);
+ model.addAttribute("languages",languages);
+ model.addAttribute("currencies",currencies);
+
+
+ Country c = store.getCountry();
+ List<Zone> zonesList = zoneService.getZones(c, language);
+
+ if((zonesList==null || zonesList.size()==0) && StringUtils.isBlank(store.getStorestateprovince())) {
+
+ ObjectError error = new ObjectError("zone.code",messages.getMessage("merchant.zone.invalid", locale));
+ result.addError(error);
+
+ }
+
+ if (result.hasErrors()) {
+ return "admin-store";
+ }
+
+ //get country
+ Country country = store.getCountry();
+ country = countryService.getByCode(country.getIsoCode());
+ Zone zone = store.getZone();
+ if(zone!=null) {
+ zone = zoneService.getByCode(zone.getCode());
+ }
+ Currency currency = store.getCurrency();
+ currency = currencyService.getById(currency.getId());
+
+ List<Language> supportedLanguages = store.getLanguages();
+ List<Language> supportedLanguagesList = new ArrayList<Language>();
+ Map<String,Language> languagesMap = languageService.getLanguagesMap();
+ for(Language lang : supportedLanguages) {
+
+ Language l = languagesMap.get(lang.getCode());
+ if(l!=null) {
+ supportedLanguagesList.add(l);
+ }
+
+ }
+
+ Language defaultLanguage = store.getDefaultLanguage();
+ defaultLanguage = languageService.getById(defaultLanguage.getId());
+ if(defaultLanguage!=null) {
+ store.setDefaultLanguage(defaultLanguage);
+ }
+
+ Locale storeLocale = LocaleUtils.getLocale(defaultLanguage);
+
+ store.setStoreTemplate(sessionStore.getStoreTemplate());
+ store.setCountry(country);
+ store.setZone(zone);
+ store.setCurrency(currency);
+ store.setDefaultLanguage(defaultLanguage);
+ store.setLanguages(supportedLanguagesList);
+ store.setLanguages(supportedLanguagesList);
+
+
+ merchantStoreService.saveOrUpdate(store);
+
+ if(!store.getCode().equals(sessionStore.getCode())) {//create store
+ //send email
+
+ try {
+
+
+ Map<String, String> templateTokens = emailUtils.createEmailObjectsMap(request.getContextPath(), store, messages, storeLocale);
+ templateTokens.put(EmailConstants.EMAIL_NEW_STORE_TEXT, messages.getMessage("email.newstore.text", storeLocale));
+ templateTokens.put(EmailConstants.EMAIL_STORE_NAME, messages.getMessage("email.newstore.name",new String[]{store.getStorename()},storeLocale));
+ templateTokens.put(EmailConstants.EMAIL_ADMIN_STORE_INFO_LABEL, messages.getMessage("email.newstore.info",storeLocale));
+
+ templateTokens.put(EmailConstants.EMAIL_ADMIN_URL_LABEL, messages.getMessage("label.adminurl",storeLocale));
+ templateTokens.put(EmailConstants.EMAIL_ADMIN_URL, filePathUtils.buildAdminUri(store, request));
+
+
+ Email email = new Email();
+ email.setFrom(store.getStorename());
+ email.setFromEmail(store.getStoreEmailAddress());
+ email.setSubject(messages.getMessage("email.newstore.title",storeLocale));
+ email.setTo(store.getStoreEmailAddress());
+ email.setTemplateName(NEW_STORE_TMPL);
+ email.setTemplateTokens(templateTokens);
+
+
+
+ emailService.sendHtmlEmail(store, email);
+
+ } catch (Exception e) {
+ LOGGER.error("Cannot send email to user",e);
+ }
+
+ }
+
+ sessionStore = merchantStoreService.getMerchantStore(sessionStore.getCode());
+
+
+ //update session store
+ request.getSession().setAttribute(Constants.ADMIN_STORE, sessionStore);
+
+
+ model.addAttribute("success","success");
+ model.addAttribute("store", store);
+
+
+ return "admin-store";
+ }
+
+ @PreAuthorize("hasRole('AUTH')")
+ @RequestMapping(value="/admin/store/checkStoreCode.html", method=RequestMethod.POST, produces="application/json")
+ public @ResponseBody String checkStoreCode(HttpServletRequest request, HttpServletResponse response, Locale locale) {
+ String code = request.getParameter("code");
+
+
+ AjaxResponse resp = new AjaxResponse();
+
+ try {
+
+ if(StringUtils.isBlank(code)) {
+ resp.setStatus(AjaxResponse.CODE_ALREADY_EXIST);
+ return resp.toJSONString();
+ }
+
+ MerchantStore store = merchantStoreService.getByCode(code);
+
+
+
+
+ if(store!=null) {
+ resp.setStatus(AjaxResponse.CODE_ALREADY_EXIST);
+ return resp.toJSONString();
+ }
+
+
+
+ resp.setStatus(AjaxResponse.RESPONSE_OPERATION_COMPLETED);
+
+ } catch (Exception e) {
+ LOGGER.error("Error while getting user", e);
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorMessage(e);
+ }
+
+ String returnString = resp.toJSONString();
+
+ return returnString;
+ }
+
+
+ @PreAuthorize("hasRole('STORE_ADMIN')")
+ @RequestMapping(value="/admin/store/remove.html", method=RequestMethod.POST, produces="application/json")
+ public @ResponseBody String removeMerchantStore(HttpServletRequest request, Locale locale) throws Exception {
+
+ String sMerchantStoreId = request.getParameter("storeId");
+
+ AjaxResponse resp = new AjaxResponse();
+
+
+ try {
+
+ Integer storeId = Integer.parseInt(sMerchantStoreId);
+ MerchantStore store = merchantStoreService.getById(storeId);
+
+ User user = userService.getByUserName(request.getRemoteUser());
+
+ /**
+ * In order to remove a Store the logged in ser must be SUPERADMIN
+ */
+
+ //check if the user removed has group SUPERADMIN
+ boolean isSuperAdmin = false;
+ if(UserUtils.userInGroup(user, Constants.GROUP_SUPERADMIN)) {
+ isSuperAdmin = true;
+ }
+
+
+ if(!isSuperAdmin) {
+ resp.setStatusMessage(messages.getMessage("message.security.caanotremovesuperadmin", locale));
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ return resp.toJSONString();
+ }
+
+ merchantStoreService.delete(store);
+
+ resp.setStatus(AjaxResponse.RESPONSE_OPERATION_COMPLETED);
+
+
+
+ } catch (Exception e) {
+ LOGGER.error("Error while deleting product price", e);
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorMessage(e);
+ }
+
+ String returnString = resp.toJSONString();
+
+ return returnString;
+
+ }
+
+ private void setMenu(Model model, HttpServletRequest request) throws Exception {
+
+ //display menu
+ Map<String,String> activeMenus = new HashMap<String,String>();
+ activeMenus.put("store", "store");
+ activeMenus.put("storeDetails", "storeDetails");
+
+
+ @SuppressWarnings("unchecked")
+ Map<String, Menu> menus = (Map<String, Menu>)request.getAttribute("MENUMAP");
+
+ Menu currentMenu = (Menu)menus.get("store");
+ model.addAttribute("currentMenu",currentMenu);
+ model.addAttribute("activeMenus",activeMenus);
+ //
+
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/merchant/StoreBrandingController.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/merchant/StoreBrandingController.java
new file mode 100644
index 0000000..290f197
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/merchant/StoreBrandingController.java
@@ -0,0 +1,193 @@
+package com.salesmanager.web.admin.controller.merchant;
+
+
+import java.io.InputStream;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import com.salesmanager.core.business.content.model.FileContentType;
+import com.salesmanager.core.business.content.model.InputContentFile;
+import com.salesmanager.core.business.content.service.ContentService;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.merchant.service.MerchantStoreService;
+import com.salesmanager.core.business.reference.country.service.CountryService;
+import com.salesmanager.core.business.reference.currency.service.CurrencyService;
+import com.salesmanager.core.business.reference.language.service.LanguageService;
+import com.salesmanager.core.business.reference.zone.service.ZoneService;
+import com.salesmanager.core.utils.ajax.AjaxResponse;
+import com.salesmanager.web.admin.entity.content.ContentFiles;
+import com.salesmanager.web.admin.entity.web.Menu;
+import com.salesmanager.web.constants.Constants;
+
+@Controller
+public class StoreBrandingController {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(StoreBrandingController.class);
+
+
+ @Inject
+ MerchantStoreService merchantStoreService;
+
+ @Inject
+ CountryService countryService;
+
+ @Inject
+ ZoneService zoneService;
+
+ @Inject
+ LanguageService languageService;
+
+ @Inject
+ CurrencyService currencyService;
+
+ @Inject
+ private ContentService contentService;
+
+
+ @Resource(name="templates")
+ List<String> templates;
+
+ @PreAuthorize("hasRole('STORE')")
+ @RequestMapping(value="/admin/store/storeBranding.html", method=RequestMethod.GET)
+ public String displayStoreBranding(Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+ setMenu(model,request);
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ //display templates
+ model.addAttribute("templates", templates);
+
+ model.addAttribute("store", store);
+
+
+
+ return "admin-store-branding";
+ }
+
+ @PreAuthorize("hasRole('STORE')")
+ @RequestMapping(value="/admin/store/saveBranding.html", method=RequestMethod.POST)
+ public String saveStoreBranding(@ModelAttribute(value="contentImages") @Valid final ContentFiles contentImages, BindingResult result, Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+ setMenu(model,request);
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+
+ if(contentImages.getFile()!=null && contentImages.getFile().size()>0) {
+
+ String imageName = contentImages.getFile().get(0).getOriginalFilename();
+ InputStream inputStream = contentImages.getFile().get(0).getInputStream();
+ InputContentFile cmsContentImage = new InputContentFile();
+ cmsContentImage.setFileName(imageName);
+ cmsContentImage.setMimeType( contentImages.getFile().get(0).getContentType());
+ cmsContentImage.setFile( inputStream );
+ contentService.addLogo(store.getCode(), cmsContentImage);
+
+ //Update store
+ store.setStoreLogo(imageName);
+ merchantStoreService.update(store);
+ request.getSession().setAttribute(Constants.ADMIN_STORE, store);
+
+ }
+
+ //display templates
+ model.addAttribute("templates", templates);
+
+ model.addAttribute("success","success");
+ model.addAttribute("store", store);
+
+ return "admin-store-branding";
+ }
+
+ @PreAuthorize("hasRole('STORE')")
+ @RequestMapping(value="/admin/store/saveTemplate.html", method=RequestMethod.POST)
+ public String saveTemplate(@ModelAttribute(value="store") final MerchantStore store, BindingResult result, Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+ setMenu(model,request);
+
+ MerchantStore sessionstore = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ sessionstore.setStoreTemplate(store.getStoreTemplate());
+
+ merchantStoreService.saveOrUpdate(sessionstore);
+
+ request.setAttribute(Constants.ADMIN_STORE, sessionstore);
+
+ //display templates
+ model.addAttribute("templates", templates);
+
+ model.addAttribute("success","success");
+ model.addAttribute("store", sessionstore);
+
+ return "admin-store-branding";
+ }
+
+ @PreAuthorize("hasRole('STORE')")
+ @RequestMapping(value="/admin/store/removeImage.html", method=RequestMethod.POST, produces="application/json")
+ public @ResponseBody String removeImage(HttpServletRequest request, HttpServletResponse response, Locale locale) {
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ AjaxResponse resp = new AjaxResponse();
+
+
+ try {
+
+
+
+ contentService.removeFile(store.getCode(), FileContentType.LOGO, store.getStoreLogo());
+
+ store.setStoreLogo(null);
+ merchantStoreService.update(store);
+
+
+ } catch (Exception e) {
+ LOGGER.error("Error while deleting product", e);
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorMessage(e);
+ }
+
+ String returnString = resp.toJSONString();
+
+ return returnString;
+ }
+
+ private void setMenu(Model model, HttpServletRequest request) throws Exception {
+
+ //display menu
+ Map<String,String> activeMenus = new HashMap<String,String>();
+ activeMenus.put("store", "store");
+ activeMenus.put("storeBranding", "storeBranding");
+
+
+ @SuppressWarnings("unchecked")
+ Map<String, Menu> menus = (Map<String, Menu>)request.getAttribute("MENUMAP");
+
+ Menu currentMenu = (Menu)menus.get("store");
+ model.addAttribute("currentMenu",currentMenu);
+ model.addAttribute("activeMenus",activeMenus);
+ //
+
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/merchant/StoreLandingController.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/merchant/StoreLandingController.java
new file mode 100644
index 0000000..e214460
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/merchant/StoreLandingController.java
@@ -0,0 +1,239 @@
+package com.salesmanager.web.admin.controller.merchant;
+
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+
+import com.salesmanager.core.business.content.model.Content;
+import com.salesmanager.core.business.content.model.ContentDescription;
+import com.salesmanager.core.business.content.model.ContentType;
+import com.salesmanager.core.business.content.service.ContentService;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.merchant.service.MerchantStoreService;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.business.reference.language.service.LanguageService;
+import com.salesmanager.web.admin.entity.merchant.StoreLanding;
+import com.salesmanager.web.admin.entity.merchant.StoreLandingDescription;
+import com.salesmanager.web.admin.entity.web.Menu;
+import com.salesmanager.web.constants.Constants;
+
+@Controller
+public class StoreLandingController {
+
+ @Inject
+ MerchantStoreService merchantStoreService;
+
+ @Inject
+ LanguageService languageService;
+
+ @Inject
+ ContentService contentService;
+
+ @PreAuthorize("hasRole('STORE')")
+ @RequestMapping(value="/admin/store/storeLanding.html", method=RequestMethod.GET)
+ public String displayStoreLanding(Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+ setMenu(model,request);
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ List<Language> languages = store.getLanguages();
+
+ Content content = contentService.getByCode("LANDING_PAGE", store);
+ StoreLanding landing = new StoreLanding();
+
+ List<StoreLandingDescription> descriptions = new ArrayList<StoreLandingDescription>();
+
+
+ for(Language l : languages) {
+
+ StoreLandingDescription landingDescription = null;
+ if(content!=null) {
+ for(ContentDescription desc : content.getDescriptions()) {
+ if(desc.getLanguage().getCode().equals(l.getCode())) {
+ landingDescription = new StoreLandingDescription();
+ landingDescription.setDescription(desc.getMetatagDescription());
+ landingDescription.setHomePageContent(desc.getDescription());
+ landingDescription.setKeywords(desc.getMetatagKeywords());
+ landingDescription.setTitle(desc.getName());//name is a not empty
+ landingDescription.setLanguage(desc.getLanguage());
+ break;
+ }
+ }
+ }
+
+ if(landingDescription==null) {
+ landingDescription = new StoreLandingDescription();
+ landingDescription.setLanguage(l);
+ }
+
+
+
+ descriptions.add(landingDescription);
+ }
+
+ landing.setDescriptions(descriptions);
+
+
+ model.addAttribute("store", store);
+ model.addAttribute("storeLanding", landing);
+
+
+ return "admin-store-landing";
+ }
+
+ @PreAuthorize("hasRole('STORE')")
+ @RequestMapping(value="/admin/store/saveLanding.html", method=RequestMethod.POST)
+ public String saveStoreLanding(@Valid @ModelAttribute("storeLanding") StoreLanding storeLanding, BindingResult result, Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+ setMenu(model,request);
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+
+ if (result.hasErrors()) {
+ return "admin-store-landing";
+ }
+
+ //get original store
+ Content content = contentService.getByCode("LANDING_PAGE", store);
+
+ if(content==null) {
+ content = new Content();
+ content.setVisible(true);
+ content.setContentType(ContentType.SECTION);
+ content.setCode("LANDING_PAGE");
+ content.setMerchantStore(store);
+ }
+
+
+ //List<Language> languages = store.getLanguages();
+
+ Map<String,Language> langs = languageService.getLanguagesMap();
+
+
+
+/* for(Language l : languages) {
+
+ StoreLandingDescription landingDescription = null;
+ for(ContentDescription desc : content.getDescriptions()) {
+ if(desc.getLanguage().getCode().equals(l.getCode())) {
+ landingDescription = new StoreLandingDescription();
+ landingDescription.setDescription(desc.getMetatagDescription());
+ landingDescription.setHomePageContent(desc.getDescription());
+ landingDescription.setKeywords(desc.getMetatagKeywords());
+ landingDescription.setTitle(desc.getName());//name is a not empty
+ landingDescription.setLanguage(desc.getLanguage());
+ }
+ }
+
+
+ if(landingDescription==null) {
+ landingDescription = new StoreLandingDescription();
+ landingDescription.setLanguage(l);
+ }
+
+
+
+ descriptions.add(landingDescription);
+ }
+
+ landing.setDescriptions(descriptions);*/
+
+
+
+
+
+ List<StoreLandingDescription> descriptions = storeLanding.getDescriptions();
+ List<ContentDescription> contentDescriptions = new ArrayList<ContentDescription>();
+ if(descriptions!=null) {
+
+ for(StoreLandingDescription description : descriptions) {
+
+ String code = description.getLanguage().getCode();
+ Language l = langs.get(code);
+
+ ContentDescription contentDescription = null;
+ if(content.getDescriptions()!=null && content.getDescriptions().size()>0) {
+
+ for(ContentDescription desc : content.getDescriptions()) {
+
+ if(desc.getLanguage().getCode().equals(l.getCode())) {
+ contentDescription = desc;
+ desc.setMetatagDescription(description.getDescription());
+ desc.setName(description.getTitle());
+ desc.setDescription(description.getHomePageContent());
+ desc.setMetatagKeywords(description.getKeywords());
+
+
+ }
+
+ }
+ }
+
+ if(contentDescription==null) {
+
+
+ contentDescription = new ContentDescription();
+ contentDescription.setContent(content);
+ contentDescription.setLanguage(l);
+ contentDescription.setMetatagDescription(description.getDescription());
+ contentDescription.setName(description.getTitle());
+ contentDescription.setDescription(description.getHomePageContent());
+ contentDescription.setMetatagKeywords(description.getKeywords());
+
+ }
+
+ contentDescriptions.add(contentDescription);
+
+
+
+ }
+
+ content.setDescriptions(contentDescriptions);
+
+ }
+
+
+
+ contentService.saveOrUpdate(content);
+
+ model.addAttribute("success","success");
+
+ return "admin-store-landing";
+ }
+
+ private void setMenu(Model model, HttpServletRequest request) throws Exception {
+
+ //display menu
+ Map<String,String> activeMenus = new HashMap<String,String>();
+ activeMenus.put("store", "store");
+ activeMenus.put("storeLanding", "storeLanding");
+
+
+ @SuppressWarnings("unchecked")
+ Map<String, Menu> menus = (Map<String, Menu>)request.getAttribute("MENUMAP");
+
+ Menu currentMenu = (Menu)menus.get("store");
+ model.addAttribute("currentMenu",currentMenu);
+ model.addAttribute("activeMenus",activeMenus);
+ //
+
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/orders/OrderActionsControler.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/orders/OrderActionsControler.java
new file mode 100644
index 0000000..756d86e
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/orders/OrderActionsControler.java
@@ -0,0 +1,566 @@
+package com.salesmanager.web.admin.controller.orders;
+
+import java.io.ByteArrayOutputStream;
+import java.math.BigDecimal;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.Set;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import com.salesmanager.core.business.catalog.product.service.PricingService;
+import com.salesmanager.core.business.customer.model.Customer;
+import com.salesmanager.core.business.customer.service.CustomerService;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.order.model.Order;
+import com.salesmanager.core.business.order.model.orderstatus.OrderStatusHistory;
+import com.salesmanager.core.business.order.service.OrderService;
+import com.salesmanager.core.business.payments.model.Transaction;
+import com.salesmanager.core.business.payments.service.PaymentService;
+import com.salesmanager.core.business.payments.service.TransactionService;
+import com.salesmanager.core.business.reference.country.service.CountryService;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.business.reference.zone.service.ZoneService;
+import com.salesmanager.core.business.system.service.EmailService;
+import com.salesmanager.core.modules.integration.IntegrationException;
+import com.salesmanager.core.utils.ajax.AjaxResponse;
+import com.salesmanager.web.admin.entity.orders.Refund;
+import com.salesmanager.web.constants.Constants;
+import com.salesmanager.web.utils.DateUtil;
+import com.salesmanager.web.utils.EmailTemplatesUtils;
+import com.salesmanager.web.utils.LabelUtils;
+import com.salesmanager.web.utils.LocaleUtils;
+
+/**
+ * Manage order details
+ * @author Carl Samson
+ *
+ */
+@Controller
+public class OrderActionsControler {
+
+private static final Logger LOGGER = LoggerFactory.getLogger(OrderActionsControler.class);
+
+ @Inject
+ private LabelUtils messages;
+
+ @Inject
+ private OrderService orderService;
+
+ @Inject
+ CountryService countryService;
+
+ @Inject
+ ZoneService zoneService;
+
+ @Inject
+ PaymentService paymentService;
+
+ @Inject
+ CustomerService customerService;
+
+ @Inject
+ PricingService pricingService;
+
+ @Inject
+ TransactionService transactionService;
+
+ @Inject
+ EmailService emailService;
+
+ @Inject
+ EmailTemplatesUtils emailTemplatesUtils;
+
+
+
+ @PreAuthorize("hasRole('ORDER')")
+ @RequestMapping(value="/admin/orders/captureOrder.html", method=RequestMethod.POST, produces="application/json")
+ public @ResponseBody String captureOrder(HttpServletRequest request, HttpServletResponse response, Locale locale) {
+
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ String sId = request.getParameter("id");
+
+ AjaxResponse resp = new AjaxResponse();
+
+ try {
+ Long id = Long.parseLong(sId);
+
+ Order order = orderService.getById(id);
+
+ if(order==null) {
+
+ LOGGER.error("Order {0} does not exists", id);
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ return resp.toJSONString();
+ }
+
+ if(order.getMerchant().getId().intValue()!=store.getId().intValue()) {
+
+ LOGGER.error("Merchant store does not have order {0}",id);
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ return resp.toJSONString();
+ }
+
+ Customer customer = customerService.getById(order.getCustomerId());
+
+ if(customer==null) {
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ resp.setStatusMessage(messages.getMessage("message.notexist.customer", locale));
+ return resp.toJSONString();
+ }
+
+ paymentService.processCapturePayment(order, customer, store);
+
+ resp.setStatus(AjaxResponse.RESPONSE_OPERATION_COMPLETED);
+
+ } catch (IntegrationException e) {
+ LOGGER.error("Error while processing capture", e);
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorString(messages.getMessage(e.getMessageCode(),locale));
+ } catch (Exception e) {
+ LOGGER.error("Error while getting category", e);
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorMessage(e);
+ }
+
+ String returnString = resp.toJSONString();
+
+ return returnString;
+ }
+
+ @PreAuthorize("hasRole('ORDER')")
+ @RequestMapping(value="/admin/orders/refundOrder.html", method=RequestMethod.POST, produces="application/json")
+ public @ResponseBody String refundOrder(@RequestBody Refund refund, HttpServletRequest request, HttpServletResponse response, Locale locale) {
+
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+
+ AjaxResponse resp = new AjaxResponse();
+
+ BigDecimal submitedAmount = null;
+
+ try {
+
+ Order order = orderService.getById(refund.getOrderId());
+
+ if(order==null) {
+
+ LOGGER.error("Order {0} does not exists", refund.getOrderId());
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ return resp.toJSONString();
+ }
+
+ if(order.getMerchant().getId().intValue()!=store.getId().intValue()) {
+
+ LOGGER.error("Merchant store does not have order {0}",refund.getOrderId());
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ return resp.toJSONString();
+ }
+
+ //parse amount
+ try {
+ submitedAmount = new BigDecimal(refund.getAmount());
+ if(submitedAmount.doubleValue()==0) {
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ resp.setStatusMessage(messages.getMessage("message.invalid.amount", locale));
+ return resp.toJSONString();
+ }
+
+ } catch (Exception e) {
+ LOGGER.equals("invalid refundAmount " + refund.getAmount());
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ return resp.toJSONString();
+ }
+
+
+ BigDecimal orderTotal = order.getTotal();
+ if(submitedAmount.doubleValue()>orderTotal.doubleValue()) {
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ resp.setStatusMessage(messages.getMessage("message.invalid.amount", locale));
+ return resp.toJSONString();
+ }
+
+ if(submitedAmount.doubleValue()<=0) {
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ resp.setStatusMessage(messages.getMessage("message.invalid.amount", locale));
+ return resp.toJSONString();
+ }
+
+ Customer customer = customerService.getById(order.getCustomerId());
+
+ if(customer==null) {
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ resp.setStatusMessage(messages.getMessage("message.notexist.customer", locale));
+ return resp.toJSONString();
+ }
+
+
+ paymentService.processRefund(order, customer, store, submitedAmount);
+
+ resp.setStatus(AjaxResponse.RESPONSE_OPERATION_COMPLETED);
+ } catch (IntegrationException e) {
+ LOGGER.error("Error while processing refund", e);
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorString(messages.getMessage(e.getMessageCode(),locale));
+ } catch (Exception e) {
+ LOGGER.error("Error while processing refund", e);
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorMessage(e);
+ }
+
+ String returnString = resp.toJSONString();
+
+ return returnString;
+ }
+
+ @PreAuthorize("hasRole('ORDER')")
+ @RequestMapping(value="/admin/orders/printInvoice.html", method=RequestMethod.GET, produces="application/json;text/plain;charset=UTF-8")
+ public void printInvoice(HttpServletRequest request, HttpServletResponse response, Locale locale) throws Exception {
+
+ String sId = request.getParameter("id");
+
+ try {
+
+ Long id = Long.parseLong(sId);
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+ Order order = orderService.getById(id);
+
+ if(order.getMerchant().getId().intValue()!=store.getId().intValue()) {
+ throw new Exception("Invalid order");
+ }
+
+
+ Language lang = store.getDefaultLanguage();
+
+
+
+ ByteArrayOutputStream stream = orderService.generateInvoice(store, order, lang);
+ StringBuilder attachment = new StringBuilder();
+ //attachment.append("attachment; filename=");
+ attachment.append(order.getId());
+ attachment.append(".pdf");
+
+ response.setHeader("Content-disposition", "attachment;filename=" + attachment.toString());
+
+ //Set the mime type for the response
+ response.setContentType("application/pdf");
+
+
+ response.getOutputStream().write(stream.toByteArray());
+
+ response.flushBuffer();
+
+
+ } catch(Exception e) {
+ LOGGER.error("Error while printing a report",e);
+ }
+
+
+ }
+
+
+ @SuppressWarnings("unchecked")
+ @PreAuthorize("hasRole('ORDER')")
+ @RequestMapping(value="/admin/orders/listTransactions.html", method=RequestMethod.GET, produces="application/json")
+ public @ResponseBody String listTransactions(HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+ String sId = request.getParameter("id");
+
+
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+
+ AjaxResponse resp = new AjaxResponse();
+
+ if(sId==null) {
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ return resp.toJSONString();
+ }
+
+
+
+ try {
+
+ Long id = Long.parseLong(sId);
+
+
+ Order dbOrder = orderService.getById(id);
+
+ if(dbOrder==null) {
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ return resp.toJSONString();
+ }
+
+
+ if(dbOrder.getMerchant().getId().intValue()!=store.getId().intValue()) {
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ return resp.toJSONString();
+ }
+
+
+
+ List<Transaction> transactions = transactionService.listTransactions(dbOrder);
+
+ if(transactions!=null) {
+
+ for(Transaction transaction : transactions) {
+ @SuppressWarnings("rawtypes")
+ Map entry = new HashMap();
+ entry.put("transactionId", transaction.getId());
+ entry.put("transactionDate", DateUtil.formatLongDate(transaction.getTransactionDate()));
+ entry.put("transactionType", transaction.getTransactionType().name());
+ entry.put("paymentType", transaction.getPaymentType().name());
+ entry.put("transactionAmount", pricingService.getStringAmount(transaction.getAmount(), store));
+ entry.put("transactionDetails", transaction.getTransactionDetails());
+ resp.addDataEntry(entry);
+ }
+
+
+ }
+
+
+ resp.setStatus(AjaxResponse.RESPONSE_OPERATION_COMPLETED);
+
+ } catch(Exception e) {
+ LOGGER.error("Cannot get transactions for order id " + sId, e);
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorMessage(e);
+ }
+
+ return resp.toJSONString();
+
+
+ }
+
+
+ @PreAuthorize("hasRole('ORDER')")
+ @RequestMapping(value="/admin/orders/sendInvoice.html", method=RequestMethod.GET, produces="application/json")
+ public @ResponseBody String sendInvoice(HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+ String sId = request.getParameter("id");
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+
+ AjaxResponse resp = new AjaxResponse();
+
+ if(sId==null) {
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ return resp.toJSONString();
+ }
+
+
+
+ try {
+
+ Long id = Long.parseLong(sId);
+
+
+ Order dbOrder = orderService.getById(id);
+
+ if(dbOrder==null) {
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ return resp.toJSONString();
+ }
+
+
+ if(dbOrder.getMerchant().getId().intValue()!=store.getId().intValue()) {
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ return resp.toJSONString();
+ }
+
+ //get customer
+ Customer customer = customerService.getById(dbOrder.getCustomerId());
+
+ if(customer==null) {
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorString("Customer does not exist");
+ return resp.toJSONString();
+ }
+
+ Locale customerLocale = LocaleUtils.getLocale(customer.getDefaultLanguage());
+
+ emailTemplatesUtils.sendOrderEmail(customer, dbOrder, customerLocale, customer.getDefaultLanguage(), store, request.getContextPath());
+
+
+ resp.setStatus(AjaxResponse.RESPONSE_OPERATION_COMPLETED);
+
+ } catch(Exception e) {
+ LOGGER.error("Cannot get transactions for order id " + sId, e);
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorMessage(e);
+ }
+
+ return resp.toJSONString();
+
+
+ }
+
+
+
+ @PreAuthorize("hasRole('ORDER')")
+ @RequestMapping(value="/admin/orders/updateStatus.html", method=RequestMethod.GET, produces="application/json;text/plain;charset=UTF-8")
+ public @ResponseBody String updateStatus(HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+ String sId = request.getParameter("id");
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+
+ AjaxResponse resp = new AjaxResponse();
+
+ if(sId==null) {
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ return resp.toJSONString();
+ }
+
+
+
+ try {
+
+ Long id = Long.parseLong(sId);
+
+
+ Order dbOrder = orderService.getById(id);
+
+ if(dbOrder==null) {
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ return resp.toJSONString();
+ }
+
+
+ if(dbOrder.getMerchant().getId().intValue()!=store.getId().intValue()) {
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ return resp.toJSONString();
+ }
+
+ //get customer
+ Customer customer = customerService.getById(dbOrder.getCustomerId());
+
+ if(customer==null) {
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorString("Customer does not exist");
+ return resp.toJSONString();
+ }
+
+ Locale customerLocale = LocaleUtils.getLocale(customer.getDefaultLanguage());
+
+
+ Set<OrderStatusHistory> orderStatus = dbOrder.getOrderHistory();
+ OrderStatusHistory lastHistory = null;
+ if(orderStatus!=null) {
+ int count = 1;
+ for(OrderStatusHistory history : orderStatus) {
+ if(count==orderStatus.size()) {
+ lastHistory = history;
+ break;
+ }
+ count++;
+ }
+ }
+
+ if(lastHistory==null) {
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorString("No history");
+ return resp.toJSONString();
+ }
+ emailTemplatesUtils.sendUpdateOrderStatusEmail(customer, dbOrder, lastHistory, store, customerLocale, request.getContextPath());
+
+
+ resp.setStatus(AjaxResponse.RESPONSE_OPERATION_COMPLETED);
+
+ } catch(Exception e) {
+ LOGGER.error("Cannot get transactions for order id " + sId, e);
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorString(e.getMessage());
+ resp.setErrorMessage(e);
+ }
+
+ return resp.toJSONString();
+
+
+ }
+
+ @PreAuthorize("hasRole('ORDER')")
+ @RequestMapping(value="/admin/orders/sendDownloadEmail.html", method=RequestMethod.GET, produces="application/json")
+ public @ResponseBody String sendDownloadEmail(HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+ String sId = request.getParameter("id");
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+
+ AjaxResponse resp = new AjaxResponse();
+
+ if(sId==null) {
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ return resp.toJSONString();
+ }
+
+
+
+ try {
+
+ Long id = Long.parseLong(sId);
+
+
+ Order dbOrder = orderService.getById(id);
+
+ if(dbOrder==null) {
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ return resp.toJSONString();
+ }
+
+
+ if(dbOrder.getMerchant().getId().intValue()!=store.getId().intValue()) {
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ return resp.toJSONString();
+ }
+
+ //get customer
+ Customer customer = customerService.getById(dbOrder.getCustomerId());
+
+ if(customer==null) {
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorString("Customer does not exist");
+ return resp.toJSONString();
+ }
+
+ Locale customerLocale = LocaleUtils.getLocale(customer.getDefaultLanguage());
+
+
+ emailTemplatesUtils.sendOrderDownloadEmail(customer, dbOrder, store, customerLocale, request.getContextPath());
+
+
+ resp.setStatus(AjaxResponse.RESPONSE_OPERATION_COMPLETED);
+
+ } catch(Exception e) {
+ LOGGER.error("Cannot get transactions for order id " + sId, e);
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorString(e.getMessage());
+ resp.setErrorMessage(e);
+ }
+
+ return resp.toJSONString();
+
+
+ }
+
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/orders/OrderControler.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/orders/OrderControler.java
new file mode 100644
index 0000000..83c15db
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/orders/OrderControler.java
@@ -0,0 +1,477 @@
+package com.salesmanager.web.admin.controller.orders;
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.Set;
+import java.util.regex.Pattern;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
+
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.validation.BindingResult;
+import org.springframework.validation.ObjectError;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import com.salesmanager.core.business.catalog.product.service.PricingService;
+import com.salesmanager.core.business.customer.model.Customer;
+import com.salesmanager.core.business.customer.service.CustomerService;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.order.model.Order;
+import com.salesmanager.core.business.order.model.OrderTotal;
+import com.salesmanager.core.business.order.model.orderproduct.OrderProduct;
+import com.salesmanager.core.business.order.model.orderproduct.OrderProductDownload;
+import com.salesmanager.core.business.order.model.orderstatus.OrderStatusHistory;
+import com.salesmanager.core.business.order.service.OrderService;
+import com.salesmanager.core.business.order.service.orderproduct.OrderProductDownloadService;
+import com.salesmanager.core.business.payments.model.PaymentType;
+import com.salesmanager.core.business.payments.model.Transaction;
+import com.salesmanager.core.business.payments.service.PaymentService;
+import com.salesmanager.core.business.payments.service.TransactionService;
+import com.salesmanager.core.business.reference.country.model.Country;
+import com.salesmanager.core.business.reference.country.service.CountryService;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.business.reference.zone.model.Zone;
+import com.salesmanager.core.business.reference.zone.service.ZoneService;
+import com.salesmanager.core.business.system.service.EmailService;
+import com.salesmanager.core.modules.email.Email;
+import com.salesmanager.shop.admin.controller.ControllerConstants;
+import com.salesmanager.web.admin.entity.web.Menu;
+import com.salesmanager.web.constants.Constants;
+import com.salesmanager.web.constants.EmailConstants;
+import com.salesmanager.web.utils.DateUtil;
+import com.salesmanager.web.utils.EmailUtils;
+import com.salesmanager.web.utils.LabelUtils;
+import com.salesmanager.web.utils.LocaleUtils;
+
+/**
+ * Manage order details
+ * @author Carl Samson
+ *
+ */
+@Controller
+public class OrderControler {
+
+private static final Logger LOGGER = LoggerFactory.getLogger(OrderControler.class);
+
+ @Inject
+ private LabelUtils messages;
+
+ @Inject
+ private OrderService orderService;
+
+ @Inject
+ CountryService countryService;
+
+ @Inject
+ ZoneService zoneService;
+
+ @Inject
+ PaymentService paymentService;
+
+ @Inject
+ CustomerService customerService;
+
+ @Inject
+ PricingService pricingService;
+
+ @Inject
+ TransactionService transactionService;
+
+ @Inject
+ EmailService emailService;
+
+ @Inject
+ private EmailUtils emailUtils;
+
+ @Inject
+ OrderProductDownloadService orderProdctDownloadService;
+
+ private final static String ORDER_STATUS_TMPL = "email_template_order_status.ftl";
+
+
+ @PreAuthorize("hasRole('ORDER')")
+ @RequestMapping(value="/admin/orders/editOrder.html", method=RequestMethod.GET)
+ public String displayOrderEdit(@RequestParam("id") long orderId, Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+ return displayOrder(orderId,model,request,response);
+
+ }
+
+ @PreAuthorize("hasRole('ORDER')")
+ private String displayOrder(Long orderId, Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+ //display menu
+ setMenu(model,request);
+
+ com.salesmanager.web.admin.entity.orders.Order order = new com.salesmanager.web.admin.entity.orders.Order();
+ Language language = (Language)request.getAttribute("LANGUAGE");
+ List<Country> countries = countryService.getCountries(language);
+ if(orderId!=null && orderId!=0) { //edit mode
+
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+
+
+ Set<OrderProduct> orderProducts = null;
+ Set<OrderTotal> orderTotal = null;
+ Set<OrderStatusHistory> orderHistory = null;
+
+ Order dbOrder = orderService.getById(orderId);
+
+ if(dbOrder==null) {
+ return "redirect:/admin/orders/list.html";
+ }
+
+
+ if(dbOrder.getMerchant().getId().intValue()!=store.getId().intValue()) {
+ return "redirect:/admin/orders/list.html";
+ }
+
+
+ order.setId( orderId );
+
+ if( dbOrder.getDatePurchased() !=null ){
+ order.setDatePurchased(DateUtil.formatDate(dbOrder.getDatePurchased()));
+ }
+
+ Long customerId = dbOrder.getCustomerId();
+
+ if(customerId!=null && customerId>0) {
+
+ try {
+
+ Customer customer = customerService.getById(customerId);
+ if(customer!=null) {
+ model.addAttribute("customer",customer);
+ }
+
+
+ } catch(Exception e) {
+ LOGGER.error("Error while getting customer for customerId " + customerId, e);
+ }
+
+ }
+
+ order.setOrder( dbOrder );
+ order.setBilling( dbOrder.getBilling() );
+ order.setDelivery(dbOrder.getDelivery() );
+
+
+ orderProducts = dbOrder.getOrderProducts();
+ orderTotal = dbOrder.getOrderTotal();
+ orderHistory = dbOrder.getOrderHistory();
+
+ //get capturable
+ if(dbOrder.getPaymentType().name() != PaymentType.MONEYORDER.name()) {
+ Transaction capturableTransaction = transactionService.getCapturableTransaction(dbOrder);
+ if(capturableTransaction!=null) {
+ model.addAttribute("capturableTransaction",capturableTransaction);
+ }
+ }
+
+
+ //get refundable
+ if(dbOrder.getPaymentType().name() != PaymentType.MONEYORDER.name()) {
+ Transaction refundableTransaction = transactionService.getRefundableTransaction(dbOrder);
+ if(refundableTransaction!=null) {
+ model.addAttribute("capturableTransaction",null);//remove capturable
+ model.addAttribute("refundableTransaction",refundableTransaction);
+ }
+ }
+
+
+ List<OrderProductDownload> orderProductDownloads = orderProdctDownloadService.getByOrderId(order.getId());
+ if(CollectionUtils.isNotEmpty(orderProductDownloads)) {
+ model.addAttribute("downloads",orderProductDownloads);
+ }
+
+ }
+
+ model.addAttribute("countries", countries);
+ model.addAttribute("order",order);
+ return ControllerConstants.Tiles.Order.ordersEdit;
+ }
+
+
+ @PreAuthorize("hasRole('ORDER')")
+ @RequestMapping(value="/admin/orders/save.html", method=RequestMethod.POST)
+ public String saveOrder(@Valid @ModelAttribute("order") com.salesmanager.web.admin.entity.orders.Order entityOrder, BindingResult result, Model model, HttpServletRequest request, Locale locale) throws Exception {
+
+ String email_regEx = "\\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}\\b";
+ Pattern pattern = Pattern.compile(email_regEx);
+
+ Language language = (Language)request.getAttribute("LANGUAGE");
+ List<Country> countries = countryService.getCountries(language);
+ model.addAttribute("countries", countries);
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ //set the id if fails
+ entityOrder.setId(entityOrder.getOrder().getId());
+
+ model.addAttribute("order", entityOrder);
+
+ Set<OrderProduct> orderProducts = new HashSet<OrderProduct>();
+ Set<OrderTotal> orderTotal = new HashSet<OrderTotal>();
+ Set<OrderStatusHistory> orderHistory = new HashSet<OrderStatusHistory>();
+
+ Date date = new Date();
+ if(!StringUtils.isBlank(entityOrder.getDatePurchased() ) ){
+ try {
+ date = DateUtil.getDate(entityOrder.getDatePurchased());
+ } catch (Exception e) {
+ ObjectError error = new ObjectError("datePurchased",messages.getMessage("message.invalid.date", locale));
+ result.addError(error);
+ }
+
+ } else{
+ date = null;
+ }
+
+
+ if(!StringUtils.isBlank(entityOrder.getOrder().getCustomerEmailAddress() ) ){
+ java.util.regex.Matcher matcher = pattern.matcher(entityOrder.getOrder().getCustomerEmailAddress());
+
+ if(!matcher.find()) {
+ ObjectError error = new ObjectError("customerEmailAddress",messages.getMessage("Email.order.customerEmailAddress", locale));
+ result.addError(error);
+ }
+ }else{
+ ObjectError error = new ObjectError("customerEmailAddress",messages.getMessage("NotEmpty.order.customerEmailAddress", locale));
+ result.addError(error);
+ }
+
+
+ if( StringUtils.isBlank(entityOrder.getOrder().getBilling().getFirstName() ) ){
+ ObjectError error = new ObjectError("billingFirstName", messages.getMessage("NotEmpty.order.billingFirstName", locale));
+ result.addError(error);
+ }
+
+ if( StringUtils.isBlank(entityOrder.getOrder().getBilling().getFirstName() ) ){
+ ObjectError error = new ObjectError("billingLastName", messages.getMessage("NotEmpty.order.billingLastName", locale));
+ result.addError(error);
+ }
+
+ if( StringUtils.isBlank(entityOrder.getOrder().getBilling().getAddress() ) ){
+ ObjectError error = new ObjectError("billingAddress", messages.getMessage("NotEmpty.order.billingStreetAddress", locale));
+ result.addError(error);
+ }
+
+ if( StringUtils.isBlank(entityOrder.getOrder().getBilling().getCity() ) ){
+ ObjectError error = new ObjectError("billingCity",messages.getMessage("NotEmpty.order.billingCity", locale));
+ result.addError(error);
+ }
+
+ if( entityOrder.getOrder().getBilling().getZone()==null){
+ if( StringUtils.isBlank(entityOrder.getOrder().getBilling().getState())){
+ ObjectError error = new ObjectError("billingState",messages.getMessage("NotEmpty.order.billingState", locale));
+ result.addError(error);
+ }
+ }
+
+ if( StringUtils.isBlank(entityOrder.getOrder().getBilling().getPostalCode() ) ){
+ ObjectError error = new ObjectError("billingPostalCode", messages.getMessage("NotEmpty.order.billingPostCode", locale));
+ result.addError(error);
+ }
+
+ com.salesmanager.core.business.order.model.Order newOrder = orderService.getById(entityOrder.getOrder().getId() );
+
+
+ //get capturable
+ if(newOrder.getPaymentType().name() != PaymentType.MONEYORDER.name()) {
+ Transaction capturableTransaction = transactionService.getCapturableTransaction(newOrder);
+ if(capturableTransaction!=null) {
+ model.addAttribute("capturableTransaction",capturableTransaction);
+ }
+ }
+
+
+ //get refundable
+ if(newOrder.getPaymentType().name() != PaymentType.MONEYORDER.name()) {
+ Transaction refundableTransaction = transactionService.getRefundableTransaction(newOrder);
+ if(refundableTransaction!=null) {
+ model.addAttribute("capturableTransaction",null);//remove capturable
+ model.addAttribute("refundableTransaction",refundableTransaction);
+ }
+ }
+
+
+ if (result.hasErrors()) {
+ // somehow we lose data, so reset Order detail info.
+ entityOrder.getOrder().setOrderProducts( orderProducts);
+ entityOrder.getOrder().setOrderTotal(orderTotal);
+ entityOrder.getOrder().setOrderHistory(orderHistory);
+
+ return ControllerConstants.Tiles.Order.ordersEdit;
+ /* "admin-orders-edit"; */
+ }
+
+ OrderStatusHistory orderStatusHistory = new OrderStatusHistory();
+
+
+
+
+ Country deliveryCountry = countryService.getByCode( entityOrder.getOrder().getDelivery().getCountry().getIsoCode());
+ Country billingCountry = countryService.getByCode( entityOrder.getOrder().getBilling().getCountry().getIsoCode()) ;
+ Zone billingZone = null;
+ Zone deliveryZone = null;
+ if(entityOrder.getOrder().getBilling().getZone()!=null) {
+ billingZone = zoneService.getByCode(entityOrder.getOrder().getBilling().getZone().getCode());
+ }
+
+ if(entityOrder.getOrder().getDelivery().getZone()!=null) {
+ deliveryZone = zoneService.getByCode(entityOrder.getOrder().getDelivery().getZone().getCode());
+ }
+
+ newOrder.setCustomerEmailAddress(entityOrder.getOrder().getCustomerEmailAddress() );
+ newOrder.setStatus(entityOrder.getOrder().getStatus() );
+
+ newOrder.setDatePurchased(date);
+ newOrder.setLastModified( new Date() );
+
+ if(!StringUtils.isBlank(entityOrder.getOrderHistoryComment() ) ) {
+ orderStatusHistory.setComments( entityOrder.getOrderHistoryComment() );
+ orderStatusHistory.setCustomerNotified(1);
+ orderStatusHistory.setStatus(entityOrder.getOrder().getStatus());
+ orderStatusHistory.setDateAdded(new Date() );
+ orderStatusHistory.setOrder(newOrder);
+ newOrder.getOrderHistory().add( orderStatusHistory );
+ entityOrder.setOrderHistoryComment( "" );
+ }
+
+ newOrder.setDelivery( entityOrder.getOrder().getDelivery() );
+ newOrder.setBilling( entityOrder.getOrder().getBilling() );
+ newOrder.setCustomerAgreement(entityOrder.getOrder().getCustomerAgreement());
+
+ newOrder.getDelivery().setCountry(deliveryCountry );
+ newOrder.getBilling().setCountry(billingCountry );
+
+ if(billingZone!=null) {
+ newOrder.getBilling().setZone(billingZone);
+ }
+
+ if(deliveryZone!=null) {
+ newOrder.getDelivery().setZone(deliveryZone);
+ }
+
+ orderService.saveOrUpdate(newOrder);
+ entityOrder.setOrder(newOrder);
+ entityOrder.setBilling(newOrder.getBilling());
+ entityOrder.setDelivery(newOrder.getDelivery());
+ model.addAttribute("order", entityOrder);
+
+ Long customerId = newOrder.getCustomerId();
+
+ if(customerId!=null && customerId>0) {
+
+ try {
+
+ Customer customer = customerService.getById(customerId);
+ if(customer!=null) {
+ model.addAttribute("customer",customer);
+ }
+
+
+ } catch(Exception e) {
+ LOGGER.error("Error while getting customer for customerId " + customerId, e);
+ }
+
+ }
+
+ List<OrderProductDownload> orderProductDownloads = orderProdctDownloadService.getByOrderId(newOrder.getId());
+ if(CollectionUtils.isNotEmpty(orderProductDownloads)) {
+ model.addAttribute("downloads",orderProductDownloads);
+ }
+
+
+ /**
+ * send email if admin posted orderHistoryComment
+ *
+ * **/
+
+ if(StringUtils.isBlank(entityOrder.getOrderHistoryComment())) {
+
+ try {
+
+ Customer customer = customerService.getById(newOrder.getCustomerId());
+ Language lang = store.getDefaultLanguage();
+ if(customer!=null) {
+ lang = customer.getDefaultLanguage();
+ }
+
+ Locale customerLocale = LocaleUtils.getLocale(lang);
+
+ StringBuilder customerName = new StringBuilder();
+ customerName.append(newOrder.getBilling().getFirstName()).append(" ").append(newOrder.getBilling().getLastName());
+
+
+ Map<String, String> templateTokens = emailUtils.createEmailObjectsMap(request.getContextPath(), store, messages, customerLocale);
+ templateTokens.put(EmailConstants.EMAIL_CUSTOMER_NAME, customerName.toString());
+ templateTokens.put(EmailConstants.EMAIL_TEXT_ORDER_NUMBER, messages.getMessage("email.order.confirmation", new String[]{String.valueOf(newOrder.getId())}, customerLocale));
+ templateTokens.put(EmailConstants.EMAIL_TEXT_DATE_ORDERED, messages.getMessage("email.order.ordered", new String[]{entityOrder.getDatePurchased()}, customerLocale));
+ templateTokens.put(EmailConstants.EMAIL_TEXT_STATUS_COMMENTS, messages.getMessage("email.order.comments", new String[]{entityOrder.getOrderHistoryComment()}, customerLocale));
+ templateTokens.put(EmailConstants.EMAIL_TEXT_DATE_UPDATED, messages.getMessage("email.order.updated", new String[]{DateUtil.formatDate(new Date())}, customerLocale));
+
+
+ Email email = new Email();
+ email.setFrom(store.getStorename());
+ email.setFromEmail(store.getStoreEmailAddress());
+ email.setSubject(messages.getMessage("email.order.status.title",new String[]{String.valueOf(newOrder.getId())},customerLocale));
+ email.setTo(entityOrder.getOrder().getCustomerEmailAddress());
+ email.setTemplateName(ORDER_STATUS_TMPL);
+ email.setTemplateTokens(templateTokens);
+
+
+
+ emailService.sendHtmlEmail(store, email);
+
+ } catch (Exception e) {
+ LOGGER.error("Cannot send email to customer",e);
+ }
+
+ }
+
+ model.addAttribute("success","success");
+
+
+ return ControllerConstants.Tiles.Order.ordersEdit;
+ /* "admin-orders-edit"; */
+ }
+
+ private void setMenu(Model model, HttpServletRequest request) throws Exception {
+
+ //display menu
+ Map<String,String> activeMenus = new HashMap<String,String>();
+ activeMenus.put("order", "order");
+ activeMenus.put("order-list", "order-list");
+
+ @SuppressWarnings("unchecked")
+ Map<String, Menu> menus = (Map<String, Menu>)request.getAttribute("MENUMAP");
+
+ model.addAttribute("activeMenus",activeMenus);
+
+ Menu currentMenu = (Menu)menus.get("order");
+ model.addAttribute("currentMenu",currentMenu);
+ model.addAttribute("activeMenus",activeMenus);
+ //
+
+ }
+
+}
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
new file mode 100644
index 0000000..abc39a6
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/orders/OrdersController.java
@@ -0,0 +1,178 @@
+package com.salesmanager.web.admin.controller.orders;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.order.model.Order;
+import com.salesmanager.core.business.order.model.OrderCriteria;
+import com.salesmanager.core.business.order.model.OrderList;
+import com.salesmanager.core.business.order.service.OrderService;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.business.system.model.IntegrationModule;
+import com.salesmanager.core.business.system.service.ModuleConfigurationService;
+import com.salesmanager.core.utils.ProductPriceUtils;
+import com.salesmanager.core.utils.ajax.AjaxPageableResponse;
+import com.salesmanager.core.utils.ajax.AjaxResponse;
+import com.salesmanager.shop.admin.controller.ControllerConstants;
+import com.salesmanager.web.admin.entity.web.Menu;
+import com.salesmanager.web.constants.Constants;
+import com.salesmanager.web.utils.DateUtil;
+import com.salesmanager.web.utils.LabelUtils;
+
+
+/**
+ * Manage order list
+ * Manage search order
+ * @author csamson
+ *
+ */
+@Controller
+public class OrdersController {
+
+ @Inject
+ OrderService orderService;
+
+ @Inject
+ LabelUtils messages;
+
+ @Inject
+ private ProductPriceUtils priceUtil;
+
+ @Inject
+ protected ModuleConfigurationService moduleConfigurationService;
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(OrderControler.class);
+
+
+ @PreAuthorize("hasRole('ORDER')")
+ @RequestMapping(value="/admin/orders/list.html", method=RequestMethod.GET)
+ public String displayOrders(Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+ setMenu(model,request);
+
+ //the list of orders is from page method
+
+ return ControllerConstants.Tiles.Order.orders;
+
+
+ }
+
+
+ @PreAuthorize("hasRole('ORDER')")
+ @SuppressWarnings({ "unchecked", "unused"})
+ @RequestMapping(value="/admin/orders/paging.html", method=RequestMethod.POST, produces="application/json;text/plain;charset=UTF-8")
+ public @ResponseBody String pageOrders(HttpServletRequest request, HttpServletResponse response, Locale locale) {
+
+
+ AjaxPageableResponse resp = new AjaxPageableResponse();
+
+
+
+
+ try {
+
+ int startRow = Integer.parseInt(request.getParameter("_startRow"));
+ int endRow = Integer.parseInt(request.getParameter("_endRow"));
+ String paymentModule = request.getParameter("paymentModule");
+ String customerName = request.getParameter("customer");
+
+ OrderCriteria criteria = new OrderCriteria();
+ criteria.setStartIndex(startRow);
+ criteria.setMaxCount(endRow);
+ if(!StringUtils.isBlank(paymentModule)) {
+ criteria.setPaymentMethod(paymentModule);
+ }
+
+ if(!StringUtils.isBlank(customerName)) {
+ criteria.setCustomerName(customerName);
+ }
+
+ Language language = (Language)request.getAttribute("LANGUAGE");
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+ List<IntegrationModule> paymentModules = moduleConfigurationService.getIntegrationModules( "PAYMENT" );
+
+
+ OrderList orderList = orderService.listByStore(store, criteria);
+
+ if(orderList.getOrders()!=null) {
+
+ for(Order order : orderList.getOrders()) {
+
+ @SuppressWarnings("rawtypes")
+ Map entry = new HashMap();
+ entry.put("orderId", order.getId());
+ entry.put("customer", order.getBilling().getFirstName() + " " + order.getBilling().getLastName());
+ entry.put("amount", priceUtil.getAdminFormatedAmountWithCurrency(store,order.getTotal()));//todo format total
+ entry.put("date", DateUtil.formatDate(order.getDatePurchased()));
+ entry.put("status", order.getStatus().name());
+
+
+ if ( paymentModules!= null && paymentModules.size() > 0 )
+ {
+ for ( int index = 0; index < paymentModules.size(); index++ )
+ {
+ if ( paymentModules.get(index).getCode().equalsIgnoreCase( order.getPaymentModuleCode() ) )
+ {
+ paymentModule = paymentModules.get(index).getCode();
+ break;
+ }
+ }
+
+ }
+
+ entry.put("paymentModule", paymentModule );
+ resp.addDataEntry(entry);
+
+ }
+ }
+
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_SUCCESS);
+
+
+
+ } catch (Exception e) {
+ LOGGER.error("Error while paging orders", e);
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ }
+
+ String returnString = resp.toJSONString();
+
+ return returnString;
+ }
+
+
+ private void setMenu(Model model, HttpServletRequest request) throws Exception {
+
+ //display menu
+ Map<String,String> activeMenus = new HashMap<String,String>();
+ activeMenus.put("order", "order");
+ activeMenus.put("order-list", "order-list");
+
+ @SuppressWarnings("unchecked")
+ Map<String, Menu> menus = (Map<String, Menu>)request.getAttribute("MENUMAP");
+
+ Menu currentMenu = (Menu)menus.get("order");
+ model.addAttribute("currentMenu",currentMenu);
+ model.addAttribute("activeMenus",activeMenus);
+ //
+
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/payments/PaymentsController.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/payments/PaymentsController.java
new file mode 100644
index 0000000..c461bf8
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/payments/PaymentsController.java
@@ -0,0 +1,175 @@
+package com.salesmanager.web.admin.controller.payments;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.payments.model.TransactionType;
+import com.salesmanager.core.business.payments.service.PaymentService;
+import com.salesmanager.core.business.system.model.IntegrationConfiguration;
+import com.salesmanager.core.business.system.model.IntegrationModule;
+import com.salesmanager.core.modules.integration.IntegrationException;
+import com.salesmanager.shop.admin.controller.ControllerConstants;
+import com.salesmanager.web.admin.entity.web.Menu;
+import com.salesmanager.web.constants.Constants;
+import com.salesmanager.web.utils.LabelUtils;
+
+@Controller
+public class PaymentsController {
+
+
+ @Inject
+ private PaymentService paymentService;
+
+ @Inject
+ LabelUtils messages;
+
+
+ @RequestMapping(value="/admin/payments/paymentMethods.html", method=RequestMethod.GET)
+ public String getPaymentMethods(Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+
+ //set menu
+ setMenu(model,request);
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ //get payment methods
+ List<IntegrationModule> modules = paymentService.getPaymentMethods(store);
+
+ //get configured payment modules
+ Map<String,IntegrationConfiguration> configuredModules = paymentService.getPaymentModulesConfigured(store);
+
+
+
+ model.addAttribute("modules", modules);
+ model.addAttribute("configuredModules", configuredModules);
+
+ return ControllerConstants.Tiles.Payment.paymentMethods;
+
+ }
+
+ @PreAuthorize("hasRole('PAYMENT')")
+ @RequestMapping(value="/admin/payments/paymentMethod.html", method=RequestMethod.GET)
+ public String displayPaymentMethod(@RequestParam("code") String code, Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+
+ this.setMenu(model, request);
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+
+ //get configured shipping modules
+ IntegrationConfiguration configuration = paymentService.getPaymentConfiguration(code, store);
+ if(configuration==null) {
+ configuration = new IntegrationConfiguration();
+ configuration.setEnvironment(com.salesmanager.core.constants.Constants.PRODUCTION_ENVIRONMENT);
+
+ Map<String,String> keys = new HashMap<String,String>();
+ keys.put("transaction", TransactionType.AUTHORIZECAPTURE.name());
+
+ configuration.setIntegrationKeys(keys);
+
+ }
+
+ configuration.setModuleCode(code);
+
+ List<String> environments = new ArrayList<String>();
+ environments.add(com.salesmanager.core.constants.Constants.TEST_ENVIRONMENT);
+ environments.add(com.salesmanager.core.constants.Constants.PRODUCTION_ENVIRONMENT);
+
+ model.addAttribute("configuration", configuration);
+ model.addAttribute("environments", environments);
+ return ControllerConstants.Tiles.Payment.paymentMethod;
+
+
+ }
+
+ @PreAuthorize("hasRole('PAYMENT')")
+ @RequestMapping(value="/admin/payments/savePaymentMethod.html", method=RequestMethod.POST)
+ public String savePaymentMethod(@ModelAttribute("configuration") IntegrationConfiguration configuration, BindingResult result, Model model, HttpServletRequest request, HttpServletResponse response, Locale locale) throws Exception {
+
+
+ this.setMenu(model, request);
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+
+
+ List<String> environments = new ArrayList<String>();
+ environments.add(com.salesmanager.core.constants.Constants.TEST_ENVIRONMENT);
+ environments.add(com.salesmanager.core.constants.Constants.PRODUCTION_ENVIRONMENT);
+
+ model.addAttribute("environments", environments);
+ model.addAttribute("configuration", configuration);
+
+ try {
+ paymentService.savePaymentModuleConfiguration(configuration, store);
+ } catch (Exception e) {
+ if(e instanceof IntegrationException) {
+ if(((IntegrationException)e).getErrorCode()==IntegrationException.ERROR_VALIDATION_SAVE) {
+
+ List<String> errorCodes = ((IntegrationException)e).getErrorFields();
+ for(String errorCode : errorCodes) {
+ model.addAttribute(errorCode,messages.getMessage("message.fielderror", locale));
+ }
+ model.addAttribute("validationError","validationError");
+ return ControllerConstants.Tiles.Payment.paymentMethod;
+ }
+ } else {
+ throw new Exception(e);
+ }
+ }
+
+
+
+ model.addAttribute("success","success");
+ return ControllerConstants.Tiles.Payment.paymentMethod;
+
+
+ }
+
+ @RequestMapping(value="/admin/payments/deletePaymentMethod.html", method=RequestMethod.POST)
+ public String deletePaymentMethod(@RequestParam("code") String code, Model model, HttpServletRequest request, HttpServletResponse response, Locale locale) throws Exception {
+
+ this.setMenu(model, request);
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+ paymentService.removePaymentModuleConfiguration(code, store);
+
+ return "redirect:/admin/payments/paymentMethods.html";
+
+ }
+
+ private void setMenu(Model model, HttpServletRequest request) throws Exception {
+
+ //display menu
+ Map<String,String> activeMenus = new HashMap<String,String>();
+ activeMenus.put("payment", "payment");
+ activeMenus.put("payment-methods", "payment-methods");
+
+ @SuppressWarnings("unchecked")
+ Map<String, Menu> menus = (Map<String, Menu>)request.getAttribute("MENUMAP");
+
+ Menu currentMenu = (Menu)menus.get("payment");
+ model.addAttribute("currentMenu",currentMenu);
+ model.addAttribute("activeMenus",activeMenus);
+ //
+
+ }
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/CustomProductGroupsController.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/CustomProductGroupsController.java
new file mode 100644
index 0000000..b71bb5b
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/CustomProductGroupsController.java
@@ -0,0 +1,452 @@
+package com.salesmanager.web.admin.controller.products;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.Set;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.lang3.StringUtils;
+import org.codehaus.jackson.map.ObjectMapper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.validation.BindingResult;
+import org.springframework.validation.FieldError;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import com.salesmanager.core.business.catalog.category.model.Category;
+import com.salesmanager.core.business.catalog.category.service.CategoryService;
+import com.salesmanager.core.business.catalog.product.model.Product;
+import com.salesmanager.core.business.catalog.product.model.description.ProductDescription;
+import com.salesmanager.core.business.catalog.product.model.relationship.ProductRelationship;
+import com.salesmanager.core.business.catalog.product.service.ProductService;
+import com.salesmanager.core.business.catalog.product.service.relationship.ProductRelationshipService;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.utils.ajax.AjaxPageableResponse;
+import com.salesmanager.core.utils.ajax.AjaxResponse;
+import com.salesmanager.shop.admin.controller.ControllerConstants;
+import com.salesmanager.web.admin.entity.web.Menu;
+import com.salesmanager.web.constants.Constants;
+import com.salesmanager.web.utils.LabelUtils;
+
+
+@Controller
+public class CustomProductGroupsController {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(CustomProductGroupsController.class);
+
+ @Inject
+ CategoryService categoryService;
+
+ @Inject
+ ProductService productService;
+
+ @Inject
+ ProductRelationshipService productRelationshipService;
+
+ @Inject
+ LabelUtils messages;
+
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/products/groups/list.html", method=RequestMethod.GET)
+ public String displayProductGroups(Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+
+ setMenu(model,request);
+
+ Language language = (Language)request.getAttribute("LANGUAGE");
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ ProductRelationship group = new ProductRelationship();
+
+
+ model.addAttribute("group", group);
+
+ return ControllerConstants.Tiles.Product.customGroups;
+
+ }
+
+
+ @SuppressWarnings({ "rawtypes", "unchecked" })
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/products/groups/paging.html", method=RequestMethod.POST, produces="application/json")
+ public @ResponseBody String pageCustomGroups(HttpServletRequest request, HttpServletResponse response) {
+
+
+ AjaxResponse resp = new AjaxResponse();
+
+ try {
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+
+ List<ProductRelationship> relationships = productRelationshipService.getGroups(store);
+
+ for(ProductRelationship relationship : relationships) {
+
+ if(!"FEATURED_ITEM".equals(relationship.getCode())) {//do not add featured items
+
+ Map entry = new HashMap();
+ entry.put("code", relationship.getCode());
+ entry.put("active", relationship.isActive());
+
+ resp.addDataEntry(entry);
+
+ }
+
+ }
+
+
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_SUCCESS);
+
+ } catch (Exception e) {
+ LOGGER.error("Error while paging products", e);
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorMessage(e);
+ }
+
+ String returnString = resp.toJSONString();
+ return returnString;
+
+
+ }
+
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/products/groups/save.html", method=RequestMethod.POST)
+ public String saveCustomProductGroup(@ModelAttribute("group") ProductRelationship group, BindingResult result, Model model, HttpServletRequest request, HttpServletResponse response, Locale locale) throws Exception {
+
+ setMenu(model,request);
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+
+ //check if group already exist
+
+
+ if(StringUtils.isBlank(group.getCode())) {
+ FieldError fieldError = new FieldError("group","code",group.getCode(),false,null,null,messages.getMessage("message.group.required",locale));
+ result.addError(fieldError);
+ return ControllerConstants.Tiles.Product.customGroups;
+ }
+
+ //String msg = messages.getMessage("message.group.alerady.exists",locale);
+ //String[] messages = {msg};
+
+ String[] messages = {"message.group.alerady.exists"};
+
+ List<ProductRelationship> groups = productRelationshipService.getGroups(store);
+ for(ProductRelationship grp : groups) {
+ if(grp.getCode().equalsIgnoreCase(group.getCode())) {
+ String[] args = {group.getCode()};
+ FieldError fieldError = new FieldError("group","code",group.getCode(),false,messages,args,null);
+ result.addError(fieldError);
+ }
+ }
+
+ if(result.hasErrors()) {
+ return ControllerConstants.Tiles.Product.customGroups;
+ }
+
+ group.setActive(true);
+ group.setStore(store);
+
+ productRelationshipService.addGroup(store,group.getCode());
+
+
+ model.addAttribute("success","success");
+
+ return ControllerConstants.Tiles.Product.customGroups;
+
+ }
+
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/products/groups/remove.html", method=RequestMethod.POST, produces="application/json")
+ public @ResponseBody String removeCustomProductGroup(HttpServletRequest request, HttpServletResponse response) {
+
+ String groupCode = request.getParameter("code");
+
+ AjaxResponse resp = new AjaxResponse();
+
+
+ try {
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+ productRelationshipService.deleteGroup(store, groupCode);
+ resp.setStatus(AjaxResponse.RESPONSE_OPERATION_COMPLETED);
+
+ } catch (Exception e) {
+ LOGGER.error("Error while deleting a group", e);
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ }
+
+ String returnString = resp.toJSONString();
+
+ return returnString;
+
+ }
+
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/products/groups/update.html", method=RequestMethod.POST, produces="application/json")
+ public @ResponseBody String activateProductGroup(HttpServletRequest request, HttpServletResponse response) {
+ String values = request.getParameter("_oldValues");
+ String active = request.getParameter("active");
+
+
+ AjaxResponse resp = new AjaxResponse();
+
+ try {
+
+ ObjectMapper mapper = new ObjectMapper();
+ @SuppressWarnings("rawtypes")
+ Map conf = mapper.readValue(values, Map.class);
+ String groupCode = (String)conf.get("code");
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ //get groups
+ List<ProductRelationship> groups = productRelationshipService.getGroups(store);
+
+ for(ProductRelationship relation : groups) {
+ if(relation.getCode().equals(groupCode)) {
+ if("true".equals(active)) {
+ relation.setActive(true);
+ } else {
+ relation.setActive(false);
+ }
+ productRelationshipService.saveOrUpdate(relation);
+ }
+ }
+ resp.setStatus(AjaxResponse.RESPONSE_OPERATION_COMPLETED);
+
+ } catch (Exception e) {
+ LOGGER.error("Error while updateing groups", e);
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ }
+
+ String returnString = resp.toJSONString();
+ return returnString;
+ }
+
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/products/group/edit.html", method=RequestMethod.GET)
+ public String displayCustomProductGroup(@RequestParam("id") String groupCode, Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+
+ setMenu(model,request);
+
+ Language language = (Language)request.getAttribute("LANGUAGE");
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ List<Category> categories = categoryService.listByStore(store,language);//for categories
+
+
+ model.addAttribute("group", groupCode);
+ model.addAttribute("categories", categories);
+ return ControllerConstants.Tiles.Product.customGroupsDetails;
+
+ }
+
+
+
+ @SuppressWarnings({ "rawtypes", "unchecked" })
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/products/group/details/paging.html", method=RequestMethod.POST, produces="application/json;charset=UTF-8")
+ public @ResponseBody String pageProducts(HttpServletRequest request, HttpServletResponse response) {
+
+ String code = request.getParameter("code");
+ AjaxResponse resp = new AjaxResponse();
+
+ try {
+
+
+
+ Language language = (Language)request.getAttribute("LANGUAGE");
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+
+ List<ProductRelationship> relationships = productRelationshipService.getByGroup(store, code, language);
+
+ for(ProductRelationship relationship : relationships) {
+
+ Product product = relationship.getRelatedProduct();
+ Map entry = new HashMap();
+ entry.put("relationshipId", relationship.getId());
+ entry.put("productId", product.getId());
+
+ ProductDescription description = product.getDescriptions().iterator().next();
+ Set<ProductDescription> descriptions = product.getDescriptions();
+ for(ProductDescription desc : descriptions) {
+ if(desc.getLanguage().getId().intValue()==language.getId().intValue()) {
+ description = desc;
+ }
+ }
+
+ entry.put("name", description.getName());
+ entry.put("sku", product.getSku());
+ entry.put("available", product.isAvailable());
+ resp.addDataEntry(entry);
+
+ }
+
+
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_SUCCESS);
+
+ } catch (Exception e) {
+ LOGGER.error("Error while paging products", e);
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorMessage(e);
+ }
+
+ String returnString = resp.toJSONString();
+ return returnString;
+
+
+ }
+
+
+
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/products/group/details/addItem.html", method=RequestMethod.POST, produces="application/json")
+ public @ResponseBody String addItem(HttpServletRequest request, HttpServletResponse response) {
+
+ String code = request.getParameter("code");
+ String productId = request.getParameter("productId");
+ AjaxResponse resp = new AjaxResponse();
+
+ try {
+
+
+ Long lProductId = Long.parseLong(productId);
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ Product product = productService.getById(lProductId);
+
+ if(product==null) {
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_FAIURE);
+ return resp.toJSONString();
+ }
+
+ if(product.getMerchantStore().getId().intValue()!=store.getId().intValue()) {
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_FAIURE);
+ return resp.toJSONString();
+ }
+
+
+ ProductRelationship relationship = new ProductRelationship();
+ relationship.setActive(true);
+ relationship.setCode(code);
+ relationship.setStore(store);
+ relationship.setRelatedProduct(product);
+
+ productRelationshipService.saveOrUpdate(relationship);
+
+
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_SUCCESS);
+
+ } catch (Exception e) {
+ LOGGER.error("Error while paging products", e);
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorMessage(e);
+ }
+
+ String returnString = resp.toJSONString();
+ return returnString;
+
+ }
+
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/products/group/details/removeItem.html", method=RequestMethod.POST, produces="application/json")
+ public @ResponseBody String removeItem(HttpServletRequest request, HttpServletResponse response) {
+
+ String code = request.getParameter("code");
+ String productId = request.getParameter("productId");
+ AjaxResponse resp = new AjaxResponse();
+
+ try {
+
+
+ Long lproductId = Long.parseLong(productId);
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ Product product = productService.getById(lproductId);
+
+ if(product==null) {
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_FAIURE);
+ return resp.toJSONString();
+ }
+
+ if(product.getMerchantStore().getId().intValue()!=store.getId().intValue()) {
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_FAIURE);
+ return resp.toJSONString();
+ }
+
+
+ ProductRelationship relationship = null;
+ List<ProductRelationship> relationships = productRelationshipService.getByGroup(store, code);
+
+ for(ProductRelationship r : relationships) {
+ if(r.getRelatedProduct().getId().longValue()==lproductId.longValue()) {
+ relationship = r;
+ break;
+ }
+ }
+
+ if(relationship==null) {
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_FAIURE);
+ return resp.toJSONString();
+ }
+
+ if(relationship.getStore().getId().intValue()!=store.getId().intValue()) {
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_FAIURE);
+ return resp.toJSONString();
+ }
+
+
+
+
+ productRelationshipService.delete(relationship);
+
+
+ resp.setStatus(AjaxPageableResponse.RESPONSE_OPERATION_COMPLETED);
+
+ } catch (Exception e) {
+ LOGGER.error("Error while paging products", e);
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorMessage(e);
+ }
+
+ String returnString = resp.toJSONString();
+ return returnString;
+
+ }
+
+ private void setMenu(Model model, HttpServletRequest request) throws Exception {
+
+ //display menu
+ Map<String,String> activeMenus = new HashMap<String,String>();
+ activeMenus.put("catalogue", "catalogue");
+ activeMenus.put("catalogue-products-group", "catalogue-products-group");
+
+ @SuppressWarnings("unchecked")
+ Map<String, Menu> menus = (Map<String, Menu>)request.getAttribute("MENUMAP");
+
+ Menu currentMenu = (Menu)menus.get("catalogue");
+ model.addAttribute("currentMenu",currentMenu);
+ model.addAttribute("activeMenus",activeMenus);
+ //
+
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/DigitalProductController.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/DigitalProductController.java
new file mode 100644
index 0000000..17eb3c5
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/DigitalProductController.java
@@ -0,0 +1,186 @@
+package com.salesmanager.web.admin.controller.products;
+
+import java.io.ByteArrayInputStream;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
+
+import org.apache.commons.collections.CollectionUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.multipart.MultipartFile;
+
+import com.salesmanager.core.business.catalog.product.model.Product;
+import com.salesmanager.core.business.catalog.product.model.file.DigitalProduct;
+import com.salesmanager.core.business.catalog.product.service.ProductService;
+import com.salesmanager.core.business.catalog.product.service.file.DigitalProductService;
+import com.salesmanager.core.business.content.model.FileContentType;
+import com.salesmanager.core.business.content.model.InputContentFile;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.utils.ajax.AjaxResponse;
+import com.salesmanager.shop.admin.controller.ControllerConstants;
+import com.salesmanager.web.admin.entity.digital.ProductFiles;
+import com.salesmanager.web.admin.entity.web.Menu;
+import com.salesmanager.web.constants.Constants;
+
+@Controller
+public class DigitalProductController {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(DigitalProductController.class);
+
+ @Inject
+ private ProductService productService;
+
+ @Inject
+ private DigitalProductService digitalProductService;
+
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value={"/admin/products/digitalProduct.html"}, method=RequestMethod.GET)
+ public String getDigitalProduct(@RequestParam("id") long productId, Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+ this.setMenu(model, request);
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ Product product = productService.getById(productId);
+
+ if(product==null || product.getMerchantStore().getId().intValue()!=store.getId().intValue()) {
+ return "redirect:/admin/products/products.html";
+ }
+
+ model.addAttribute("product", product);
+
+ DigitalProduct digitalProduct = digitalProductService.getByProduct(store, product);
+
+ model.addAttribute("digitalProduct", digitalProduct);
+ return ControllerConstants.Tiles.Product.digitalProduct;
+
+ }
+
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/products/product/saveDigitalProduct.html", method=RequestMethod.POST)
+ public String saveFile(@ModelAttribute(value="productFiles") @Valid final ProductFiles productFiles, final BindingResult bindingResult,final Model model, final HttpServletRequest request) throws Exception{
+
+ this.setMenu(model, request);
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ Product product = productService.getById(productFiles.getProduct().getId());
+ DigitalProduct digitalProduct = new DigitalProduct();
+ if(product==null || product.getMerchantStore().getId().intValue()!=store.getId().intValue()) {
+ return "redirect:/admin/products/products.html";
+ }
+
+ digitalProduct.setProduct(product);
+ model.addAttribute("product", product);
+ model.addAttribute("digitalProduct", digitalProduct);
+
+ if (bindingResult.hasErrors()) {
+ LOGGER.info( "Found {} Validation errors", bindingResult.getErrorCount());
+ return ControllerConstants.Tiles.Product.digitalProduct;
+ }
+
+
+ final List<InputContentFile> contentFilesList=new ArrayList<InputContentFile>();
+ if(CollectionUtils.isNotEmpty( productFiles.getFile() )){
+ LOGGER.info("Saving {} product files for merchant {}",productFiles.getFile().size(),store.getId());
+ for(final MultipartFile multipartFile:productFiles.getFile()){
+ if(!multipartFile.isEmpty()){
+ ByteArrayInputStream inputStream = new ByteArrayInputStream( multipartFile.getBytes() );
+ InputContentFile cmsContentImage = new InputContentFile();
+ cmsContentImage.setFileName(multipartFile.getOriginalFilename() );
+ cmsContentImage.setFileContentType( FileContentType.PRODUCT_DIGITAL );
+ cmsContentImage.setFile( inputStream );
+ contentFilesList.add( cmsContentImage);
+ }
+ }
+
+ if(CollectionUtils.isNotEmpty( contentFilesList )){
+
+ digitalProduct.setProductFileName(contentFilesList.get(0).getFileName());
+ digitalProductService.addProductFile(product, digitalProduct, contentFilesList.get(0));
+
+ //refresh digital product
+ digitalProduct = digitalProductService.getByProduct(store, product);
+
+ }
+ }
+
+
+ model.addAttribute("success","success");
+ return ControllerConstants.Tiles.Product.digitalProduct;
+ }
+
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/products/product/removeDigitalProduct.html", method=RequestMethod.POST, produces="application/json")
+ public @ResponseBody String removeFile(@RequestParam("fileId") long fileId, HttpServletRequest request, HttpServletResponse response, Locale locale) {
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ AjaxResponse resp = new AjaxResponse();
+
+
+ try {
+
+ DigitalProduct digitalProduct = digitalProductService.getById(fileId);
+
+ //validate store
+ if(digitalProduct==null) {
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ return resp.toJSONString();
+ }
+
+ Product product = digitalProduct.getProduct();
+ if(product.getMerchantStore().getId().intValue()!= store.getId().intValue()) {
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ return resp.toJSONString();
+ }
+
+ digitalProductService.delete(digitalProduct);
+ resp.setStatus(AjaxResponse.RESPONSE_OPERATION_COMPLETED);
+
+
+ } catch (Exception e) {
+ LOGGER.error("Error while deleting product", e);
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorMessage(e);
+ }
+
+ String returnString = resp.toJSONString();
+
+ return returnString;
+ }
+
+
+ private void setMenu(Model model, HttpServletRequest request) throws Exception {
+
+ //display menu
+ Map<String,String> activeMenus = new HashMap<String,String>();
+ activeMenus.put("catalogue", "catalogue");
+ activeMenus.put("catalogue-products", "catalogue-products");
+
+ @SuppressWarnings("unchecked")
+ Map<String, Menu> menus = (Map<String, Menu>)request.getAttribute("MENUMAP");
+
+ Menu currentMenu = (Menu)menus.get("catalogue");
+ model.addAttribute("currentMenu",currentMenu);
+ model.addAttribute("activeMenus",activeMenus);
+ //
+
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/FeaturedItemsController.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/FeaturedItemsController.java
new file mode 100644
index 0000000..97c6421
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/FeaturedItemsController.java
@@ -0,0 +1,256 @@
+package com.salesmanager.web.admin.controller.products;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import com.salesmanager.core.business.catalog.category.model.Category;
+import com.salesmanager.core.business.catalog.category.service.CategoryService;
+import com.salesmanager.core.business.catalog.product.model.Product;
+import com.salesmanager.core.business.catalog.product.model.description.ProductDescription;
+import com.salesmanager.core.business.catalog.product.model.relationship.ProductRelationship;
+import com.salesmanager.core.business.catalog.product.model.relationship.ProductRelationshipType;
+import com.salesmanager.core.business.catalog.product.service.ProductService;
+import com.salesmanager.core.business.catalog.product.service.relationship.ProductRelationshipService;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.utils.ajax.AjaxPageableResponse;
+import com.salesmanager.core.utils.ajax.AjaxResponse;
+import com.salesmanager.web.admin.entity.web.Menu;
+import com.salesmanager.web.constants.Constants;
+
+
+@Controller
+public class FeaturedItemsController {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(FeaturedItemsController.class);
+
+ @Inject
+ CategoryService categoryService;
+
+ @Inject
+ ProductService productService;
+
+ @Inject
+ ProductRelationshipService productRelationshipService;
+
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/catalogue/featured/list.html", method=RequestMethod.GET)
+ public String displayFeaturedItems(Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+
+ setMenu(model,request);
+
+ Language language = (Language)request.getAttribute("LANGUAGE");
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ List<Category> categories = categoryService.listByStore(store,language);
+
+ model.addAttribute("categories", categories);
+ return "admin-catalogue-featured";
+
+ }
+
+
+ @SuppressWarnings({ "rawtypes", "unchecked" })
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/catalogue/featured/paging.html", method=RequestMethod.POST, produces="application/json;charset=UTF-8")
+ public @ResponseBody String pageProducts(HttpServletRequest request, HttpServletResponse response) {
+
+
+ AjaxResponse resp = new AjaxResponse();
+
+ try {
+
+
+
+ Language language = (Language)request.getAttribute("LANGUAGE");
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+
+ List<ProductRelationship> relationships = productRelationshipService.getByType(store, ProductRelationshipType.FEATURED_ITEM, language);
+
+ for(ProductRelationship relationship : relationships) {
+
+ Product product = relationship.getRelatedProduct();
+ Map entry = new HashMap();
+ entry.put("relationshipId", relationship.getId());
+ entry.put("productId", product.getId());
+
+ ProductDescription description = product.getDescriptions().iterator().next();
+ Set<ProductDescription> descriptions = product.getDescriptions();
+ for(ProductDescription desc : descriptions) {
+ if(desc.getLanguage().getId().intValue()==language.getId().intValue()) {
+ description = desc;
+ }
+ }
+
+ entry.put("name", description.getName());
+ entry.put("sku", product.getSku());
+ entry.put("available", product.isAvailable());
+ resp.addDataEntry(entry);
+
+ }
+
+
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_SUCCESS);
+
+ } catch (Exception e) {
+ LOGGER.error("Error while paging products", e);
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorMessage(e);
+ }
+
+ String returnString = resp.toJSONString();
+ return returnString;
+
+
+ }
+
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/catalogue/featured/addItem.html", method=RequestMethod.POST, produces="application/json")
+ public @ResponseBody String addItem(HttpServletRequest request, HttpServletResponse response) {
+
+ String productId = request.getParameter("productId");
+ AjaxResponse resp = new AjaxResponse();
+
+ try {
+
+
+ Long lProductId = Long.parseLong(productId);
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ Product product = productService.getById(lProductId);
+
+ if(product==null) {
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_FAIURE);
+ return resp.toJSONString();
+ }
+
+ if(product.getMerchantStore().getId().intValue()!=store.getId().intValue()) {
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_FAIURE);
+ return resp.toJSONString();
+ }
+
+
+ ProductRelationship relationship = new ProductRelationship();
+ relationship.setActive(true);
+ relationship.setCode(ProductRelationshipType.FEATURED_ITEM.name());
+ relationship.setStore(store);
+ relationship.setRelatedProduct(product);
+
+ productRelationshipService.saveOrUpdate(relationship);
+
+
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_SUCCESS);
+
+ } catch (Exception e) {
+ LOGGER.error("Error while paging products", e);
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorMessage(e);
+ }
+
+ String returnString = resp.toJSONString();
+ return returnString;
+
+ }
+
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/catalogue/featured/removeItem.html&removeEntity=FEATURED", method=RequestMethod.POST, produces="application/json")
+ public @ResponseBody String removeItem(HttpServletRequest request, HttpServletResponse response) {
+
+ String productId = request.getParameter("productId");
+ AjaxResponse resp = new AjaxResponse();
+
+ try {
+
+
+ Long lproductId = Long.parseLong(productId);
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ Product product = productService.getById(lproductId);
+
+ if(product==null) {
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_FAIURE);
+ return resp.toJSONString();
+ }
+
+ if(product.getMerchantStore().getId().intValue()!=store.getId().intValue()) {
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_FAIURE);
+ return resp.toJSONString();
+ }
+
+
+ ProductRelationship relationship = null;
+ List<ProductRelationship> relationships = productRelationshipService.getByType(store, ProductRelationshipType.FEATURED_ITEM);
+
+ for(ProductRelationship r : relationships) {
+ if(r.getRelatedProduct().getId().longValue()==lproductId.longValue()) {
+ relationship = r;
+ }
+ }
+
+ if(relationship==null) {
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_FAIURE);
+ return resp.toJSONString();
+ }
+
+ if(relationship.getStore().getId().intValue()!=store.getId().intValue()) {
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_FAIURE);
+ return resp.toJSONString();
+ }
+
+
+
+
+ productRelationshipService.delete(relationship);
+
+
+ resp.setStatus(AjaxPageableResponse.RESPONSE_OPERATION_COMPLETED);
+
+ } catch (Exception e) {
+ LOGGER.error("Error while paging products", e);
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorMessage(e);
+ }
+
+ String returnString = resp.toJSONString();
+ return returnString;
+
+ }
+
+
+ private void setMenu(Model model, HttpServletRequest request) throws Exception {
+
+ //display menu
+ Map<String,String> activeMenus = new HashMap<String,String>();
+ activeMenus.put("catalogue", "catalogue");
+ activeMenus.put("catalogue-products-group", "catalogue-products-group");
+
+ @SuppressWarnings("unchecked")
+ Map<String, Menu> menus = (Map<String, Menu>)request.getAttribute("MENUMAP");
+
+ Menu currentMenu = (Menu)menus.get("catalogue");
+ model.addAttribute("currentMenu",currentMenu);
+ model.addAttribute("activeMenus",activeMenus);
+ //
+
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ManufacturerController.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ManufacturerController.java
new file mode 100644
index 0000000..5ef0b8b
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ManufacturerController.java
@@ -0,0 +1,498 @@
+package com.salesmanager.web.admin.controller.products;
+
+import java.awt.image.BufferedImage;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.Set;
+
+import javax.imageio.ImageIO;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
+
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.validation.BindingResult;
+import org.springframework.validation.ObjectError;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import com.salesmanager.core.business.catalog.product.model.manufacturer.Manufacturer;
+import com.salesmanager.core.business.catalog.product.model.manufacturer.ManufacturerDescription;
+import com.salesmanager.core.business.catalog.product.service.manufacturer.ManufacturerService;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.business.reference.language.service.LanguageService;
+import com.salesmanager.core.utils.CoreConfiguration;
+import com.salesmanager.core.utils.ajax.AjaxPageableResponse;
+import com.salesmanager.core.utils.ajax.AjaxResponse;
+import com.salesmanager.shop.admin.controller.ControllerConstants;
+import com.salesmanager.web.admin.controller.customers.CustomerController;
+import com.salesmanager.web.admin.entity.web.Menu;
+import com.salesmanager.web.constants.Constants;
+import com.salesmanager.web.utils.LabelUtils;
+
+@Controller
+public class ManufacturerController {
+
+ @Inject
+ private LanguageService languageService;
+
+ @Inject
+ private ManufacturerService manufacturerService;
+
+ @Inject
+ LabelUtils messages;
+
+ @Inject
+ private CoreConfiguration configuration;
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(CustomerController.class);
+
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/catalogue/manufacturer/list.html", method=RequestMethod.GET)
+ public String getManufacturers(Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+ this.setMenu(model, request);
+
+ return ControllerConstants.Tiles.Product.manufacturerList;
+ }
+
+
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/catalogue/manufacturer/create.html", method=RequestMethod.GET)
+ public String createManufacturer( Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+ return displayManufacturer(null,model,request,response);
+ }
+
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/catalogue/manufacturer/edit.html", method=RequestMethod.GET)
+ public String editManufacturer(@RequestParam("id") long manufacturerId, Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+ return displayManufacturer(manufacturerId,model,request,response);
+ }
+
+ private String displayManufacturer(Long manufacturerId, Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+ //display menu
+ setMenu(model,request);
+
+ //List<Language> languages = languageService.getLanguages();
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+ List<Language> languages = store.getLanguages();
+
+
+ com.salesmanager.web.admin.entity.catalog.Manufacturer manufacturer = new com.salesmanager.web.admin.entity.catalog.Manufacturer();
+ List<ManufacturerDescription> descriptions = new ArrayList<ManufacturerDescription>();
+
+
+ if( manufacturerId!=null && manufacturerId.longValue()!=0) { //edit mode
+
+ Manufacturer dbManufacturer = new Manufacturer();
+ dbManufacturer = manufacturerService.getById( manufacturerId );
+
+ if(dbManufacturer==null) {
+ return ControllerConstants.Tiles.Product.manufacturerList;
+ }
+
+ if(dbManufacturer.getMerchantStore().getId().intValue()!=store.getId().intValue()) {
+ return ControllerConstants.Tiles.Product.manufacturerList;
+ }
+
+ Set<ManufacturerDescription> manufacturerDescriptions = dbManufacturer.getDescriptions();
+
+
+ for(Language l : languages) {
+
+ ManufacturerDescription manufDescription = null;
+ if(manufacturerDescriptions!=null) {
+
+ for(ManufacturerDescription desc : manufacturerDescriptions) {
+ String code = desc.getLanguage().getCode();
+ if(code.equals(l.getCode())) {
+ manufDescription = desc;
+ }
+
+ }
+
+ }
+
+ if(manufDescription==null) {
+ manufDescription = new ManufacturerDescription();
+ manufDescription.setLanguage(l);
+ }
+
+ manufacturer.getDescriptions().add(manufDescription);
+
+ }
+
+ manufacturer.setManufacturer( dbManufacturer );
+
+ manufacturer.setCode(dbManufacturer.getCode());
+ manufacturer.setOrder( dbManufacturer.getOrder() );
+
+ } else { // Create mode
+
+ Manufacturer manufacturerTmp = new Manufacturer();
+ manufacturer.setManufacturer( manufacturerTmp );
+
+ for(Language l : languages) {// for each store language
+
+ ManufacturerDescription manufacturerDesc = new ManufacturerDescription();
+ manufacturerDesc.setLanguage(l);
+ descriptions.add( manufacturerDesc );
+ manufacturer.setDescriptions(descriptions);
+
+ }
+ }
+
+ model.addAttribute("languages",languages);
+ model.addAttribute("manufacturer", manufacturer);
+
+ return ControllerConstants.Tiles.Product.manufacturerDetails;
+ }
+
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/catalogue/manufacturer/save.html", method=RequestMethod.POST)
+ public String saveManufacturer( @Valid @ModelAttribute("manufacturer") com.salesmanager.web.admin.entity.catalog.Manufacturer manufacturer, BindingResult result, Model model, HttpServletRequest request, HttpServletResponse response, Locale locale) throws Exception {
+
+ this.setMenu(model, request);
+ //save or edit a manufacturer
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+ List<Language> languages = languageService.getLanguages();
+
+ if(manufacturer.getDescriptions()!=null && manufacturer.getDescriptions().size()>0) {
+
+ for(ManufacturerDescription description : manufacturer.getDescriptions()) {
+
+ //validate Url Clicked
+/* if ( description.getUrlClicked() != null && !description.getUrlClicked().toString().isEmpty()) {
+ try{
+ Integer.parseInt( description.getUrlClicked().toString() );
+
+ } catch (Exception e) {
+
+ ObjectError error = new ObjectError("descriptions[${counter.index}].urlClicked","URL Clicked must be a number");
+ result.addError(error);
+ }
+ }*/
+ }
+ }
+
+
+ //validate image
+ if(manufacturer.getImage()!=null && !manufacturer.getImage().isEmpty()) {
+
+ try {
+
+ String maxHeight = configuration.getProperty("PRODUCT_IMAGE_MAX_HEIGHT_SIZE");
+ String maxWidth = configuration.getProperty("PRODUCT_IMAGE_MAX_WIDTH_SIZE");
+ String maxSize = configuration.getProperty("PRODUCT_IMAGE_MAX_SIZE");
+
+ BufferedImage image = ImageIO.read(manufacturer.getImage().getInputStream());
+
+ if(!StringUtils.isBlank(maxHeight)) {
+
+ int maxImageHeight = Integer.parseInt(maxHeight);
+ if(image.getHeight()>maxImageHeight) {
+ ObjectError error = new ObjectError("image",messages.getMessage("message.image.height", locale) + " {"+maxHeight+"}");
+ result.addError(error);
+ }
+ }
+
+ if(!StringUtils.isBlank(maxWidth)) {
+
+ int maxImageWidth = Integer.parseInt(maxWidth);
+ if(image.getWidth()>maxImageWidth) {
+ ObjectError error = new ObjectError("image",messages.getMessage("message.image.width", locale) + " {"+maxWidth+"}");
+ result.addError(error);
+ }
+ }
+
+ if(!StringUtils.isBlank(maxSize)) {
+
+ int maxImageSize = Integer.parseInt(maxSize);
+ if(manufacturer.getImage().getSize()>maxImageSize) {
+ ObjectError error = new ObjectError("image",messages.getMessage("message.image.size", locale) + " {"+maxSize+"}");
+ result.addError(error);
+ }
+ }
+
+ } catch (Exception e) {
+ LOGGER.error("Cannot validate manufacturer image", e);
+ }
+
+ }
+
+ if (result.hasErrors()) {
+ model.addAttribute("languages",languages);
+ return ControllerConstants.Tiles.Product.manufacturerDetails;
+ }
+
+ Manufacturer newManufacturer = manufacturer.getManufacturer();
+
+ if ( manufacturer.getManufacturer().getId() !=null && manufacturer.getManufacturer().getId() > 0 ){
+
+ newManufacturer = manufacturerService.getById( manufacturer.getManufacturer().getId() );
+
+ if(newManufacturer.getMerchantStore().getId().intValue()!=store.getId().intValue()) {
+ return ControllerConstants.Tiles.Product.manufacturerList;
+ }
+
+ }
+
+// for(ManufacturerImage image : manufacturer.getImages()) {
+// if(image.isDefaultImage()) {
+// manufacturer.setProductImage(image);
+// }
+// }
+
+ Set<ManufacturerDescription> descriptions = new HashSet<ManufacturerDescription>();
+ if(manufacturer.getDescriptions()!=null && manufacturer.getDescriptions().size()>0) {
+
+ for(ManufacturerDescription desc : manufacturer.getDescriptions()) {
+
+ desc.setManufacturer(newManufacturer);
+ descriptions.add(desc);
+ }
+ }
+ newManufacturer.setDescriptions(descriptions );
+ newManufacturer.setOrder( manufacturer.getOrder() );
+ newManufacturer.setMerchantStore(store);
+ newManufacturer.setCode(manufacturer.getCode());
+
+
+// if(manufacturer.getManufacturerImage()!=null && manufacturer.getManufacturerImage().getId() == null) {
+// newManufacturer.setProductImage(null);
+// }
+
+
+
+ if(manufacturer.getImage()!=null && !manufacturer.getImage().isEmpty()) {
+//
+// String imageName = manufacturer.getImage().getOriginalFilename();
+//
+// ManufacturerImage manufacturerImage = new ManufacturerImage();
+// manufacturerImage.setDefaultImage(true);
+// manufacturerImage.setImage(manufacturer.getImage().getInputStream());
+// manufacturerImage.setManufacturerImage(imageName);
+//
+// List<ManufacturerImageDescription> imagesDescriptions = new ArrayList<ManufacturerImageDescription>();
+//
+// for(Language l : languages) {
+//
+// ManufacturerImageDescription imageDescription = new ManufacturerImageDescription();
+// imageDescription.setName(imageName);
+// imageDescription.setLanguage(l);
+// imageDescription.setManufacturerImage(productImage);
+// imagesDescriptions.add(imageDescription);
+//
+// }
+//
+// manufacturerImage.setDescriptions(imagesDescriptions);
+// manufacturerImage.setProduct(newManufacturer);
+//
+// newManufacturer.getImages().add(manufacturerImage);
+//
+// manufacturerService.saveOrUpdate(newManufacturer);
+//
+// //manufacturer displayed
+// manufacturer.setProductImage(manufacturerImage);
+
+
+ } else {
+
+ manufacturerService.saveOrUpdate(newManufacturer);
+ }
+
+ model.addAttribute("manufacturer", manufacturer);
+ model.addAttribute("languages",languages);
+ model.addAttribute("success","success");
+
+ return ControllerConstants.Tiles.Product.manufacturerDetails;
+
+ }
+
+
+ @SuppressWarnings("unchecked")
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/catalogue/manufacturer/paging.html", method=RequestMethod.POST, produces="application/json;charset=UTF-8")
+ public @ResponseBody String pageManufacturers(HttpServletRequest request, HttpServletResponse response) {
+
+ AjaxResponse resp = new AjaxResponse();
+ try {
+
+ Language language = (Language)request.getAttribute("LANGUAGE");
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ List<Manufacturer> manufacturers = null;
+ manufacturers = manufacturerService.listByStore(store, language);
+
+
+ for(Manufacturer manufacturer : manufacturers) {
+
+ @SuppressWarnings("rawtypes")
+ Map entry = new HashMap();
+ entry.put("id", manufacturer.getId());
+
+ ManufacturerDescription description = manufacturer.getDescriptions().iterator().next();
+
+ entry.put("name", description.getName());
+ entry.put("code", manufacturer.getCode());
+ entry.put("order", manufacturer.getOrder());
+ resp.addDataEntry(entry);
+
+ }
+
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_SUCCESS);
+
+ } catch (Exception e) {
+ LOGGER.error("Error while paging Manufacturers", e);
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ }
+
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_SUCCESS);
+
+ String returnString = resp.toJSONString();
+ return returnString;
+
+ }
+
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/catalogue/manufacturer/remove.html", method=RequestMethod.POST, produces="application/json;charset=UTF-8")
+ public @ResponseBody String deleteManufacturer(HttpServletRequest request, HttpServletResponse response, Locale locale) {
+ Long sid = Long.valueOf(request.getParameter("id") );
+
+
+ AjaxResponse resp = new AjaxResponse();
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ try{
+ Manufacturer delManufacturer = manufacturerService.getById( sid );
+ if(delManufacturer==null || delManufacturer.getMerchantStore().getId().intValue() != store.getId().intValue()) {
+ resp.setStatusMessage(messages.getMessage("message.unauthorized", locale));
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ return resp.toJSONString();
+ }
+
+ int count = manufacturerService.getCountManufAttachedProducts( delManufacturer );
+ //IF already attached to products it can't be deleted
+ if ( count > 0 ){
+ resp.setStatusMessage(messages.getMessage("message.product.association", locale));
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ return resp.toJSONString();
+ }
+
+ manufacturerService.delete( delManufacturer );
+
+ resp.setStatusMessage(messages.getMessage("message.success", locale));
+ resp.setStatus(AjaxResponse.RESPONSE_OPERATION_COMPLETED);
+
+ } catch (Exception e) {
+
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ LOGGER.error("Cannot delete manufacturer.", e);
+ }
+
+ String returnString = resp.toJSONString();
+ return returnString;
+
+ }
+
+
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/manufacturer/checkCode.html", method=RequestMethod.POST, produces="application/json")
+ public @ResponseBody String checkCode(HttpServletRequest request, HttpServletResponse response, Locale locale) {
+ String code = request.getParameter("code");
+ String id = request.getParameter("id");
+
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+
+ AjaxResponse resp = new AjaxResponse();
+
+ if(StringUtils.isBlank(code)) {
+ resp.setStatus(AjaxResponse.CODE_ALREADY_EXIST);
+ return resp.toJSONString();
+ }
+
+
+ try {
+
+ Manufacturer manufacturer = manufacturerService.getByCode(store, code);
+
+ if(manufacturer!=null && StringUtils.isBlank(id)) {
+ resp.setStatus(AjaxResponse.CODE_ALREADY_EXIST);
+ return resp.toJSONString();
+ }
+
+
+ if(manufacturer!=null && !StringUtils.isBlank(id)) {
+ try {
+ Long lid = Long.parseLong(id);
+
+ if(manufacturer.getCode().equals(code) && manufacturer.getId().longValue()==lid) {
+ resp.setStatus(AjaxResponse.CODE_ALREADY_EXIST);
+ return resp.toJSONString();
+ }
+ } catch (Exception e) {
+ resp.setStatus(AjaxResponse.CODE_ALREADY_EXIST);
+ return resp.toJSONString();
+ }
+
+ }
+
+
+
+
+
+
+
+
+
+
+ resp.setStatus(AjaxResponse.RESPONSE_OPERATION_COMPLETED);
+
+ } catch (Exception e) {
+ LOGGER.error("Error while getting category", e);
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorMessage(e);
+ }
+
+ String returnString = resp.toJSONString();
+
+ return returnString;
+ }
+
+
+
+ private void setMenu(Model model, HttpServletRequest request) throws Exception {
+ //display menu
+ Map<String,String> activeMenus = new HashMap<String,String>();
+ activeMenus.put("catalogue", "catalogue");
+ activeMenus.put("manufacturer-list", "manufacturer-list");
+
+ @SuppressWarnings("unchecked")
+ Map<String, Menu> menus = (Map<String, Menu>)request.getAttribute("MENUMAP");
+
+ Menu currentMenu = (Menu)menus.get("catalogue");
+ model.addAttribute("currentMenu",currentMenu);
+ model.addAttribute("activeMenus",activeMenus);
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/OptionsController.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/OptionsController.java
new file mode 100644
index 0000000..65649cb
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/OptionsController.java
@@ -0,0 +1,345 @@
+package com.salesmanager.web.admin.controller.products;
+
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.Set;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
+
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.validation.BindingResult;
+import org.springframework.validation.ObjectError;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import com.salesmanager.core.business.catalog.product.model.attribute.ProductOption;
+import com.salesmanager.core.business.catalog.product.model.attribute.ProductOptionDescription;
+import com.salesmanager.core.business.catalog.product.service.attribute.ProductOptionService;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.business.reference.language.service.LanguageService;
+import com.salesmanager.core.utils.ajax.AjaxResponse;
+import com.salesmanager.web.admin.entity.web.Menu;
+import com.salesmanager.web.constants.Constants;
+import com.salesmanager.web.utils.LabelUtils;
+
+@Controller
+public class OptionsController {
+
+ @Inject
+ LanguageService languageService;
+
+ @Inject
+ ProductOptionService productOptionService;
+
+ @Inject
+ LabelUtils messages;
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(OptionsController.class);
+
+
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/options/options.html", method=RequestMethod.GET)
+ public String displayOptions(Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+ setMenu(model,request);
+
+
+
+
+ return "catalogue-options-list";
+
+
+
+ }
+
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/options/editOption.html", method=RequestMethod.GET)
+ public String displayOptionEdit(@RequestParam("id") long optionId, HttpServletRequest request, HttpServletResponse response, Model model, Locale locale) throws Exception {
+ return displayOption(optionId,request,response,model,locale);
+ }
+
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/options/createOption.html", method=RequestMethod.GET)
+ public String displayOption(HttpServletRequest request, HttpServletResponse response, Model model, Locale locale) throws Exception {
+ return displayOption(null,request,response,model,locale);
+ }
+
+ private String displayOption(Long optionId, HttpServletRequest request, HttpServletResponse response,Model model,Locale locale) throws Exception {
+
+
+ this.setMenu(model, request);
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ List<Language> languages = store.getLanguages();
+
+ Set<ProductOptionDescription> descriptions = new HashSet<ProductOptionDescription>();
+
+ ProductOption option = new ProductOption();
+
+ if(optionId!=null && optionId!=0) {//edit mode
+
+
+ option = productOptionService.getById(optionId);
+
+
+ if(option==null) {
+ return "redirect:/admin/options/options.html";
+ }
+
+ Set<ProductOptionDescription> optionDescriptions = option.getDescriptions();
+
+
+
+ for(Language l : languages) {
+
+ ProductOptionDescription optionDescription = null;
+
+ if(optionDescriptions!=null) {
+
+ for(ProductOptionDescription description : optionDescriptions) {
+
+ String code = description.getLanguage().getCode();
+ if(code.equals(l.getCode())) {
+ optionDescription = description;
+ }
+
+ }
+
+ }
+
+ if(optionDescription==null) {
+ optionDescription = new ProductOptionDescription();
+ optionDescription.setLanguage(l);
+ }
+
+ descriptions.add(optionDescription);
+
+ }
+
+ } else {
+
+ for(Language l : languages) {
+
+ ProductOptionDescription desc = new ProductOptionDescription();
+ desc.setLanguage(l);
+ descriptions.add(desc);
+
+ }
+
+ }
+
+
+ option.setDescriptions(descriptions);
+ model.addAttribute("option", option);
+ return "catalogue-options-details";
+
+
+ }
+
+
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/options/save.html", method=RequestMethod.POST)
+ public String saveOption(@Valid @ModelAttribute("option") ProductOption option, BindingResult result, Model model, HttpServletRequest request, Locale locale) throws Exception {
+
+
+ //display menu
+ setMenu(model,request);
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+ ProductOption dbEntity = null;
+
+ if(option.getId() != null && option.getId() >0) { //edit entry
+ //get from DB
+ dbEntity = productOptionService.getById(option.getId());
+
+ if(dbEntity==null) {
+ return "redirect:/admin/options/options.html";
+ }
+ }
+
+ //validate if it contains an existing code
+ ProductOption byCode = productOptionService.getByCode(store, option.getCode());
+ if(byCode!=null) {
+ ObjectError error = new ObjectError("code",messages.getMessage("message.code.exist", locale));
+ result.addError(error);
+ }
+
+
+ Map<String,Language> langs = languageService.getLanguagesMap();
+
+
+ List<ProductOptionDescription> descriptions = option.getDescriptionsList();
+
+ if(descriptions!=null) {
+
+ for(ProductOptionDescription description : descriptions) {
+
+ String code = description.getLanguage().getCode();
+ Language l = langs.get(code);
+ description.setLanguage(l);
+ description.setProductOption(option);
+
+ }
+
+ }
+
+ option.setDescriptions(new HashSet<ProductOptionDescription>(descriptions));
+ option.setMerchantStore(store);
+
+
+ if (result.hasErrors()) {
+ return "catalogue-options-details";
+ }
+
+
+
+
+ productOptionService.saveOrUpdate(option);
+
+
+
+
+ model.addAttribute("success","success");
+ return "catalogue-options-details";
+ }
+
+
+
+ @SuppressWarnings("unchecked")
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/options/paging.html", method=RequestMethod.POST, produces="application/json;charset=UTF-8")
+ public @ResponseBody String pageOptions(HttpServletRequest request, HttpServletResponse response) {
+
+ String optionName = request.getParameter("name");
+
+
+ AjaxResponse resp = new AjaxResponse();
+
+
+ try {
+
+
+ Language language = (Language)request.getAttribute("LANGUAGE");
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ List<ProductOption> options = null;
+
+ if(!StringUtils.isBlank(optionName)) {
+
+ options = productOptionService.getByName(store, optionName, language);
+
+ } else {
+
+ options = productOptionService.listByStore(store, language);
+
+ }
+
+
+
+ for(ProductOption option : options) {
+
+ @SuppressWarnings("rawtypes")
+ Map entry = new HashMap();
+ entry.put("optionId", option.getId());
+ entry.put("display", option.isReadOnly());
+ ProductOptionDescription description = option.getDescriptions().iterator().next();
+
+ entry.put("name", description.getName());
+ entry.put("type", option.getProductOptionType());//TODO resolve with option type label
+ resp.addDataEntry(entry);
+
+
+ }
+
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_SUCCESS);
+
+
+
+ } catch (Exception e) {
+ LOGGER.error("Error while paging options", e);
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ }
+
+ String returnString = resp.toJSONString();
+
+ return returnString;
+
+
+ }
+
+
+
+
+ private void setMenu(Model model, HttpServletRequest request) throws Exception {
+
+ //display menu
+ Map<String,String> activeMenus = new HashMap<String,String>();
+ activeMenus.put("catalogue", "catalogue");
+ activeMenus.put("catalogue-options", "catalogue-options");
+
+ @SuppressWarnings("unchecked")
+ Map<String, Menu> menus = (Map<String, Menu>)request.getAttribute("MENUMAP");
+
+ Menu currentMenu = (Menu)menus.get("catalogue");
+ model.addAttribute("currentMenu",currentMenu);
+ model.addAttribute("activeMenus",activeMenus);
+ //
+
+ }
+
+ @RequestMapping(value="/admin/options/remove.html", method=RequestMethod.POST, produces="application/json")
+ public @ResponseBody String deleteOption(HttpServletRequest request, HttpServletResponse response, Locale locale) {
+ String sid = request.getParameter("optionId");
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ AjaxResponse resp = new AjaxResponse();
+
+
+ try {
+
+ Long id = Long.parseLong(sid);
+
+ ProductOption entity = productOptionService.getById(id);
+
+ if(entity==null || entity.getMerchantStore().getId().intValue()!=store.getId().intValue()) {
+
+ resp.setStatusMessage(messages.getMessage("message.unauthorized", locale));
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+
+ } else {
+
+ productOptionService.delete(entity);
+ resp.setStatus(AjaxResponse.RESPONSE_OPERATION_COMPLETED);
+
+ }
+
+
+ } catch (Exception e) {
+ LOGGER.error("Error while deleting option", e);
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorMessage(e);
+ }
+
+ String returnString = resp.toJSONString();
+
+ return returnString;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/OptionsValueController.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/OptionsValueController.java
new file mode 100644
index 0000000..19e014a
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/OptionsValueController.java
@@ -0,0 +1,437 @@
+package com.salesmanager.web.admin.controller.products;
+
+import java.io.InputStream;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.Set;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
+
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.validation.BindingResult;
+import org.springframework.validation.ObjectError;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import com.salesmanager.core.business.catalog.product.model.attribute.ProductOptionValue;
+import com.salesmanager.core.business.catalog.product.model.attribute.ProductOptionValueDescription;
+import com.salesmanager.core.business.catalog.product.service.attribute.ProductOptionValueService;
+import com.salesmanager.core.business.content.model.FileContentType;
+import com.salesmanager.core.business.content.model.InputContentFile;
+import com.salesmanager.core.business.content.service.ContentService;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.business.reference.language.service.LanguageService;
+import com.salesmanager.core.utils.ajax.AjaxResponse;
+import com.salesmanager.web.admin.entity.web.Menu;
+import com.salesmanager.web.constants.Constants;
+import com.salesmanager.web.utils.ImageFilePath;
+import com.salesmanager.web.utils.LabelUtils;
+
+@Controller
+public class OptionsValueController {
+
+ @Inject
+ LanguageService languageService;
+
+
+ @Inject
+ ProductOptionValueService productOptionValueService;
+
+ @Inject
+ LabelUtils messages;
+
+ @Inject
+ private ContentService contentService;
+
+ @Inject
+ @Qualifier("img")
+ private ImageFilePath imageUtils;
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(OptionsValueController.class);
+
+
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/options/optionvalues.html", method=RequestMethod.GET)
+ public String displayOptions(Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+
+ setMenu(model,request);
+
+ //subsequent ajax call
+
+
+ return "catalogue-optionsvalues-list";
+
+
+
+ }
+
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/options/editOptionValue.html", method=RequestMethod.GET)
+ public String displayOptionEdit(@RequestParam("id") long optionId, HttpServletRequest request, HttpServletResponse response, Model model, Locale locale) throws Exception {
+ return displayOption(optionId,request,response,model,locale);
+ }
+
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/options/createOptionValue.html", method=RequestMethod.GET)
+ public String displayOption(HttpServletRequest request, HttpServletResponse response, Model model, Locale locale) throws Exception {
+ return displayOption(null,request,response,model,locale);
+ }
+
+ private String displayOption(Long optionId, HttpServletRequest request, HttpServletResponse response,Model model,Locale locale) throws Exception {
+
+
+ this.setMenu(model, request);
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ List<Language> languages = store.getLanguages();
+
+ Set<ProductOptionValueDescription> descriptions = new HashSet<ProductOptionValueDescription>();
+
+ ProductOptionValue option = new ProductOptionValue();
+
+ if(optionId!=null && optionId!=0) {//edit mode
+
+
+ option = productOptionValueService.getById(store, optionId);
+
+
+ if(option==null) {
+ return "redirect:/admin/options/optionsvalues.html";
+ }
+
+ Set<ProductOptionValueDescription> optionDescriptions = option.getDescriptions();
+
+
+
+ for(Language l : languages) {
+
+ ProductOptionValueDescription optionDescription = null;
+
+ if(optionDescriptions!=null) {
+
+ for(ProductOptionValueDescription description : optionDescriptions) {
+
+ String code = description.getLanguage().getCode();
+ if(code.equals(l.getCode())) {
+ optionDescription = description;
+ }
+
+ }
+
+ }
+
+ if(optionDescription==null) {
+ optionDescription = new ProductOptionValueDescription();
+ optionDescription.setLanguage(l);
+ }
+
+ descriptions.add(optionDescription);
+
+ }
+
+ } else {
+
+ for(Language l : languages) {
+
+ ProductOptionValueDescription desc = new ProductOptionValueDescription();
+ desc.setLanguage(l);
+ descriptions.add(desc);
+
+ }
+
+ option.setDescriptions(descriptions);
+
+ }
+
+
+
+ model.addAttribute("optionValue", option);
+ return "catalogue-optionsvalues-details";
+
+
+ }
+
+
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/options/saveOptionValue.html", method=RequestMethod.POST)
+ public String saveOption(@Valid @ModelAttribute("optionValue") ProductOptionValue optionValue, BindingResult result, Model model, HttpServletRequest request, Locale locale) throws Exception {
+
+
+ //display menu
+ setMenu(model,request);
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+ ProductOptionValue dbEntity = null;
+
+ if(optionValue.getId() != null && optionValue.getId() >0) { //edit entry
+
+ //get from DB
+ dbEntity = productOptionValueService.getById(store,optionValue.getId());
+
+ if(dbEntity==null) {
+ return "redirect:/admin/options/optionsvalues.html";
+ }
+
+
+ }
+
+ //validate if it contains an existing code
+ ProductOptionValue byCode = productOptionValueService.getByCode(store, optionValue.getCode());
+ if(byCode!=null) {
+ ObjectError error = new ObjectError("code",messages.getMessage("message.code.exist", locale));
+ result.addError(error);
+ }
+
+
+ Map<String,Language> langs = languageService.getLanguagesMap();
+
+
+ List<ProductOptionValueDescription> descriptions = optionValue.getDescriptionsList();
+ if(descriptions!=null && descriptions.size()>0) {
+
+ Set<ProductOptionValueDescription> descs = new HashSet<ProductOptionValueDescription>();
+
+ //if(descs==null || descs.size()==0) {
+
+ //} else {
+
+ optionValue.setDescriptions(descs);
+ for(ProductOptionValueDescription description : descriptions) {
+
+ if(StringUtils.isBlank(description.getName())) {
+ ObjectError error = new ObjectError("name",messages.getMessage("message.name.required", locale));
+ result.addError(error);
+ } else {
+
+
+ String code = description.getLanguage().getCode();
+ Language l = langs.get(code);
+ description.setLanguage(l);
+ description.setProductOptionValue(optionValue);
+ descs.add(description);
+
+ }
+
+
+ }
+
+
+ } else {
+
+ ObjectError error = new ObjectError("name",messages.getMessage("message.name.required", locale));
+ result.addError(error);
+
+ }
+
+
+ optionValue.setMerchantStore(store);
+
+
+ if (result.hasErrors()) {
+ return "catalogue-optionsvalues-details";
+ }
+
+
+ if(optionValue.getImage()!=null && !optionValue.getImage().isEmpty()) {
+
+ String imageName = optionValue.getImage().getOriginalFilename();
+ InputStream inputStream = optionValue.getImage().getInputStream();
+ InputContentFile cmsContentImage = new InputContentFile();
+ cmsContentImage.setFileName(imageName);
+ cmsContentImage.setMimeType( optionValue.getImage().getContentType() );
+ cmsContentImage.setFile( inputStream );
+ contentService.addOptionImage(store.getCode(), cmsContentImage);
+
+ optionValue.setProductOptionValueImage(imageName);
+
+ }
+
+ productOptionValueService.saveOrUpdate(optionValue);
+
+
+
+
+ model.addAttribute("success","success");
+ return "catalogue-optionsvalues-details";
+ }
+
+
+
+ @SuppressWarnings("unchecked")
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/optionsvalues/paging.html", method=RequestMethod.POST, produces="application/json;charset=UTF-8")
+ public @ResponseBody String pageOptions(HttpServletRequest request, HttpServletResponse response) {
+
+ String optionName = request.getParameter("name");
+
+
+ AjaxResponse resp = new AjaxResponse();
+
+
+ try {
+
+
+ Language language = (Language)request.getAttribute("LANGUAGE");
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ List<ProductOptionValue> options = null;
+
+ if(!StringUtils.isBlank(optionName)) {
+
+ //productOptionValueService.getByName(store, optionName, language);
+
+ } else {
+
+ options = productOptionValueService.listByStore(store, language);
+
+ }
+
+
+
+ for(ProductOptionValue option : options) {
+
+ @SuppressWarnings("rawtypes")
+ Map entry = new HashMap();
+ entry.put("optionValueId", option.getId());
+
+ ProductOptionValueDescription description = option.getDescriptions().iterator().next();
+
+ entry.put("name", description.getName());
+ //entry.put("image", new StringBuilder().append(store.getCode()).append("/").append(FileContentType.PROPERTY.name()).append("/").append(option.getProductOptionValueImage()).toString());
+ entry.put("image", imageUtils.buildProductPropertyimageUtils(store, option.getProductOptionValueImage()));
+ resp.addDataEntry(entry);
+
+
+ }
+
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_SUCCESS);
+
+
+
+ } catch (Exception e) {
+ LOGGER.error("Error while paging options", e);
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ }
+
+ String returnString = resp.toJSONString();
+
+ return returnString;
+
+
+ }
+
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/optionsvalues/remove.html", method=RequestMethod.POST, produces="application/json")
+ public @ResponseBody String deleteOptionValue(HttpServletRequest request, HttpServletResponse response, Locale locale) {
+ String sid = request.getParameter("optionValueId");
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ AjaxResponse resp = new AjaxResponse();
+
+
+ try {
+
+ Long id = Long.parseLong(sid);
+
+ ProductOptionValue entity = productOptionValueService.getById(store, id);
+
+ if(entity==null || entity.getMerchantStore().getId().intValue()!=store.getId().intValue()) {
+
+ resp.setStatusMessage(messages.getMessage("message.unauthorized", locale));
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+
+ } else {
+
+ productOptionValueService.delete(entity);
+ resp.setStatus(AjaxResponse.RESPONSE_OPERATION_COMPLETED);
+
+ }
+
+
+ } catch (Exception e) {
+ LOGGER.error("Error while deleting option", e);
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorMessage(e);
+ }
+
+ String returnString = resp.toJSONString();
+
+ return returnString;
+ }
+
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/optionsvalues/removeImage.html", method=RequestMethod.POST, produces="application/json")
+ public @ResponseBody String removeImage(HttpServletRequest request, HttpServletResponse response, Locale locale) {
+ String optionValueId = request.getParameter("optionId");
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ AjaxResponse resp = new AjaxResponse();
+
+
+ try {
+
+ Long id = Long.parseLong(optionValueId);
+
+ ProductOptionValue optionValue = productOptionValueService.getById(store, id);
+
+
+
+ contentService.removeFile(store.getCode(), FileContentType.PROPERTY, optionValue.getProductOptionValueImage());
+
+ store.setStoreLogo(null);
+ optionValue.setProductOptionValueImage(null);
+ productOptionValueService.update(optionValue);
+
+
+ } catch (Exception e) {
+ LOGGER.error("Error while deleting product", e);
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorMessage(e);
+ }
+
+ String returnString = resp.toJSONString();
+
+ return returnString;
+ }
+
+
+
+
+ private void setMenu(Model model, HttpServletRequest request) throws Exception {
+
+ //display menu
+ Map<String,String> activeMenus = new HashMap<String,String>();
+ activeMenus.put("catalogue", "catalogue");
+ activeMenus.put("catalogue-options", "catalogue-options");
+
+ @SuppressWarnings("unchecked")
+ Map<String, Menu> menus = (Map<String, Menu>)request.getAttribute("MENUMAP");
+
+ Menu currentMenu = (Menu)menus.get("catalogue");
+ model.addAttribute("currentMenu",currentMenu);
+ model.addAttribute("activeMenus",activeMenus);
+ //
+
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ProductAttributeController.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ProductAttributeController.java
new file mode 100644
index 0000000..6cc0be8
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ProductAttributeController.java
@@ -0,0 +1,532 @@
+package com.salesmanager.web.admin.controller.products;
+
+import java.math.BigDecimal;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.Set;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
+
+import org.apache.commons.lang3.RandomStringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.validation.BindingResult;
+import org.springframework.validation.ObjectError;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import com.salesmanager.core.business.catalog.product.model.Product;
+import com.salesmanager.core.business.catalog.product.model.attribute.ProductAttribute;
+import com.salesmanager.core.business.catalog.product.model.attribute.ProductOption;
+import com.salesmanager.core.business.catalog.product.model.attribute.ProductOptionDescription;
+import com.salesmanager.core.business.catalog.product.model.attribute.ProductOptionValue;
+import com.salesmanager.core.business.catalog.product.model.attribute.ProductOptionValueDescription;
+import com.salesmanager.core.business.catalog.product.service.ProductService;
+import com.salesmanager.core.business.catalog.product.service.attribute.ProductAttributeService;
+import com.salesmanager.core.business.catalog.product.service.attribute.ProductOptionService;
+import com.salesmanager.core.business.catalog.product.service.attribute.ProductOptionValueService;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.utils.ProductPriceUtils;
+import com.salesmanager.core.utils.ajax.AjaxPageableResponse;
+import com.salesmanager.core.utils.ajax.AjaxResponse;
+import com.salesmanager.web.admin.entity.web.Menu;
+import com.salesmanager.web.constants.Constants;
+import com.salesmanager.web.utils.LabelUtils;
+
+@Controller
+public class ProductAttributeController {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(ProductAttributeController.class);
+
+ private final static String TEXT_OPTION = "text";
+
+ @Inject
+ private ProductAttributeService productAttributeService;
+
+ @Inject
+ private ProductService productService;
+
+ @Inject
+ private ProductPriceUtils priceUtil;
+
+ @Inject
+ ProductOptionService productOptionService;
+
+ @Inject
+ ProductOptionValueService productOptionValueService;
+
+ @Inject
+ LabelUtils messages;
+
+
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/products/attributes/list.html", method=RequestMethod.GET)
+ public String displayProductAttributes(@RequestParam("id") long productId, Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+
+ setMenu(model,request);
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ Product product = productService.getById(productId);
+
+ if(product==null) {
+ return "redirect:/admin/products/products.html";
+ }
+
+ if(product.getMerchantStore().getId().intValue()!=store.getId().intValue()) {
+ return "redirect:/admin/products/products.html";
+ }
+
+ model.addAttribute("product",product);
+ return "admin-products-attributes";
+
+ }
+
+
+
+ @SuppressWarnings({ "rawtypes", "unchecked" })
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/products/attributes/page.html", method=RequestMethod.POST, produces="application/json;charset=UTF-8")
+ public @ResponseBody String pageAttributes(HttpServletRequest request, HttpServletResponse response) {
+
+ //String attribute = request.getParameter("attribute");
+ String sProductId = request.getParameter("productId");
+
+
+ AjaxResponse resp = new AjaxResponse();
+
+ Long productId;
+ Product product = null;
+
+ try {
+ productId = Long.parseLong(sProductId);
+ } catch (Exception e) {
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorString("Product id is not valid");
+ String returnString = resp.toJSONString();
+ return returnString;
+ }
+
+
+ try {
+
+
+ product = productService.getById(productId);
+
+
+
+ Language language = (Language)request.getAttribute("LANGUAGE");
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ //List<ProductAttribute> attributes = productAttributeService.getByProductId(store, product, language);
+
+ for(ProductAttribute attr : product.getAttributes()) {
+
+ Map entry = new HashMap();
+ entry.put("attributeId", attr.getId());
+
+ List<ProductOptionDescription> optionsDescriptions = attr.getProductOption().getDescriptionsSettoList();
+ ProductOptionDescription optionDescription = attr.getProductOption().getDescriptionsSettoList().get(0);
+ for(ProductOptionDescription desc : optionsDescriptions) {
+ if(desc.getLanguage().getId().intValue()==language.getId().intValue()) {
+ optionDescription = desc;
+ }
+ }
+
+ List<ProductOptionValueDescription> optionValuesDescriptions = attr.getProductOptionValue().getDescriptionsSettoList();
+ ProductOptionValueDescription optionValueDescription = attr.getProductOptionValue().getDescriptionsSettoList().get(0);
+ for(ProductOptionValueDescription desc : optionValuesDescriptions) {
+ if(desc.getLanguage().getId().intValue()==language.getId().intValue()) {
+ optionValueDescription = desc;
+ }
+ }
+ entry.put("attribute", optionDescription.getName());
+ entry.put("display", attr.getAttributeDisplayOnly());
+ entry.put("value", optionValueDescription.getName());
+ entry.put("order", attr.getProductOptionSortOrder());
+ entry.put("price", priceUtil.getAdminFormatedAmountWithCurrency(store,attr.getProductAttributePrice()));
+
+ resp.addDataEntry(entry);
+
+
+
+ }
+
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_SUCCESS);
+
+ } catch (Exception e) {
+ LOGGER.error("Error while paging products", e);
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorMessage(e);
+ }
+
+ String returnString = resp.toJSONString();
+ return returnString;
+
+
+ }
+
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/products/attributes/editAttribute.html", method=RequestMethod.GET)
+ public String displayAttributeEdit(@RequestParam("productId") Long productId, @RequestParam("id") Long id, Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+ return displayAttribute(productId, id,model,request,response);
+
+ }
+
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/products/attribute/createAttribute.html", method=RequestMethod.GET)
+ public String displayAttributeCreate(@RequestParam("productId") Long productId, Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+ return displayAttribute(productId, null,model,request,response);
+
+ }
+
+ private String displayAttribute(Long productId, Long id, Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+
+ //display menu
+ setMenu(model,request);
+
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+ Language language = (Language)request.getAttribute("LANGUAGE");
+
+ //get product
+ Product product = productService.getById(productId);
+ if(product.getMerchantStore().getId().intValue()!=store.getId().intValue()) {
+ return "redirect:/admin/products/products.html";
+ }
+
+ List<Language> languages = store.getLanguages();
+
+ ProductAttribute attribute = null;
+
+ //get Options
+ List<ProductOption> options = productOptionService.listByStore(store, language);
+ //get OptionsValues
+ List<ProductOptionValue> optionsValues = productOptionValueService.listByStoreNoReadOnly(store, language);
+
+ if(id!=null && id.intValue()!=0) {//edit mode
+
+ attribute = productAttributeService.getById(id);
+ attribute.setAttributePrice(priceUtil.getAdminFormatedAmount(store, attribute.getProductAttributePrice()));
+ attribute.setAttributeAdditionalWeight(String.valueOf(attribute.getProductAttributeWeight().intValue()));
+ attribute.setAttributeSortOrder(String.valueOf(attribute.getProductOptionSortOrder()));
+
+ } else {
+
+ attribute = new ProductAttribute();
+ attribute.setProduct(product);
+ ProductOptionValue value = new ProductOptionValue();
+ Set<ProductOptionValueDescription> descriptions = new HashSet<ProductOptionValueDescription>();
+ for(Language l : languages) {
+
+ ProductOptionValueDescription desc = new ProductOptionValueDescription();
+ desc.setLanguage(l);
+ descriptions.add(desc);
+
+
+ }
+
+ value.setDescriptions(descriptions);
+ attribute.setProductOptionValue(value);
+ }
+
+ model.addAttribute("optionsValues",optionsValues);
+ model.addAttribute("options",options);
+ model.addAttribute("attribute",attribute);
+ model.addAttribute("product",product);
+ return "admin-products-attribute-details";
+ }
+
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/attributes/attribute/save.html", method=RequestMethod.POST)
+ public String saveAttribute(@Valid @ModelAttribute("attribute") ProductAttribute attribute, BindingResult result, Model model, HttpServletRequest request, Locale locale) throws Exception {
+
+
+ //display menu
+ setMenu(model,request);
+
+ Product product = productService.getById(attribute.getProduct().getId());
+
+ model.addAttribute("product",product);
+
+
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+ Language language = (Language)request.getAttribute("LANGUAGE");
+
+
+ //get Options
+ List<ProductOption> options = productOptionService.listByStore(store, language);
+ //get OptionsValues
+ List<ProductOptionValue> optionsValues = productOptionValueService.listByStoreNoReadOnly(store, language);
+
+ model.addAttribute("optionsValues",optionsValues);
+ model.addAttribute("options",options);
+
+ ProductAttribute dbEntity = null;
+
+ if(attribute.getId() != null && attribute.getId() >0) { //edit entry
+
+ //get from DB
+ dbEntity = productAttributeService.getById(attribute.getId());
+
+ if(dbEntity==null) {
+ return "redirect:/admin/products/attributes/list.html";
+ }
+
+ if(dbEntity.getProductOption().getMerchantStore().getId().intValue()!=store.getId().intValue()) {
+ return "redirect:/admin/products/attributes/list.html";
+ }
+ }
+
+ //validate price
+ BigDecimal submitedPrice = null;
+ try {
+ submitedPrice = priceUtil.getAmount(attribute.getAttributePrice());
+ attribute.setProductAttributePrice(submitedPrice);
+ } catch (Exception e) {
+ ObjectError error = new ObjectError("attributePrice",messages.getMessage("NotEmpty.product.productPrice", locale));
+ result.addError(error);
+ }
+
+ //validate sort order
+ try {
+ Integer sortOrder = Integer.parseInt(attribute.getAttributeSortOrder());
+ attribute.setProductOptionSortOrder(sortOrder);
+ } catch(Exception e) {
+ ObjectError error = new ObjectError("attributeSortOrder",messages.getMessage("message.number.invalid", locale));
+ result.addError(error);
+ }
+
+ //validate weight
+ try {
+ Integer weight = Integer.parseInt(attribute.getAttributeAdditionalWeight());
+ attribute.setProductAttributeWeight(new BigDecimal(weight));
+ } catch(Exception e) {
+ ObjectError error = new ObjectError("attributeAdditionalWeight",messages.getMessage("message.number.invalid", locale));
+ result.addError(error);
+ }
+
+ if(attribute.getProductOption()==null) {
+ ObjectError error = new ObjectError("productOption.id",messages.getMessage("message.productoption.required", locale));
+ result.addError(error);
+ return "admin-products-attribute-details";
+ }
+
+
+ //check type
+ ProductOption option = attribute.getProductOption();
+ option = productOptionService.getById(option.getId());
+ attribute.setProductOption(option);
+
+ if(option.getProductOptionType().equals(TEXT_OPTION)) {
+
+ if(dbEntity!=null && dbEntity.getProductOption().getProductOptionType().equals(TEXT_OPTION)) {//bcz it is overwrited by hidden product option value list
+ if(dbEntity.getProductOptionValue()!=null) {
+ ProductOptionValue optVal = dbEntity.getProductOptionValue();
+ List<ProductOptionValueDescription> descriptions = attribute.getProductOptionValue().getDescriptionsList();
+ Set<ProductOptionValueDescription> descriptionsSet = new HashSet<ProductOptionValueDescription>();
+ for(ProductOptionValueDescription description : descriptions) {
+ description.setProductOptionValue(optVal);
+ description.setName(description.getDescription().length()<15 ? description.getDescription() : description.getDescription().substring(0,15));
+ descriptionsSet.add(description);
+ }
+ optVal.setDescriptions(descriptionsSet);
+ optVal.setProductOptionDisplayOnly(true);
+ productOptionValueService.saveOrUpdate(optVal);
+ attribute.setProductOptionValue(optVal);
+ }
+ } else {//create a new value
+
+ //create new option value
+ List<ProductOptionValueDescription> descriptions = attribute.getProductOptionValue().getDescriptionsList();
+ Set<ProductOptionValueDescription> newDescriptions = new HashSet<ProductOptionValueDescription>();
+ ProductOptionValue newValue = new ProductOptionValue();
+ for(ProductOptionValueDescription description : descriptions) {
+ ProductOptionValueDescription optionValueDescription = new ProductOptionValueDescription();
+ optionValueDescription.setAuditSection(description.getAuditSection());
+ optionValueDescription.setLanguage(description.getLanguage());
+ optionValueDescription.setName(description.getDescription().length()<15 ? description.getDescription() : description.getDescription().substring(0,15));
+ optionValueDescription.setLanguage(description.getLanguage());
+ optionValueDescription.setDescription(description.getDescription());
+ optionValueDescription.setProductOptionValue(newValue);
+ newDescriptions.add(optionValueDescription);
+ }
+
+ //code generation
+ String code = RandomStringUtils.randomAlphanumeric(10).toUpperCase();
+ newValue.setCode(code);
+ newValue.setMerchantStore(store);
+ newValue.setProductOptionValueSortOrder(attribute.getProductOptionValue().getProductOptionValueSortOrder());
+ newValue.setDescriptions(newDescriptions);
+ newValue.setProductOptionDisplayOnly(true);
+ productOptionValueService.save(newValue);
+ attribute.setProductOptionValue(newValue);
+ attribute.setAttributeDisplayOnly(true);
+
+ }
+
+ }
+
+
+
+ if(attribute.getProductOptionValue().getId()==null) {
+ ObjectError error = new ObjectError("productOptionValue.id",messages.getMessage("message.productoptionvalue.required", locale));
+ result.addError(error);
+ }
+
+ model.addAttribute("attribute",attribute);
+
+
+ if (result.hasErrors()) {
+ return "admin-products-attribute-details";
+ }
+
+ productAttributeService.saveOrUpdate(attribute);
+
+ model.addAttribute("success","success");
+ return "admin-products-attribute-details";
+ }
+
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/attributes/attribute/remove.html", method=RequestMethod.POST, produces="application/json")
+ public @ResponseBody String deleteProductPrice(HttpServletRequest request, HttpServletResponse response, Locale locale) {
+ String sAttributeid = request.getParameter("attributeId");
+
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+ AjaxResponse resp = new AjaxResponse();
+
+
+ try {
+
+ Long attributeId = Long.parseLong(sAttributeid);
+ ProductAttribute attribute = productAttributeService.getById(attributeId);
+
+
+ if(attribute==null || attribute.getProduct().getMerchantStore().getId().intValue()!=store.getId()) {
+
+ resp.setStatusMessage(messages.getMessage("message.unauthorized", locale));
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ return resp.toJSONString();
+ }
+
+
+ productAttributeService.delete(attribute);
+
+
+ resp.setStatus(AjaxResponse.RESPONSE_OPERATION_COMPLETED);
+
+
+
+ } catch (Exception e) {
+ LOGGER.error("Error while deleting product price", e);
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorMessage(e);
+ }
+
+ String returnString = resp.toJSONString();
+
+ return returnString;
+ }
+
+
+ @SuppressWarnings({ "rawtypes", "unchecked" })
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/products/attributes/getAttributeType.html", method=RequestMethod.POST, produces="application/json")
+ public @ResponseBody String checkAttributeType(HttpServletRequest request, HttpServletResponse response, Locale locale) {
+
+ String sOptionId = request.getParameter("optionId");
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+
+
+ AjaxResponse resp = new AjaxResponse();
+
+ Long prodoptionId;
+ ProductOption productOption = null;
+
+ try {
+ prodoptionId = Long.parseLong(sOptionId);
+ } catch (Exception e) {
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorString("Product Option id is not valid");
+ String returnString = resp.toJSONString();
+ return returnString;
+ }
+
+
+ try {
+
+
+ productOption = productOptionService.getById(prodoptionId);
+
+ if(productOption==null) {
+ resp.setStatusMessage(messages.getMessage("message.unauthorized", locale));
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ return resp.toJSONString();
+ }
+
+ if(productOption.getMerchantStore().getId().intValue()!=store.getId().intValue()) {
+ resp.setStatusMessage(messages.getMessage("message.unauthorized", locale));
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ return resp.toJSONString();
+ }
+
+
+
+
+ Map entry = new HashMap();
+
+
+
+ entry.put("type", productOption.getProductOptionType());
+ resp.addDataEntry(entry);
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_SUCCESS);
+
+ } catch (Exception e) {
+ LOGGER.error("Error while paging products", e);
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorMessage(e);
+ }
+
+ String returnString = resp.toJSONString();
+ return returnString;
+
+ }
+
+
+
+ private void setMenu(Model model, HttpServletRequest request) throws Exception {
+
+ //display menu
+ Map<String,String> activeMenus = new HashMap<String,String>();
+ activeMenus.put("catalogue", "catalogue");
+ activeMenus.put("catalogue-products", "catalogue-products");
+
+ @SuppressWarnings("unchecked")
+ Map<String, Menu> menus = (Map<String, Menu>)request.getAttribute("MENUMAP");
+
+ Menu currentMenu = (Menu)menus.get("catalogue");
+ model.addAttribute("currentMenu",currentMenu);
+ model.addAttribute("activeMenus",activeMenus);
+ //
+
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ProductImagesController.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ProductImagesController.java
new file mode 100644
index 0000000..eae9139
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ProductImagesController.java
@@ -0,0 +1,494 @@
+package com.salesmanager.web.admin.controller.products;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.Set;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
+
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.validation.BindingResult;
+import org.springframework.validation.FieldError;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.multipart.MultipartFile;
+
+import com.salesmanager.core.business.catalog.product.model.Product;
+import com.salesmanager.core.business.catalog.product.model.image.ProductImage;
+import com.salesmanager.core.business.catalog.product.service.ProductService;
+import com.salesmanager.core.business.catalog.product.service.image.ProductImageService;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.utils.ajax.AjaxPageableResponse;
+import com.salesmanager.core.utils.ajax.AjaxResponse;
+import com.salesmanager.shop.admin.controller.ControllerConstants;
+import com.salesmanager.web.admin.entity.content.ProductImages;
+import com.salesmanager.web.admin.entity.web.Menu;
+import com.salesmanager.web.constants.Constants;
+import com.salesmanager.web.utils.ImageFilePath;
+import com.salesmanager.web.utils.LabelUtils;
+
+@Controller
+public class ProductImagesController {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(ProductImagesController.class);
+
+
+
+ @Inject
+ private ProductService productService;
+
+
+ @Inject
+ private ProductImageService productImageService;
+
+ @Inject
+ private LabelUtils messages;
+
+ @Inject
+ @Qualifier("img")
+ private ImageFilePath imageUtils;
+
+
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/products/images/list.html", method=RequestMethod.GET)
+ public String displayProductImages(@RequestParam("id") long productId, Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+
+ setMenu(model,request);
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ Product product = productService.getById(productId);
+
+ if(product==null) {
+ return "redirect:/admin/products/products.html";
+ }
+
+ if(product.getMerchantStore().getId().intValue()!=store.getId().intValue()) {
+ return "redirect:/admin/products/products.html";
+ }
+
+ model.addAttribute("product",product);
+ return ControllerConstants.Tiles.Product.productImages;
+
+ }
+
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/products/images/url/list.html", method=RequestMethod.GET)
+ public String displayProductImagesUrl(@RequestParam("id") long productId, Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+
+ setMenu(model,request);
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ Product product = productService.getById(productId);
+
+ if(product==null) {
+ return "redirect:/admin/products/products.html";
+ }
+
+ if(product.getMerchantStore().getId().intValue()!=store.getId().intValue()) {
+ return "redirect:/admin/products/products.html";
+ }
+
+ Map< String, String > mediaTypes = new HashMap<String, String>();
+ mediaTypes.put("0", "IMAGE");
+ mediaTypes.put("1", "VIDEO");
+
+ ProductImage productImage = new ProductImage();
+
+ model.addAttribute("productImage", productImage);
+ model.addAttribute("product",product);
+ model.addAttribute("mediaTypes",mediaTypes);
+ return ControllerConstants.Tiles.Product.productImagesUrl;
+
+ }
+
+
+
+ @SuppressWarnings({ "rawtypes", "unchecked" })
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/products/images/page.html", method=RequestMethod.POST, produces="application/json;text/plain;charset=UTF-8")
+ public @ResponseBody String pageProductImages(HttpServletRequest request, HttpServletResponse response) {
+
+ String sProductId = request.getParameter("productId");
+
+
+ AjaxResponse resp = new AjaxResponse();
+
+ Long productId;
+ Product product = null;
+
+ try {
+ productId = Long.parseLong(sProductId);
+ } catch (Exception e) {
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorString("Product id is not valid");
+ String returnString = resp.toJSONString();
+ return returnString;
+ }
+
+
+ try {
+
+
+ product = productService.getById(productId);
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ if(product.getMerchantStore().getId().intValue()!=store.getId().intValue()) {
+ return "redirect:/admin/products/products.html";
+ }
+
+ Set<ProductImage> images = product.getImages();
+
+ if(images!=null) {
+
+ for(ProductImage image : images) {
+
+ String imagePath = imageUtils.buildProductimageUtils(store, product, image.getProductImage());
+
+ Map entry = new HashMap();
+ //entry.put("picture", new StringBuilder().append(request.getContextPath()).append(imagePath).toString());
+ entry.put("picture", imagePath);
+ entry.put("name", image.getProductImage());
+ entry.put("id",image.getId());
+ entry.put("defaultImageCheckmark", image.isDefaultImage() ? "/resources/img/admin/checkmark_checked.png" : "/resources/img/admin/checkmark_unchecked.png");
+
+ resp.addDataEntry(entry);
+
+ }
+ }
+
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_SUCCESS);
+
+ } catch (Exception e) {
+ LOGGER.error("Error while paging products", e);
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorMessage(e);
+ }
+
+ String returnString = resp.toJSONString();
+ return returnString;
+
+
+ }
+
+
+
+ @SuppressWarnings({ "rawtypes", "unchecked" })
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/products/images/url/page.html", method=RequestMethod.POST, produces="application/json")
+ public @ResponseBody String pageProductImagesUrl(HttpServletRequest request, HttpServletResponse response) {
+
+ String sProductId = request.getParameter("productId");
+
+
+ AjaxResponse resp = new AjaxResponse();
+
+ Long productId;
+ Product product = null;
+
+ try {
+ productId = Long.parseLong(sProductId);
+ } catch (Exception e) {
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorString("Product id is not valid");
+ String returnString = resp.toJSONString();
+ return returnString;
+ }
+
+
+ try {
+
+
+ product = productService.getById(productId);
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ if(product.getMerchantStore().getId().intValue()!=store.getId().intValue()) {
+ return "redirect:/admin/products/products.html";
+ }
+
+ Set<ProductImage> images = product.getImages();
+
+ if(images!=null) {
+
+ for(ProductImage image : images) {
+
+ if(!StringUtils.isBlank(image.getProductImageUrl())) {
+
+ Map entry = new HashMap();
+ entry.put("image", image.getProductImageUrl());
+ entry.put("url", image.getProductImageUrl());
+ entry.put("default", image.isDefaultImage());
+ entry.put("id",image.getId());
+
+ resp.addDataEntry(entry);
+
+ }
+ }
+
+ }
+
+
+
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_SUCCESS);
+
+ } catch (Exception e) {
+ LOGGER.error("Error while paging products", e);
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorMessage(e);
+ }
+
+ String returnString = resp.toJSONString();
+ return returnString;
+
+
+ }
+
+
+
+
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/products/images/save.html", method=RequestMethod.POST)
+ public String saveProductImages(@ModelAttribute(value="productImages") @Valid final ProductImages productImages, final BindingResult bindingResult,final Model model, final HttpServletRequest request,Locale locale) throws Exception{
+
+
+ this.setMenu(model, request);
+
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ Product product = productService.getById(productImages.getProductId());
+ model.addAttribute("product",product);
+ if(product==null) {
+ FieldError error = new FieldError("productImages","image",messages.getMessage("message.error", locale));
+ bindingResult.addError(error);
+ return ControllerConstants.Tiles.Product.productImages;
+ }
+
+ if(product.getMerchantStore().getId().intValue()!=store.getId().intValue()) {
+ FieldError error = new FieldError("productImages","image",messages.getMessage("message.error", locale));
+ bindingResult.addError(error);
+ }
+
+ if (bindingResult.hasErrors()) {
+ LOGGER.info( "Found {} Validation errors", bindingResult.getErrorCount());
+ return ControllerConstants.Tiles.Product.productImages;
+
+ }
+
+ final List<ProductImage> contentImagesList=new ArrayList<ProductImage>();
+ if(CollectionUtils.isNotEmpty( productImages.getFile() )){
+ LOGGER.info("Saving {} content images for merchant {}",productImages.getFile().size(),store.getId());
+ for(final MultipartFile multipartFile:productImages.getFile()){
+ if(!multipartFile.isEmpty()){
+ ProductImage productImage = new ProductImage();
+
+ productImage.setImage(multipartFile.getInputStream());
+ productImage.setProductImage(multipartFile.getOriginalFilename() );
+ productImage.setProduct(product);
+ productImage.setDefaultImage(false);//default image is uploaded in the product details
+
+ contentImagesList.add( productImage);
+ }
+ }
+
+ if(CollectionUtils.isNotEmpty( contentImagesList )){
+ productImageService.addProductImages(product, contentImagesList);
+ }
+
+ }
+
+
+ //reload
+ product = productService.getById(productImages.getProductId());
+ model.addAttribute("product",product);
+ model.addAttribute("success","success");
+
+ return ControllerConstants.Tiles.Product.productImages;
+ }
+
+
+
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/products/images/url/save.html", method=RequestMethod.POST)
+ public String saveProductImagesUrl(@ModelAttribute(value="productImage") @Valid final ProductImage productImage, final BindingResult bindingResult,final Model model, final HttpServletRequest request,Locale locale) throws Exception{
+
+
+ this.setMenu(model, request);
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ Map< String, String > mediaTypes = new HashMap<String, String>();
+ mediaTypes.put("0", "IMAGE");
+ mediaTypes.put("1", "VIDEO");
+
+ model.addAttribute("productImage", productImage);
+ model.addAttribute("mediaTypes",mediaTypes);
+
+ Product product = productService.getById(productImage.getId());
+ model.addAttribute("product",product);
+ if(product==null) {
+ FieldError error = new FieldError("productImages","image",messages.getMessage("message.error", locale));
+ bindingResult.addError(error);
+ return ControllerConstants.Tiles.Product.productImagesUrl;
+ }
+
+ if(product.getMerchantStore().getId().intValue()!=store.getId().intValue()) {
+ FieldError error = new FieldError("productImages","image",messages.getMessage("message.error", locale));
+ bindingResult.addError(error);
+ }
+
+ model.addAttribute("product",product);
+
+ if (bindingResult.hasErrors()) {
+ LOGGER.info( "Found {} Validation errors", bindingResult.getErrorCount());
+ return ControllerConstants.Tiles.Product.productImagesUrl;
+ }
+
+ productImage.setProduct(product);
+ productImage.setId(null);
+
+ productImageService.saveOrUpdate(productImage);
+ model.addAttribute("product",product);
+ model.addAttribute("success","success");
+
+ return ControllerConstants.Tiles.Product.productImagesUrl;
+ }
+
+
+
+
+
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/products/images/remove.html", method=RequestMethod.POST, produces="application/json")
+ public @ResponseBody String deleteImage(HttpServletRequest request, HttpServletResponse response, Locale locale) {
+ String sImageId = request.getParameter("id");
+
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+ AjaxResponse resp = new AjaxResponse();
+
+
+ try {
+
+
+
+
+ Long imageId = Long.parseLong(sImageId);
+
+
+ ProductImage productImage = productImageService.getById(imageId);
+ if(productImage==null) {
+ resp.setStatusMessage(messages.getMessage("message.unauthorized", locale));
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ return resp.toJSONString();
+ }
+
+ if(productImage.getProduct().getMerchantStore().getId().intValue()!=store.getId().intValue()) {
+ resp.setStatusMessage(messages.getMessage("message.unauthorized", locale));
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ return resp.toJSONString();
+ }
+
+ productImageService.removeProductImage(productImage);
+
+ resp.setStatus(AjaxResponse.RESPONSE_OPERATION_COMPLETED);
+
+
+
+ } catch (Exception e) {
+ LOGGER.error("Error while deleting product price", e);
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorMessage(e);
+ }
+
+ String returnString = resp.toJSONString();
+
+ return returnString;
+ }
+
+
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/products/images/defaultImage.html", method=RequestMethod.POST, produces="application/json")
+ public @ResponseBody String setDefaultImage(final HttpServletRequest request,
+ final HttpServletResponse response,
+ final Locale locale) {
+ final String sImageId = request.getParameter("id");
+ final MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+ final AjaxResponse resp = new AjaxResponse();
+
+ try {
+ final Long imageId = Long.parseLong(sImageId);
+ final ProductImage productImage = productImageService.getById(imageId);
+
+ if (productImage == null) {
+ resp.setStatusMessage(messages.getMessage("message.unauthorized", locale));
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ return resp.toJSONString();
+ }
+
+ if (productImage.getProduct().getMerchantStore().getId().intValue() != store.getId().intValue()) {
+ resp.setStatusMessage(messages.getMessage("message.unauthorized", locale));
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ return resp.toJSONString();
+ }
+
+ productImage.setDefaultImage(true);
+ productImageService.saveOrUpdate(productImage);
+
+ final Set<ProductImage> images = productService.getById(productImage.getProduct().getId()).getImages();
+ for (final ProductImage image : images) {
+ if (image.getId() != productImage.getId()) {
+ image.setDefaultImage(false);
+ productImageService.saveOrUpdate(image);
+ }
+ }
+
+ resp.setStatus(AjaxResponse.RESPONSE_OPERATION_COMPLETED);
+ } catch (final Exception e) {
+ LOGGER.error("Error while set default image", e);
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorMessage(e);
+ }
+
+ final String returnString = resp.toJSONString();
+ return returnString;
+ }
+
+
+ private void setMenu(Model model, HttpServletRequest request) throws Exception {
+
+ //display menu
+ Map<String,String> activeMenus = new HashMap<String,String>();
+ activeMenus.put("catalogue", "catalogue");
+ activeMenus.put("catalogue-products", "catalogue-products");
+
+ @SuppressWarnings("unchecked")
+ Map<String, Menu> menus = (Map<String, Menu>)request.getAttribute("MENUMAP");
+
+ Menu currentMenu = (Menu)menus.get("catalogue");
+ model.addAttribute("currentMenu",currentMenu);
+ model.addAttribute("activeMenus",activeMenus);
+ //
+
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ProductKeywordsController.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ProductKeywordsController.java
new file mode 100644
index 0000000..46317a1
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ProductKeywordsController.java
@@ -0,0 +1,352 @@
+package com.salesmanager.web.admin.controller.products;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.Set;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
+
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.validation.BindingResult;
+import org.springframework.validation.FieldError;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import com.salesmanager.core.business.catalog.product.model.Product;
+import com.salesmanager.core.business.catalog.product.model.description.ProductDescription;
+import com.salesmanager.core.business.catalog.product.service.ProductService;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.utils.ajax.AjaxPageableResponse;
+import com.salesmanager.core.utils.ajax.AjaxResponse;
+import com.salesmanager.shop.admin.controller.ControllerConstants;
+import com.salesmanager.web.admin.entity.catalog.Keyword;
+import com.salesmanager.web.admin.entity.web.Menu;
+import com.salesmanager.web.constants.Constants;
+import com.salesmanager.web.utils.LabelUtils;
+
+@Controller
+public class ProductKeywordsController {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(ProductKeywordsController.class);
+
+ @Inject
+ private ProductService productService;
+
+ @Inject
+ LabelUtils messages;
+
+
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value={"/admin/products/product/keywords.html"}, method=RequestMethod.GET)
+ public String displayKeywords(@RequestParam("id") long productId, Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+ this.setMenu(model, request);
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ Product product = productService.getById(productId);
+
+ if(product==null || product.getMerchantStore().getId().intValue()!=store.getId().intValue()) {
+ return "redirect:/admin/products/products.html";
+ }
+
+ model.addAttribute("store", store);
+ model.addAttribute("product", product);
+ model.addAttribute("productKeyword", new Keyword());
+
+ return ControllerConstants.Tiles.Product.productKeywords;
+
+ }
+
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/products/product/addKeyword.html", method=RequestMethod.POST)
+ public String addKeyword(@Valid @ModelAttribute("productKeyword") Keyword keyword, final BindingResult bindingResult,final Model model, final HttpServletRequest request, Locale locale) throws Exception{
+ this.setMenu(model, request);
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+
+ Product product = productService.getById(keyword.getProductId());
+
+ model.addAttribute("store", store);
+ model.addAttribute("product", product);
+ model.addAttribute("productKeyword", new Keyword());
+
+ if(product==null || product.getMerchantStore().getId().intValue()!=store.getId().intValue()) {
+ return "redirect:/admin/products/products.html";
+ }
+
+ Set<ProductDescription> descriptions = product.getDescriptions();
+ ProductDescription productDescription = null;
+ for(ProductDescription description : descriptions) {
+
+ if(description.getLanguage().getCode().equals(keyword.getLanguageCode())) {
+ productDescription = description;
+ break;
+ }
+
+ }
+
+ if(productDescription==null) {
+ FieldError error = new FieldError("keyword","keyword",messages.getMessage("message.product.language", locale));
+ bindingResult.addError(error);
+ return ControllerConstants.Tiles.Product.productKeywords;
+ }
+
+
+ String keywords = productDescription.getMetatagKeywords();
+ List<String> keyWordsList = null;
+ if(!StringUtils.isBlank(keywords)) {
+ String[] splits = keywords.split(",");
+ keyWordsList = new ArrayList(Arrays.asList(splits));
+ }
+
+ if(keyWordsList==null) {
+ keyWordsList = new ArrayList<String>();
+ }
+ keyWordsList.add(keyword.getKeyword());
+
+ StringBuilder kwString = new StringBuilder();
+ for(String s : keyWordsList) {
+ kwString.append(s).append(",");
+ }
+
+ productDescription.setMetatagKeywords(kwString.toString());
+ Set<ProductDescription> updatedDescriptions = new HashSet<ProductDescription>();
+ for(ProductDescription description : descriptions) {
+
+ if(!description.getLanguage().getCode().equals(keyword.getLanguageCode())) {
+ updatedDescriptions.add(description);
+ }
+ }
+
+ updatedDescriptions.add(productDescription);
+ product.setDescriptions(updatedDescriptions);
+
+ productService.saveOrUpdate(product);
+ model.addAttribute("success","success");
+
+
+ return ControllerConstants.Tiles.Product.productKeywords;
+ }
+
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/products/product/removeKeyword.html", method=RequestMethod.POST, produces="application/json")
+ public @ResponseBody String removeKeyword(@RequestParam("id") long productId, HttpServletRequest request, HttpServletResponse response, Locale locale) {
+
+
+ String code = request.getParameter("code");
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ AjaxResponse resp = new AjaxResponse();
+
+
+ try {
+
+ //parse code i,lang (0,en)
+ String ids[] = code.split(",");
+
+ String languageCode = ids[1];
+
+ int index = Integer.parseInt(ids[0]);
+
+ Product product = productService.getById(productId);
+
+
+ if(product==null) {
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorString("Product id is not valid");
+ String returnString = resp.toJSONString();
+ return returnString;
+ }
+
+ if(product.getMerchantStore().getId().intValue()!=store.getId().intValue()) {
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorString("Product id is not valid");
+ String returnString = resp.toJSONString();
+ return returnString;
+ }
+
+ Set<ProductDescription> descriptions = product.getDescriptions();
+ Set<ProductDescription> editedDescriptions = new HashSet<ProductDescription>();
+ for(ProductDescription description : descriptions) {
+
+ Language lang = description.getLanguage();
+ if(!lang.getCode().equals(languageCode)){
+ editedDescriptions.add(description);
+ continue;
+ }
+
+ List<String> keyWordsList = new ArrayList<String>();
+
+
+ String keywords = description.getMetatagKeywords();
+ if(!StringUtils.isBlank(keywords)) {
+ String splitKeywords[] = keywords.split(",");
+ for(int i = 0; i < splitKeywords.length; i++) {
+
+ if(i!=index) {
+ keyWordsList.add(splitKeywords[i]);
+ }
+
+
+ }
+ }
+
+
+
+
+ StringBuilder kwString = new StringBuilder();
+ for(String s : keyWordsList) {
+ kwString.append(s).append(",");
+ }
+
+ description.setMetatagKeywords(kwString.toString());
+ editedDescriptions.add(description);
+
+ }
+
+ product.setDescriptions(editedDescriptions);
+ productService.saveOrUpdate(product);
+ resp.setStatus(AjaxResponse.RESPONSE_OPERATION_COMPLETED);
+
+ } catch (Exception e) {
+ LOGGER.error("Error while deleting product", e);
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorMessage(e);
+ }
+
+ String returnString = resp.toJSONString();
+
+ return returnString;
+ }
+
+
+ @SuppressWarnings("unchecked")
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/products/product/keywords/paging.html", method=RequestMethod.POST, produces="application/json;charset=UTF-8")
+ public @ResponseBody String pageKeywords(HttpServletRequest request, HttpServletResponse response) {
+
+ String sProductId = request.getParameter("id");
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ Language language = (Language)request.getAttribute("LANGUAGE");
+
+
+ AjaxResponse resp = new AjaxResponse();
+
+ Long productId;
+ Product product = null;
+
+ try {
+ productId = Long.parseLong(sProductId);
+ } catch (Exception e) {
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorString("Product id is not valid");
+ String returnString = resp.toJSONString();
+ return returnString;
+ }
+
+
+ try {
+
+ product = productService.getById(productId);
+
+
+ if(product==null) {
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorString("Product id is not valid");
+ String returnString = resp.toJSONString();
+ return returnString;
+ }
+
+ if(product.getMerchantStore().getId().intValue()!=store.getId().intValue()) {
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorString("Product id is not valid");
+ String returnString = resp.toJSONString();
+ return returnString;
+ }
+
+
+ @SuppressWarnings("rawtypes")
+
+
+ Set<ProductDescription> descriptions = product.getDescriptions();
+
+ for(ProductDescription description : descriptions) {
+
+
+ Language lang = description.getLanguage();
+
+
+ String keywords = description.getMetatagKeywords();
+ if(!StringUtils.isBlank(keywords)) {
+
+ String splitKeywords[] = keywords.split(",");
+ for(int i = 0; i < splitKeywords.length; i++) {
+ Map entry = new HashMap();
+ entry.put("language", lang.getCode());
+ String keyword = splitKeywords[i];
+ StringBuilder code = new StringBuilder();
+ code.append(i).append(",").append(lang.getCode());
+
+ entry.put("code", code.toString());
+ entry.put("keyword", keyword);
+ resp.addDataEntry(entry);
+
+
+ }
+
+ }
+
+ }
+
+
+
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_SUCCESS);
+
+ } catch (Exception e) {
+ LOGGER.error("Error while paging products", e);
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorMessage(e);
+ }
+
+ String returnString = resp.toJSONString();
+ return returnString;
+ }
+
+
+
+ private void setMenu(Model model, HttpServletRequest request) throws Exception {
+
+ //display menu
+ Map<String,String> activeMenus = new HashMap<String,String>();
+ activeMenus.put("catalogue", "catalogue");
+ activeMenus.put("catalogue-products", "catalogue-products");
+
+ @SuppressWarnings("unchecked")
+ Map<String, Menu> menus = (Map<String, Menu>)request.getAttribute("MENUMAP");
+
+ Menu currentMenu = (Menu)menus.get("catalogue");
+ model.addAttribute("currentMenu",currentMenu);
+ model.addAttribute("activeMenus",activeMenus);
+ //
+
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ProductPriceController.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ProductPriceController.java
new file mode 100644
index 0000000..dee0a7f
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ProductPriceController.java
@@ -0,0 +1,510 @@
+package com.salesmanager.web.admin.controller.products;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.Set;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
+
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.validation.BindingResult;
+import org.springframework.validation.ObjectError;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import com.salesmanager.core.business.catalog.product.model.Product;
+import com.salesmanager.core.business.catalog.product.model.availability.ProductAvailability;
+import com.salesmanager.core.business.catalog.product.model.price.ProductPrice;
+import com.salesmanager.core.business.catalog.product.model.price.ProductPriceDescription;
+import com.salesmanager.core.business.catalog.product.model.price.ProductPriceType;
+import com.salesmanager.core.business.catalog.product.service.ProductService;
+import com.salesmanager.core.business.catalog.product.service.price.ProductPriceService;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.utils.ProductPriceUtils;
+import com.salesmanager.core.utils.ajax.AjaxPageableResponse;
+import com.salesmanager.core.utils.ajax.AjaxResponse;
+import com.salesmanager.shop.admin.controller.ControllerConstants;
+import com.salesmanager.web.admin.entity.web.Menu;
+import com.salesmanager.web.constants.Constants;
+import com.salesmanager.web.utils.DateUtil;
+import com.salesmanager.web.utils.LabelUtils;
+
+@Controller
+public class ProductPriceController {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(ProductPriceController.class);
+
+ @Inject
+ private ProductService productService;
+
+ @Inject
+ private ProductPriceService productPriceService;
+
+ @Inject
+ private ProductPriceUtils priceUtil;
+
+ @Inject
+ LabelUtils messages;
+
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/products/prices.html", method=RequestMethod.GET)
+ public String getProductPrices(@RequestParam("id") long productId,Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+ setMenu(model,request);
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ //get the product and validate it belongs to the current merchant
+ Product product = productService.getById(productId);
+
+ if(product==null) {
+ return "redirect:/admin/products/products.html";
+ }
+
+ if(product.getMerchantStore().getId().intValue()!=store.getId().intValue()) {
+ return "redirect:/admin/products/products.html";
+ }
+
+ ProductAvailability productAvailability = null;
+ for(ProductAvailability availability : product.getAvailabilities()) {
+ if(availability.getRegion().equals(com.salesmanager.core.constants.Constants.ALL_REGIONS)) {
+ productAvailability = availability;
+ }
+ }
+
+ model.addAttribute("product",product);
+ model.addAttribute("availability",productAvailability);
+
+ return ControllerConstants.Tiles.Product.productPrices;
+
+ }
+
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/products/prices/paging.html", method=RequestMethod.POST, produces="application/json;charset=UTF-8")
+ public @ResponseBody String pagePrices(HttpServletRequest request, HttpServletResponse response) {
+
+ String sProductId = request.getParameter("productId");
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ Language language = (Language)request.getAttribute("LANGUAGE");
+
+
+ AjaxResponse resp = new AjaxResponse();
+
+ Long productId;
+ Product product = null;
+
+ try {
+ productId = Long.parseLong(sProductId);
+ } catch (Exception e) {
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorString("Product id is not valid");
+ String returnString = resp.toJSONString();
+ return returnString;
+ }
+
+
+ try {
+
+ product = productService.getById(productId);
+
+
+ if(product==null) {
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorString("Product id is not valid");
+ String returnString = resp.toJSONString();
+ return returnString;
+ }
+
+ if(product.getMerchantStore().getId().intValue()!=store.getId().intValue()) {
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorString("Product id is not valid");
+ String returnString = resp.toJSONString();
+ return returnString;
+ }
+
+ ProductAvailability defaultAvailability = null;
+
+ Set<ProductAvailability> availabilities = product.getAvailabilities();
+
+ //get default availability
+ for(ProductAvailability availability : availabilities) {
+ if(availability.getRegion().equals(com.salesmanager.core.constants.Constants.ALL_REGIONS)) {
+ defaultAvailability = availability;
+ break;
+ }
+ }
+
+ if(defaultAvailability==null) {
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorString("Product id is not valid");
+ String returnString = resp.toJSONString();
+ return returnString;
+ }
+
+ Set<ProductPrice> prices = defaultAvailability.getPrices();
+
+
+ for(ProductPrice price : prices) {
+ Map entry = new HashMap();
+ entry.put("priceId", price.getId());
+
+
+ String priceName = "";
+ Set<ProductPriceDescription> descriptions = price.getDescriptions();
+ if(descriptions!=null) {
+ for(ProductPriceDescription description : descriptions) {
+ if(description.getLanguage().getCode().equals(language.getCode())) {
+ priceName = description.getName();
+ }
+ }
+ }
+
+
+ entry.put("name", priceName);
+ entry.put("price", priceUtil.getAdminFormatedAmountWithCurrency(store,price.getProductPriceAmount()));
+ entry.put("specialPrice", priceUtil.getAdminFormatedAmountWithCurrency(store,price.getProductPriceSpecialAmount()));
+
+ String discount = "";
+ if(priceUtil.hasDiscount(price)) {
+ discount = priceUtil.getAdminFormatedAmountWithCurrency(store,price.getProductPriceAmount());
+ }
+ entry.put("special", discount);
+
+ resp.addDataEntry(entry);
+ }
+
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_SUCCESS);
+
+ } catch (Exception e) {
+ LOGGER.error("Error while paging products", e);
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorMessage(e);
+ }
+
+ String returnString = resp.toJSONString();
+ return returnString;
+ }
+
+
+
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/products/price/edit.html", method=RequestMethod.GET)
+ public String editProductPrice(@RequestParam("id") long productPriceId, @RequestParam("productId") long productId,Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+ Product product = productService.getById(productId);
+
+ if(product==null) {
+ return "redirect:/admin/products/products.html";
+ }
+
+ if(product.getMerchantStore().getId().intValue()!=store.getId().intValue()) {
+ return "redirect:/admin/products/products.html";
+ }
+
+
+ setMenu(model,request);
+ return displayProductPrice(product, productPriceId, model, request, response);
+
+ }
+
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/products/price/create.html", method=RequestMethod.GET)
+ public String displayCreateProductPrice(@RequestParam("productId") long productId,@RequestParam("availabilityId") long avilabilityId, Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+ Product product = productService.getById(productId);
+ if(product==null) {
+ return "redirect:/admin/products/products.html";
+ }
+
+ if(product.getMerchantStore().getId().intValue()!=store.getId().intValue()) {
+ return "redirect:/admin/products/products.html";
+ }
+
+ setMenu(model,request);
+ return displayProductPrice(product, null, model, request, response);
+
+
+
+ }
+
+ private String displayProductPrice(Product product, Long productPriceId, Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ com.salesmanager.web.admin.entity.catalog.ProductPrice pprice = new com.salesmanager.web.admin.entity.catalog.ProductPrice();
+
+ ProductPrice productPrice = null;
+ ProductAvailability productAvailability = null;
+
+ if(productPriceId!=null) {
+
+ Set<ProductAvailability> availabilities = product.getAvailabilities();
+
+ //get default availability
+ for(ProductAvailability availability : availabilities) {
+ if(availability.getRegion().equals(com.salesmanager.core.constants.Constants.ALL_REGIONS)) {//TODO to be updated when multiple regions is implemented
+ productAvailability = availability;
+ Set<ProductPrice> prices = availability.getPrices();
+ for(ProductPrice price : prices) {
+ if(price.getId().longValue()==productPriceId.longValue()) {
+ productPrice = price;
+ if(price.getProductPriceSpecialStartDate()!=null) {
+ pprice.setProductPriceSpecialStartDate(DateUtil.formatDate(price.getProductPriceSpecialStartDate()));
+ }
+ if(price.getProductPriceSpecialEndDate()!=null) {
+ pprice.setProductPriceSpecialEndDate(DateUtil.formatDate(price.getProductPriceSpecialEndDate()));
+ }
+ pprice.setPriceText(priceUtil.getAdminFormatedAmount(store, price.getProductPriceAmount()));
+ if(price.getProductPriceSpecialAmount()!=null) {
+ pprice.setSpecialPriceText(priceUtil.getAdminFormatedAmount(store, price.getProductPriceSpecialAmount()));
+ }
+ break;
+ }
+ }
+ }
+ }
+
+ }
+
+ if(productPrice==null) {
+ productPrice = new ProductPrice();
+ productPrice.setProductPriceType(ProductPriceType.ONE_TIME);
+ }
+
+ //descriptions
+ List<Language> languages = store.getLanguages();
+
+ Set<ProductPriceDescription> productPriceDescriptions = productPrice.getDescriptions();
+ List<ProductPriceDescription> descriptions = new ArrayList<ProductPriceDescription>();
+ for(Language l : languages) {
+ ProductPriceDescription productPriceDesc = null;
+ for(ProductPriceDescription desc : productPriceDescriptions) {
+ Language lang = desc.getLanguage();
+ if(lang.getCode().equals(l.getCode())) {
+ productPriceDesc = desc;
+ }
+ }
+
+ if(productPriceDesc==null) {
+ productPriceDesc = new ProductPriceDescription();
+ productPriceDesc.setLanguage(l);
+ productPriceDescriptions.add(productPriceDesc);
+ }
+ descriptions.add(productPriceDesc);
+ }
+
+
+ if(productAvailability==null) {
+ Set<ProductAvailability> availabilities = product.getAvailabilities();
+ for(ProductAvailability availability : availabilities) {
+ if(availability.getRegion().equals(com.salesmanager.core.constants.Constants.ALL_REGIONS)) {//TODO to be updated when multiple regions is implemented
+ productAvailability = availability;
+ break;
+ }
+ }
+ }
+
+ pprice.setDescriptions(descriptions);
+ pprice.setProductAvailability(productAvailability);
+ pprice.setPrice(productPrice);
+ pprice.setProduct(product);
+
+
+ model.addAttribute("product",product);
+ //model.addAttribute("descriptions",descriptions);
+ model.addAttribute("price",pprice);
+ //model.addAttribute("availability",productAvailability);
+
+ return ControllerConstants.Tiles.Product.productPrice;
+ }
+
+
+
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/products/price/save.html", method=RequestMethod.POST)
+ public String saveProductPrice(@Valid @ModelAttribute("price") com.salesmanager.web.admin.entity.catalog.ProductPrice price, BindingResult result, Model model, HttpServletRequest request, Locale locale) throws Exception {
+
+ //dates after save
+
+ setMenu(model,request);
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ Product product = price.getProduct();
+ Product dbProduct = productService.getById(product.getId());
+ if(store.getId().intValue()!=dbProduct.getMerchantStore().getId().intValue()) {
+ return "redirect:/admin/products/products.html";
+ }
+
+ model.addAttribute("product",dbProduct);
+
+ //validate price
+ BigDecimal submitedPrice = null;
+ try {
+ submitedPrice = priceUtil.getAmount(price.getPriceText());
+ } catch (Exception e) {
+ ObjectError error = new ObjectError("productPrice",messages.getMessage("NotEmpty.product.productPrice", locale));
+ result.addError(error);
+ }
+
+ //validate discount price
+ BigDecimal submitedDiscountPrice = null;
+
+ if(!StringUtils.isBlank(price.getSpecialPriceText())) {
+ try {
+ submitedDiscountPrice = priceUtil.getAmount(price.getSpecialPriceText());
+ } catch (Exception e) {
+ ObjectError error = new ObjectError("productSpecialPrice",messages.getMessage("NotEmpty.product.productPrice", locale));
+ result.addError(error);
+ }
+ }
+
+ //validate start date
+ if(!StringUtils.isBlank(price.getProductPriceSpecialStartDate())) {
+ try {
+ Date startDate = DateUtil.getDate(price.getProductPriceSpecialStartDate());
+ price.getPrice().setProductPriceSpecialStartDate(startDate);
+ } catch (Exception e) {
+ ObjectError error = new ObjectError("productPriceSpecialStartDate",messages.getMessage("message.invalid.date", locale));
+ result.addError(error);
+ }
+ }
+
+ if(!StringUtils.isBlank(price.getProductPriceSpecialEndDate())) {
+ try {
+ Date endDate = DateUtil.getDate(price.getProductPriceSpecialEndDate());
+ price.getPrice().setProductPriceSpecialEndDate(endDate);
+ } catch (Exception e) {
+ ObjectError error = new ObjectError("productPriceSpecialEndDate",messages.getMessage("message.invalid.date", locale));
+ result.addError(error);
+ }
+ }
+
+
+ if (result.hasErrors()) {
+ return ControllerConstants.Tiles.Product.productPrice;
+ }
+
+
+ price.getPrice().setProductPriceAmount(submitedPrice);
+ if(!StringUtils.isBlank(price.getSpecialPriceText())) {
+ price.getPrice().setProductPriceSpecialAmount(submitedDiscountPrice);
+ }
+
+ ProductAvailability productAvailability = null;
+
+ Set<ProductAvailability> availabilities = dbProduct.getAvailabilities();
+ for(ProductAvailability availability : availabilities) {
+
+ if(availability.getId().longValue()==price.getProductAvailability().getId().longValue()) {
+ productAvailability = availability;
+ break;
+ }
+
+
+ }
+
+
+
+
+ Set<ProductPriceDescription> descriptions = new HashSet<ProductPriceDescription>();
+ if(price.getDescriptions()!=null && price.getDescriptions().size()>0) {
+
+ for(ProductPriceDescription description : price.getDescriptions()) {
+ description.setProductPrice(price.getPrice());
+ descriptions.add(description);
+ description.setProductPrice(price.getPrice());
+ }
+ }
+
+ price.getPrice().setDescriptions(descriptions);
+ price.getPrice().setProductAvailability(productAvailability);
+
+ productPriceService.saveOrUpdate(price.getPrice());
+ model.addAttribute("success","success");
+
+ return ControllerConstants.Tiles.Product.productPrice;
+
+ }
+
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/products/price/remove.html", method=RequestMethod.POST, produces="application/json")
+ public @ResponseBody String deleteProductPrice(HttpServletRequest request, HttpServletResponse response, Locale locale) {
+ String sPriceid = request.getParameter("priceId");
+
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+ AjaxResponse resp = new AjaxResponse();
+
+
+ try {
+
+ Long priceId = Long.parseLong(sPriceid);
+ ProductPrice price = productPriceService.getById(priceId);
+
+
+ if(price==null || price.getProductAvailability().getProduct().getMerchantStore().getId().intValue()!=store.getId()) {
+
+ resp.setStatusMessage(messages.getMessage("message.unauthorized", locale));
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ return resp.toJSONString();
+ }
+
+ productPriceService.delete(price);
+
+
+ resp.setStatus(AjaxResponse.RESPONSE_OPERATION_COMPLETED);
+
+
+
+ } catch (Exception e) {
+ LOGGER.error("Error while deleting product price", e);
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorMessage(e);
+ }
+
+ String returnString = resp.toJSONString();
+
+ return returnString;
+ }
+
+
+ private void setMenu(Model model, HttpServletRequest request) throws Exception {
+
+ //display menu
+ Map<String,String> activeMenus = new HashMap<String,String>();
+ activeMenus.put("catalogue", "catalogue");
+ activeMenus.put("catalogue-products", "catalogue-products");
+
+ @SuppressWarnings("unchecked")
+ Map<String, Menu> menus = (Map<String, Menu>)request.getAttribute("MENUMAP");
+
+ Menu currentMenu = (Menu)menus.get("catalogue");
+ model.addAttribute("currentMenu",currentMenu);
+ model.addAttribute("activeMenus",activeMenus);
+ //
+
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ProductReviewController.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ProductReviewController.java
new file mode 100644
index 0000000..70631a5
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ProductReviewController.java
@@ -0,0 +1,229 @@
+package com.salesmanager.web.admin.controller.products;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.Set;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.collections.CollectionUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import com.salesmanager.core.business.catalog.product.model.Product;
+import com.salesmanager.core.business.catalog.product.model.review.ProductReview;
+import com.salesmanager.core.business.catalog.product.model.review.ProductReviewDescription;
+import com.salesmanager.core.business.catalog.product.service.ProductService;
+import com.salesmanager.core.business.catalog.product.service.review.ProductReviewService;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.utils.ajax.AjaxPageableResponse;
+import com.salesmanager.core.utils.ajax.AjaxResponse;
+import com.salesmanager.shop.admin.controller.ControllerConstants;
+import com.salesmanager.web.admin.entity.web.Menu;
+import com.salesmanager.web.constants.Constants;
+import com.salesmanager.web.utils.LabelUtils;
+
+@Controller
+public class ProductReviewController {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(ProductReviewController.class);
+
+ @Inject
+ private ProductService productService;
+
+ @Inject
+ private ProductReviewService productReviewService;
+
+ @Inject
+ LabelUtils messages;
+
+
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/products/reviews.html", method=RequestMethod.GET)
+ public String displayProductReviews(@RequestParam("id") long productId,Model model, HttpServletRequest request, HttpServletResponse response, Locale locale) throws Exception {
+
+ setMenu(model, request);
+
+ Language language = (Language)request.getAttribute("LANGUAGE");
+
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+ Product product = productService.getById(productId);
+
+ if(product==null) {
+ return "redirect:/admin/products/products.html";
+ }
+
+ if(product.getMerchantStore().getId().intValue()!=store.getId().intValue()) {
+ return "redirect:/admin/products/products.html";
+ }
+
+
+ model.addAttribute("product", product);
+
+ return ControllerConstants.Tiles.Product.productReviews;
+
+ }
+
+
+ @SuppressWarnings({ "rawtypes", "unchecked" })
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/products/reviews/paging.html", method=RequestMethod.POST, produces="application/json;charset=UTF-8")
+ public @ResponseBody String pageProductReviews(HttpServletRequest request, HttpServletResponse response) {
+
+ String sProductId = request.getParameter("productId");
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+
+ AjaxResponse resp = new AjaxResponse();
+
+ Long productId;
+ Product product = null;
+
+ try {
+ productId = Long.parseLong(sProductId);
+ } catch (Exception e) {
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorString("Product id is not valid");
+ String returnString = resp.toJSONString();
+ return returnString;
+ }
+
+
+ try {
+
+ product = productService.getById(productId);
+
+
+ if(product==null) {
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorString("Product id is not valid");
+ String returnString = resp.toJSONString();
+ return returnString;
+ }
+
+ if(product.getMerchantStore().getId().intValue()!=store.getId().intValue()) {
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorString("Product id is not valid");
+ String returnString = resp.toJSONString();
+ return returnString;
+ }
+
+
+ Language language = (Language)request.getAttribute("LANGUAGE");
+
+
+ List<ProductReview> reviews = productReviewService.getByProduct(product);
+
+
+
+ for(ProductReview review : reviews) {
+ Map entry = new HashMap();
+ entry.put("reviewId", review.getId());
+ entry.put("rating", review.getReviewRating().intValue());
+ Set<ProductReviewDescription> descriptions = review.getDescriptions();
+ String reviewDesc= "";
+ if(!CollectionUtils.isEmpty(descriptions)) {
+ reviewDesc = descriptions.iterator().next().getDescription();
+ }
+ //for(ProductReviewDescription description : descriptions){
+ // if(description.getLanguage().getCode().equals(language.getCode())) {
+ // reviewDesc = description.getDescription();
+ // }
+ //}
+ entry.put("description", reviewDesc);
+ resp.addDataEntry(entry);
+ }
+
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_SUCCESS);
+
+ } catch (Exception e) {
+ LOGGER.error("Error while paging products", e);
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorMessage(e);
+ }
+
+ String returnString = resp.toJSONString();
+ return returnString;
+
+
+ }
+
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/products/reviews/remove.html", method=RequestMethod.POST, produces="application/json")
+ public @ResponseBody String deleteProductReview(HttpServletRequest request, HttpServletResponse response, Locale locale) {
+ String sReviewid = request.getParameter("reviewId");
+
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ AjaxResponse resp = new AjaxResponse();
+
+
+ try {
+
+ Long reviewId = Long.parseLong(sReviewid);
+
+
+ ProductReview review = productReviewService.getById(reviewId);
+
+
+ if(review==null || review.getProduct().getMerchantStore().getId().intValue()!=store.getId()) {
+
+ resp.setStatusMessage(messages.getMessage("message.unauthorized", locale));
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ return resp.toJSONString();
+ }
+
+
+ productReviewService.delete(review);
+
+
+ resp.setStatus(AjaxResponse.RESPONSE_OPERATION_COMPLETED);
+
+
+
+ } catch (Exception e) {
+ LOGGER.error("Error while deleting category", e);
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorMessage(e);
+ }
+
+ String returnString = resp.toJSONString();
+
+ return returnString;
+ }
+
+
+ private void setMenu(Model model, HttpServletRequest request) throws Exception {
+
+ //display menu
+ Map<String,String> activeMenus = new HashMap<String,String>();
+ activeMenus.put("catalogue", "catalogue");
+ activeMenus.put("catalogue-products", "catalogue-products");
+
+ @SuppressWarnings("unchecked")
+ Map<String, Menu> menus = (Map<String, Menu>)request.getAttribute("MENUMAP");
+
+ Menu currentMenu = (Menu)menus.get("catalogue");
+ model.addAttribute("currentMenu",currentMenu);
+ model.addAttribute("activeMenus",activeMenus);
+ //
+
+ }
+
+
+
+}
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
new file mode 100644
index 0000000..d1d8095
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ProductsController.java
@@ -0,0 +1,261 @@
+package com.salesmanager.web.admin.controller.products;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import com.salesmanager.core.business.catalog.category.model.Category;
+import com.salesmanager.core.business.catalog.category.service.CategoryService;
+import com.salesmanager.core.business.catalog.product.model.Product;
+import com.salesmanager.core.business.catalog.product.model.ProductCriteria;
+import com.salesmanager.core.business.catalog.product.model.ProductList;
+import com.salesmanager.core.business.catalog.product.model.description.ProductDescription;
+import com.salesmanager.core.business.catalog.product.service.ProductService;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.utils.ajax.AjaxPageableResponse;
+import com.salesmanager.core.utils.ajax.AjaxResponse;
+import com.salesmanager.web.admin.entity.web.Menu;
+import com.salesmanager.web.constants.Constants;
+import com.salesmanager.web.utils.LabelUtils;
+
+@Controller
+public class ProductsController {
+
+ @Inject
+ CategoryService categoryService;
+
+ @Inject
+ ProductService productService;
+
+ @Inject
+ LabelUtils messages;
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(ProductsController.class);
+
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/products/products.html", method=RequestMethod.GET)
+ public String displayProducts(Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+
+ setMenu(model,request);
+
+ Language language = (Language)request.getAttribute("LANGUAGE");
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ List<Category> categories = categoryService.listByStore(store, language);
+
+ model.addAttribute("categories", categories);
+
+ return "admin-products";
+
+ }
+
+
+
+ @SuppressWarnings({ "rawtypes", "unchecked" })
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/products/paging.html", method=RequestMethod.POST, produces="application/json;charset=UTF-8")
+ public @ResponseBody String pageProducts(HttpServletRequest request, HttpServletResponse response) {
+
+ //TODO what if ROOT
+
+ String categoryId = request.getParameter("categoryId");
+ String sku = request.getParameter("sku");
+ String available = request.getParameter("available");
+ String searchTerm = request.getParameter("searchTerm");
+ String name = request.getParameter("name");
+
+ AjaxPageableResponse resp = new AjaxPageableResponse();
+
+ try {
+
+
+ int startRow = Integer.parseInt(request.getParameter("_startRow"));
+ int endRow = Integer.parseInt(request.getParameter("_endRow"));
+
+ Language language = (Language)request.getAttribute("LANGUAGE");
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ ProductCriteria criteria = new ProductCriteria();
+
+ criteria.setStartIndex(startRow);
+ criteria.setMaxCount(endRow);
+
+
+ if(!StringUtils.isBlank(categoryId) && !categoryId.equals("-1")) {
+
+ //get other filters
+ Long lcategoryId = 0L;
+ try {
+ lcategoryId = Long.parseLong(categoryId);
+ } catch (Exception e) {
+ LOGGER.error("Product page cannot parse categoryId " + categoryId );
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ String returnString = resp.toJSONString();
+ return returnString;
+ }
+
+
+
+ if(lcategoryId>0) {
+
+ Category category = categoryService.getById(lcategoryId);
+
+ if(category==null || category.getMerchantStore().getId()!=store.getId()) {
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ String returnString = resp.toJSONString();
+ return returnString;
+ }
+
+ //get all sub categories
+ StringBuilder lineage = new StringBuilder();
+ lineage.append(category.getLineage()).append(category.getId()).append("/");
+
+ List<Category> categories = categoryService.listByLineage(store, lineage.toString());
+
+ List<Long> categoryIds = new ArrayList<Long>();
+
+ for(Category cat : categories) {
+ categoryIds.add(cat.getId());
+ }
+ categoryIds.add(category.getId());
+ criteria.setCategoryIds(categoryIds);
+
+ }
+
+
+
+
+ }
+
+ if(!StringUtils.isBlank(sku)) {
+ criteria.setCode(sku);
+ }
+
+ if(!StringUtils.isBlank(name)) {
+ criteria.setProductName(name);
+ }
+
+ if(!StringUtils.isBlank(available)) {
+ if(available.equals("true")) {
+ criteria.setAvailable(new Boolean(true));
+ } else {
+ criteria.setAvailable(new Boolean(false));
+ }
+ }
+
+ ProductList productList = productService.listByStore(store, language, criteria);
+ resp.setEndRow(productList.getTotalCount());
+ resp.setStartRow(startRow);
+ List<Product> plist = productList.getProducts();
+
+ if(plist!=null) {
+
+ for(Product product : plist) {
+
+ Map entry = new HashMap();
+ entry.put("productId", product.getId());
+
+ ProductDescription description = product.getDescriptions().iterator().next();
+
+ entry.put("name", description.getName());
+ entry.put("sku", product.getSku());
+ entry.put("available", product.isAvailable());
+ resp.addDataEntry(entry);
+
+
+
+ }
+
+ }
+
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_SUCCESS);
+
+ } catch (Exception e) {
+ LOGGER.error("Error while paging products", e);
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorMessage(e);
+ }
+
+ String returnString = resp.toJSONString();
+ return returnString;
+
+
+ }
+
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/products/remove.html", method=RequestMethod.POST, produces="application/json;charset=UTF-8")
+ public @ResponseBody String deleteProduct(HttpServletRequest request, HttpServletResponse response, Locale locale) {
+ String sid = request.getParameter("productId");
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ AjaxResponse resp = new AjaxResponse();
+
+
+ try {
+
+ Long id = Long.parseLong(sid);
+
+ Product product = productService.getById(id);
+
+ if(product==null || product.getMerchantStore().getId()!=store.getId()) {
+
+ resp.setStatusMessage(messages.getMessage("message.unauthorized", locale));
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+
+ } else {
+
+ productService.delete(product);
+ resp.setStatus(AjaxResponse.RESPONSE_OPERATION_COMPLETED);
+
+ }
+
+
+ } catch (Exception e) {
+ LOGGER.error("Error while deleting product", e);
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorMessage(e);
+ }
+
+ String returnString = resp.toJSONString();
+
+ return returnString;
+ }
+
+
+ private void setMenu(Model model, HttpServletRequest request) throws Exception {
+
+ //display menu
+ Map<String,String> activeMenus = new HashMap<String,String>();
+ activeMenus.put("catalogue", "catalogue");
+ activeMenus.put("catalogue-products", "catalogue-products");
+
+ @SuppressWarnings("unchecked")
+ Map<String, Menu> menus = (Map<String, Menu>)request.getAttribute("MENUMAP");
+
+ Menu currentMenu = (Menu)menus.get("catalogue");
+ model.addAttribute("currentMenu",currentMenu);
+ model.addAttribute("activeMenus",activeMenus);
+ //
+
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/RelatedItemsController.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/RelatedItemsController.java
new file mode 100644
index 0000000..cf94b0f
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/RelatedItemsController.java
@@ -0,0 +1,313 @@
+package com.salesmanager.web.admin.controller.products;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import com.salesmanager.core.business.catalog.category.model.Category;
+import com.salesmanager.core.business.catalog.category.service.CategoryService;
+import com.salesmanager.core.business.catalog.product.model.Product;
+import com.salesmanager.core.business.catalog.product.model.description.ProductDescription;
+import com.salesmanager.core.business.catalog.product.model.relationship.ProductRelationship;
+import com.salesmanager.core.business.catalog.product.model.relationship.ProductRelationshipType;
+import com.salesmanager.core.business.catalog.product.service.ProductService;
+import com.salesmanager.core.business.catalog.product.service.relationship.ProductRelationshipService;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.utils.ajax.AjaxPageableResponse;
+import com.salesmanager.core.utils.ajax.AjaxResponse;
+import com.salesmanager.shop.admin.controller.ControllerConstants;
+import com.salesmanager.web.admin.entity.web.Menu;
+import com.salesmanager.web.constants.Constants;
+
+
+@Controller
+public class RelatedItemsController {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(RelatedItemsController.class);
+
+ @Inject
+ CategoryService categoryService;
+
+ @Inject
+ ProductService productService;
+
+ @Inject
+ ProductRelationshipService productRelationshipService;
+
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/catalogue/related/list.html", method=RequestMethod.GET)
+ public String displayRelatedItems(@RequestParam("id") long productId, Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+
+ setMenu(model,request);
+
+ Language language = (Language)request.getAttribute("LANGUAGE");
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ //get the product and validate it belongs to the current merchant
+ Product product = productService.getById(productId);
+
+ if(product==null) {
+ return "redirect:/admin/products/products.html";
+ }
+
+ if(product.getMerchantStore().getId().intValue()!=store.getId().intValue()) {
+ return "redirect:/admin/products/products.html";
+ }
+
+
+ List<Category> categories = categoryService.listByStore(store,language);
+
+ model.addAttribute("categories", categories);
+ model.addAttribute("product", product);
+ return ControllerConstants.Tiles.Product.relatedItems;
+
+ }
+
+
+ @SuppressWarnings({ "rawtypes", "unchecked" })
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/catalogue/related/paging.html", method=RequestMethod.POST, produces="application/json;charset=UTF-8")
+ public @ResponseBody String pageRelatedItems(HttpServletRequest request, HttpServletResponse response) {
+
+ String sProductId = request.getParameter("productId");
+ AjaxResponse resp = new AjaxResponse();
+
+ try {
+
+
+
+ Long productId = Long.parseLong(sProductId);
+ Product product = productService.getById(productId);
+
+ Language language = (Language)request.getAttribute("LANGUAGE");
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+
+ if(product==null || product.getMerchantStore().getId().intValue()!= store.getId().intValue()) {
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorString("Product id is not valid");
+ String returnString = resp.toJSONString();
+ return returnString;
+ }
+
+
+
+ List<ProductRelationship> relationships = productRelationshipService.getByType(store, product, ProductRelationshipType.RELATED_ITEM, language);
+
+ for(ProductRelationship relationship : relationships) {
+
+ Product relatedProduct = relationship.getRelatedProduct();
+ Map entry = new HashMap();
+ entry.put("relationshipId", relationship.getId());
+ entry.put("productId", relatedProduct.getId());
+
+ ProductDescription description = relatedProduct.getDescriptions().iterator().next();
+ Set<ProductDescription> descriptions = relatedProduct.getDescriptions();
+ for(ProductDescription desc : descriptions) {
+ if(desc.getLanguage().getId().intValue()==language.getId().intValue()) {
+ description = desc;
+ }
+ }
+
+
+ entry.put("name", description.getName());
+ entry.put("sku", relatedProduct.getSku());
+ entry.put("available", relatedProduct.isAvailable());
+ resp.addDataEntry(entry);
+
+ }
+
+
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_SUCCESS);
+
+ } catch (Exception e) {
+ LOGGER.error("Error while paging products", e);
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorMessage(e);
+ }
+
+ String returnString = resp.toJSONString();
+ return returnString;
+
+
+ }
+
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/catalogue/related/addItem.html", method=RequestMethod.POST, produces="application/json")
+ public @ResponseBody String addItem(HttpServletRequest request, HttpServletResponse response) {
+
+ String productId = request.getParameter("productId");
+ String baseProductId = request.getParameter("baseProductId");
+ AjaxResponse resp = new AjaxResponse();
+
+ try {
+
+
+ Long lProductId = Long.parseLong(productId);
+ Long lBaseProductId = Long.parseLong(baseProductId);
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ Product product = productService.getById(lProductId);
+
+ if(product==null) {
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_FAIURE);
+ return resp.toJSONString();
+ }
+
+ if(product.getMerchantStore().getId().intValue()!=store.getId().intValue()) {
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_FAIURE);
+ return resp.toJSONString();
+ }
+
+ Product baseProduct = productService.getById(lBaseProductId);
+
+ if(baseProduct==null) {
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_FAIURE);
+ return resp.toJSONString();
+ }
+
+ if(baseProduct.getMerchantStore().getId().intValue()!=store.getId().intValue()) {
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_FAIURE);
+ return resp.toJSONString();
+ }
+
+
+ ProductRelationship relationship = new ProductRelationship();
+ relationship.setActive(true);
+ relationship.setProduct(baseProduct);
+ relationship.setCode(ProductRelationshipType.RELATED_ITEM.name());
+ relationship.setStore(store);
+ relationship.setRelatedProduct(product);
+
+ productRelationshipService.saveOrUpdate(relationship);
+
+
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_SUCCESS);
+
+ } catch (Exception e) {
+ LOGGER.error("Error while paging products", e);
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorMessage(e);
+ }
+
+ String returnString = resp.toJSONString();
+ return returnString;
+
+ }
+
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping(value="/admin/catalogue/related/removeItem.html", method=RequestMethod.POST, produces="application/json")
+ public @ResponseBody String removeItem(HttpServletRequest request, HttpServletResponse response) {
+
+ String productId = request.getParameter("productId");
+ String baseProductId = request.getParameter("baseProductId");
+ AjaxResponse resp = new AjaxResponse();
+
+ try {
+
+
+ Long lproductId = Long.parseLong(productId);
+ Long lBaseProductId = Long.parseLong(baseProductId);
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ Product product = productService.getById(lproductId);
+
+ if(product==null) {
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_FAIURE);
+ return resp.toJSONString();
+ }
+
+ if(product.getMerchantStore().getId().intValue()!=store.getId().intValue()) {
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_FAIURE);
+ return resp.toJSONString();
+ }
+
+ Product baseProduct = productService.getById(lBaseProductId);
+
+ if(baseProduct==null) {
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_FAIURE);
+ return resp.toJSONString();
+ }
+
+ if(baseProduct.getMerchantStore().getId().intValue()!=store.getId().intValue()) {
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_FAIURE);
+ return resp.toJSONString();
+ }
+
+ ProductRelationship relationship = null;
+ List<ProductRelationship> relationships = productRelationshipService.getByType(store, baseProduct, ProductRelationshipType.RELATED_ITEM);
+
+ for(ProductRelationship r : relationships) {
+ if(r.getRelatedProduct().getId().longValue()==lproductId.longValue()) {
+ relationship = r;
+ break;
+ }
+ }
+
+ if(relationship==null) {
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_FAIURE);
+ return resp.toJSONString();
+ }
+
+ if(relationship.getStore().getId().intValue()!=store.getId().intValue()) {
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_FAIURE);
+ return resp.toJSONString();
+ }
+
+
+
+
+ productRelationshipService.delete(relationship);
+
+
+ resp.setStatus(AjaxPageableResponse.RESPONSE_OPERATION_COMPLETED);
+
+ } catch (Exception e) {
+ LOGGER.error("Error while paging products", e);
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorMessage(e);
+ }
+
+ String returnString = resp.toJSONString();
+ return returnString;
+
+ }
+
+
+ private void setMenu(Model model, HttpServletRequest request) throws Exception {
+
+ //display menu
+ Map<String,String> activeMenus = new HashMap<String,String>();
+ activeMenus.put("catalogue", "catalogue");
+ activeMenus.put("catalogue-products", "catalogue-products");
+
+ @SuppressWarnings("unchecked")
+ Map<String, Menu> menus = (Map<String, Menu>)request.getAttribute("MENUMAP");
+
+ Menu currentMenu = (Menu)menus.get("catalogue");
+ model.addAttribute("currentMenu",currentMenu);
+ model.addAttribute("activeMenus",activeMenus);
+ //
+
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/shipping/ShippingConfigsController.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/shipping/ShippingConfigsController.java
new file mode 100644
index 0000000..ad1e0cb
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/shipping/ShippingConfigsController.java
@@ -0,0 +1,228 @@
+package com.salesmanager.web.admin.controller.shipping;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.lang3.StringUtils;
+import org.codehaus.jackson.map.ObjectMapper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.country.model.Country;
+import com.salesmanager.core.business.reference.country.service.CountryService;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.business.shipping.model.ShippingConfiguration;
+import com.salesmanager.core.business.shipping.model.ShippingType;
+import com.salesmanager.core.business.shipping.service.ShippingService;
+import com.salesmanager.core.utils.ajax.AjaxResponse;
+import com.salesmanager.web.admin.entity.web.Menu;
+import com.salesmanager.web.constants.Constants;
+
+
+@Controller
+public class ShippingConfigsController {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(ShippingConfigsController.class);
+
+
+ @Inject
+ private ShippingService shippingService;
+
+ @Inject
+ private CountryService countryService;
+
+ /**
+ * Configures the shipping mode, shows shipping countries
+ * @param request
+ * @param response
+ * @param locale
+ * @return
+ * @throws Exception
+ */
+ @PreAuthorize("hasRole('SHIPPING')")
+ @RequestMapping(value="/admin/shipping/shippingConfigs.html", method=RequestMethod.GET)
+ public String displayShippingConfigs(Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+ this.setMenu(model, request);
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+
+
+ ShippingConfiguration shippingConfiguration = shippingService.getShippingConfiguration(store);
+
+ if(shippingConfiguration==null) {
+ shippingConfiguration = new ShippingConfiguration();
+ shippingConfiguration.setShippingType(ShippingType.INTERNATIONAL);
+ }
+
+
+ model.addAttribute("configuration", shippingConfiguration);
+ return "shipping-configs";
+
+
+ }
+
+ @PreAuthorize("hasRole('SHIPPING')")
+ @RequestMapping(value="/admin/shipping/saveShippingConfiguration.html", method=RequestMethod.POST)
+ public String saveShippingConfiguration(@ModelAttribute("configuration") ShippingConfiguration configuration, Model model, HttpServletRequest request, HttpServletResponse response, Locale locale) throws Exception {
+
+ this.setMenu(model, request);
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ //get original configuration
+ ShippingConfiguration shippingConfiguration = shippingService.getShippingConfiguration(store);
+
+ if(shippingConfiguration==null) {
+ shippingConfiguration = new ShippingConfiguration();
+ }
+
+ shippingConfiguration.setShippingType(configuration.getShippingType());
+
+ shippingService.saveShippingConfiguration(shippingConfiguration, store);
+
+ model.addAttribute("configuration", shippingConfiguration);
+ model.addAttribute("success","success");
+ return "shipping-configs";
+
+ }
+
+ @SuppressWarnings({ "unchecked"})
+ @PreAuthorize("hasRole('SHIPPING')")
+ @RequestMapping(value="/admin/shipping/countries/paging.html", method=RequestMethod.POST, produces="application/json;charset=UTF-8")
+ public @ResponseBody String pageCountries(HttpServletRequest request, HttpServletResponse response) {
+ String countryName = request.getParameter("name");
+ AjaxResponse resp = new AjaxResponse();
+
+ try {
+
+ Language language = (Language)request.getAttribute("LANGUAGE");
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ //get list of countries
+ Map<String,Country> countries = countryService.getCountriesMap(language);
+
+ //get inclusions
+ List<String> includedCountries = shippingService.getSupportedCountries(store);
+
+
+ for(String key : countries.keySet()) {
+
+ Country country = (Country)countries.get(key);
+
+ @SuppressWarnings("rawtypes")
+ Map entry = new HashMap();
+ entry.put("code", country.getIsoCode());
+ entry.put("name", country.getName());
+
+ if(includedCountries.contains(key)) {
+ entry.put("supported", true);
+ } else {
+ entry.put("supported", false);
+ }
+
+ if(!StringUtils.isBlank(countryName)) {
+ if(country.getName().contains(countryName)){
+ resp.addDataEntry(entry);
+ }
+ } else {
+ resp.addDataEntry(entry);
+ }
+ }
+
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_SUCCESS);
+
+ } catch (Exception e) {
+ LOGGER.error("Error while paging shipping countries", e);
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ }
+
+ String returnString = resp.toJSONString();
+
+ return returnString;
+ }
+
+ @PreAuthorize("hasRole('SHIPPING')")
+ @RequestMapping(value="/admin/shipping/countries/update.html", method=RequestMethod.POST, produces="application/json;text/plain;charset=UTF-8")
+ public @ResponseBody String updateCountry(HttpServletRequest request, HttpServletResponse response) {
+ String values = request.getParameter("_oldValues");
+ String supported = request.getParameter("supported");
+
+
+
+
+
+
+ AjaxResponse resp = new AjaxResponse();
+
+ try {
+
+ ObjectMapper mapper = new ObjectMapper();
+ @SuppressWarnings("rawtypes")
+ Map conf = mapper.readValue(values, Map.class);
+
+ String countryCode = (String)conf.get("code");
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ //get list of countries
+ List<String> includedCountries = shippingService.getSupportedCountries(store);
+
+ if(!StringUtils.isBlank(supported)) {
+ if("true".equals(supported)) {
+ includedCountries.add(countryCode);
+ } else {
+ includedCountries.remove(countryCode);
+ }
+ }
+
+
+ shippingService.setSupportedCountries(store, includedCountries);
+
+ resp.setStatus(AjaxResponse.RESPONSE_OPERATION_COMPLETED);
+
+
+
+ } catch (Exception e) {
+ LOGGER.error("Error while paging shipping countries", e);
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ }
+
+ String returnString = resp.toJSONString();
+
+ return returnString;
+ }
+
+ private void setMenu(Model model, HttpServletRequest request) throws Exception {
+
+ //display menu
+ Map<String,String> activeMenus = new HashMap<String,String>();
+ activeMenus.put("shipping", "shipping");
+ activeMenus.put("shipping-configs", "shipping-configs");
+
+ @SuppressWarnings("unchecked")
+ Map<String, Menu> menus = (Map<String, Menu>)request.getAttribute("MENUMAP");
+
+ Menu currentMenu = (Menu)menus.get("shipping");
+ model.addAttribute("currentMenu",currentMenu);
+ model.addAttribute("activeMenus",activeMenus);
+ //
+
+ }
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/shipping/ShippingMethodsController.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/shipping/ShippingMethodsController.java
new file mode 100644
index 0000000..51d4770
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/shipping/ShippingMethodsController.java
@@ -0,0 +1,189 @@
+package com.salesmanager.web.admin.controller.shipping;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.shipping.service.ShippingService;
+import com.salesmanager.core.business.system.model.IntegrationConfiguration;
+import com.salesmanager.core.business.system.model.IntegrationModule;
+import com.salesmanager.core.modules.integration.IntegrationException;
+import com.salesmanager.core.modules.integration.shipping.model.CustomShippingQuotesConfiguration;
+import com.salesmanager.shop.admin.controller.ControllerConstants;
+import com.salesmanager.web.admin.entity.web.Menu;
+import com.salesmanager.web.constants.Constants;
+import com.salesmanager.web.utils.LabelUtils;
+
+@Controller
+public class ShippingMethodsController {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(ShippingMethodsController.class);
+
+
+ @Inject
+ private ShippingService shippingService;
+
+ @Inject
+ LabelUtils messages;
+
+ /**
+ * Configures the shipping shows shipping methods
+ * @param request
+ * @param response
+ * @param locale
+ * @return
+ * @throws Exception
+ */
+ @PreAuthorize("hasRole('SHIPPING')")
+ @RequestMapping(value="/admin/shipping/shippingMethods.html", method=RequestMethod.GET)
+ public String displayShippingMethods(Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+
+ this.setMenu(model, request);
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ //get shipping methods
+ List<IntegrationModule> modules = shippingService.getShippingMethods(store);
+
+ //get configured shipping modules
+ Map<String,IntegrationConfiguration> configuredModules = shippingService.getShippingModulesConfigured(store);
+
+
+
+ model.addAttribute("modules", modules);
+ model.addAttribute("configuredModules", configuredModules);
+
+
+ return ControllerConstants.Tiles.Shipping.shippingMethods;
+
+
+ }
+ @PreAuthorize("hasRole('SHIPPING')")
+ @RequestMapping(value="/admin/shipping/shippingMethod.html", method=RequestMethod.GET)
+ public String displayShippingMethod(@RequestParam("code") String code, Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+
+ this.setMenu(model, request);
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+
+ //get configured shipping modules
+ IntegrationConfiguration configuration = shippingService.getShippingConfiguration(code, store);
+ if(configuration==null) {
+ configuration = new IntegrationConfiguration();
+ }
+
+ configuration.setModuleCode(code);
+
+ List<String> environments = new ArrayList<String>();
+ environments.add(com.salesmanager.core.constants.Constants.TEST_ENVIRONMENT);
+ environments.add(com.salesmanager.core.constants.Constants.PRODUCTION_ENVIRONMENT);
+
+ model.addAttribute("configuration", configuration);
+ model.addAttribute("environments", environments);
+ return ControllerConstants.Tiles.Shipping.shippingMethod;
+
+
+ }
+ @PreAuthorize("hasRole('SHIPPING')")
+ @RequestMapping(value="/admin/shipping/saveShippingMethod.html", method=RequestMethod.POST)
+ public String saveShippingMethod(@ModelAttribute("configuration") IntegrationConfiguration configuration, BindingResult result, Model model, HttpServletRequest request, HttpServletResponse response, Locale locale) throws Exception {
+
+
+ this.setMenu(model, request);
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ String moduleCode = configuration.getModuleCode();
+ LOGGER.debug("Saving module code " + moduleCode);
+
+ List<String> environments = new ArrayList<String>();
+ environments.add(com.salesmanager.core.constants.Constants.TEST_ENVIRONMENT);
+ environments.add(com.salesmanager.core.constants.Constants.PRODUCTION_ENVIRONMENT);
+
+ model.addAttribute("environments", environments);
+ model.addAttribute("configuration", configuration);
+
+ try {
+ shippingService.saveShippingQuoteModuleConfiguration(configuration, store);
+ } catch (Exception e) {
+ if(e instanceof IntegrationException) {
+ if(((IntegrationException)e).getErrorCode()==IntegrationException.ERROR_VALIDATION_SAVE) {
+
+ List<String> errorCodes = ((IntegrationException)e).getErrorFields();
+ for(String errorCode : errorCodes) {
+ model.addAttribute(errorCode,messages.getMessage("message.fielderror", locale));
+ }
+ model.addAttribute("validationError","validationError");
+ return ControllerConstants.Tiles.Shipping.shippingMethod;
+ }
+ } else {
+ throw new Exception(e);
+ }
+ }
+
+
+
+ model.addAttribute("success","success");
+ return ControllerConstants.Tiles.Shipping.shippingMethod;
+
+
+ }
+
+ @PreAuthorize("hasRole('SHIPPING')")
+ @RequestMapping(value="/admin/shipping/weightBased.html", method=RequestMethod.POST)
+ public String saveCustomWeightBasedShippingMethod(@ModelAttribute("configuration") CustomShippingQuotesConfiguration configuration, BindingResult result, Model model, HttpServletRequest request, HttpServletResponse response, Locale locale) throws Exception {
+
+ model.addAttribute("success","success");
+ return ControllerConstants.Tiles.Shipping.shippingMethod;
+
+ }
+
+ @RequestMapping(value="/admin/shipping/deleteShippingMethod.html", method=RequestMethod.POST)
+ public String deleteShippingMethod(@RequestParam("code") String code, Model model, HttpServletRequest request, HttpServletResponse response, Locale locale) throws Exception {
+
+ this.setMenu(model, request);
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+ shippingService.removeShippingQuoteModuleConfiguration(code, store);
+
+ return "redirect:/admin/shipping/shippingMethods.html";
+
+ }
+
+
+ private void setMenu(Model model, HttpServletRequest request) throws Exception {
+
+ //display menu
+ Map<String,String> activeMenus = new HashMap<String,String>();
+ activeMenus.put("shipping", "shipping");
+ activeMenus.put("shipping-methods", "shipping-methods");
+
+ @SuppressWarnings("unchecked")
+ Map<String, Menu> menus = (Map<String, Menu>)request.getAttribute("MENUMAP");
+
+ Menu currentMenu = (Menu)menus.get("shipping");
+ model.addAttribute("currentMenu",currentMenu);
+ model.addAttribute("activeMenus",activeMenus);
+ //
+
+ }
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/shipping/ShippingOptionsController.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/shipping/ShippingOptionsController.java
new file mode 100644
index 0000000..2116cf7
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/shipping/ShippingOptionsController.java
@@ -0,0 +1,176 @@
+package com.salesmanager.web.admin.controller.shipping;
+
+import java.math.BigDecimal;
+import java.util.HashMap;
+import java.util.Locale;
+import java.util.Map;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.validation.BindingResult;
+import org.springframework.validation.ObjectError;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.shipping.model.ShippingConfiguration;
+import com.salesmanager.core.business.shipping.model.ShippingType;
+import com.salesmanager.core.business.shipping.service.ShippingService;
+import com.salesmanager.core.utils.ProductPriceUtils;
+import com.salesmanager.shop.admin.controller.ControllerConstants;
+import com.salesmanager.web.admin.entity.web.Menu;
+import com.salesmanager.web.constants.Constants;
+import com.salesmanager.web.utils.LabelUtils;
+
+@Controller
+public class ShippingOptionsController {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(ShippingOptionsController.class);
+
+
+ @Inject
+ private ShippingService shippingService;
+
+ @Inject
+ LabelUtils messages;
+
+ @Inject
+ private ProductPriceUtils priceUtil;
+
+ /**
+ * Displays shipping options
+ * @param request
+ * @param response
+ * @param locale
+ * @return
+ * @throws Exception
+ */
+ @PreAuthorize("hasRole('SHIPPING')")
+ @RequestMapping(value="/admin/shipping/shippingOptions.html", method=RequestMethod.GET)
+ public String displayShippingOptions(Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+
+ this.setMenu(model, request);
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+
+
+ ShippingConfiguration shippingConfiguration = shippingService.getShippingConfiguration(store);
+
+ if(shippingConfiguration==null) {
+ shippingConfiguration = new ShippingConfiguration();
+ shippingConfiguration.setShippingType(ShippingType.INTERNATIONAL);
+ }
+
+ if(shippingConfiguration!=null) {
+
+ if(shippingConfiguration.getHandlingFees()!=null) {
+ shippingConfiguration.setHandlingFeesText(priceUtil.getAdminFormatedAmount(store,shippingConfiguration.getHandlingFees()));
+ }
+
+ if(shippingConfiguration.getOrderTotalFreeShipping()!=null) {
+ shippingConfiguration.setOrderTotalFreeShippingText(priceUtil.getAdminFormatedAmount(store,shippingConfiguration.getOrderTotalFreeShipping()));
+ }
+
+ }
+
+
+ model.addAttribute("configuration", shippingConfiguration);
+ return ControllerConstants.Tiles.Shipping.shippingOptions;
+
+
+ }
+
+ /**
+ * Saves shipping options
+ * @param configuration
+ * @param result
+ * @param model
+ * @param request
+ * @param response
+ * @param locale
+ * @return
+ * @throws Exception
+ */
+ @PreAuthorize("hasRole('SHIPPING')")
+ @RequestMapping(value="/admin/shipping/saveShippingOptions.html", method=RequestMethod.POST)
+ public String saveShippingOptions(@ModelAttribute("configuration") ShippingConfiguration configuration, BindingResult result, Model model, HttpServletRequest request, HttpServletResponse response, Locale locale) throws Exception {
+
+
+ this.setMenu(model, request);
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ //get original configuration
+ ShippingConfiguration shippingConfiguration = shippingService.getShippingConfiguration(store);
+
+ if(shippingConfiguration==null) {
+ shippingConfiguration = new ShippingConfiguration();
+ }
+
+ BigDecimal submitedOrderPrice = null;
+ if(!StringUtils.isBlank(configuration.getOrderTotalFreeShippingText())){
+ try {
+ submitedOrderPrice = priceUtil.getAmount(configuration.getOrderTotalFreeShippingText());
+ shippingConfiguration.setOrderTotalFreeShipping(submitedOrderPrice);
+ } catch (Exception e) {
+ ObjectError error = new ObjectError("orderTotalFreeShippingText",messages.getMessage("message.invalid.price", locale));
+ result.addError(error);
+ }
+ }
+
+ BigDecimal submitedHandlingPrice = null;
+ if(!StringUtils.isBlank(configuration.getHandlingFeesText())){
+ try {
+ submitedHandlingPrice = priceUtil.getAmount(configuration.getHandlingFeesText());
+ shippingConfiguration.setHandlingFees(submitedHandlingPrice);
+ } catch (Exception e) {
+ ObjectError error = new ObjectError("handlingFeesText",messages.getMessage("message.invalid.price", locale));
+ result.addError(error);
+ }
+ }
+
+ shippingConfiguration.setFreeShippingEnabled(configuration.isFreeShippingEnabled());
+ shippingConfiguration.setTaxOnShipping(configuration.isTaxOnShipping());
+ if(configuration.getShipFreeType()!=null) {
+ shippingConfiguration.setShipFreeType(configuration.getShipFreeType());
+ }
+ shippingConfiguration.setShipOptionPriceType(configuration.getShipOptionPriceType());
+
+ shippingService.saveShippingConfiguration(shippingConfiguration, store);
+
+ model.addAttribute("configuration", configuration);
+ model.addAttribute("success","success");
+ return ControllerConstants.Tiles.Shipping.shippingOptions;
+
+
+ }
+
+ private void setMenu(Model model, HttpServletRequest request) throws Exception {
+
+ //display menu
+ Map<String,String> activeMenus = new HashMap<String,String>();
+ activeMenus.put("shipping", "shipping");
+ activeMenus.put("shipping-options", "shipping-options");
+
+ @SuppressWarnings("unchecked")
+ Map<String, Menu> menus = (Map<String, Menu>)request.getAttribute("MENUMAP");
+
+ Menu currentMenu = (Menu)menus.get("shipping");
+ model.addAttribute("currentMenu",currentMenu);
+ model.addAttribute("activeMenus",activeMenus);
+ //
+
+ }
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/shipping/ShippingOriginController.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/shipping/ShippingOriginController.java
new file mode 100644
index 0000000..aa31c54
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/shipping/ShippingOriginController.java
@@ -0,0 +1,171 @@
+package com.salesmanager.web.admin.controller.shipping;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.country.model.Country;
+import com.salesmanager.core.business.reference.country.service.CountryService;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.business.reference.zone.model.Zone;
+import com.salesmanager.core.business.reference.zone.service.ZoneService;
+import com.salesmanager.core.business.shipping.model.ShippingOrigin;
+import com.salesmanager.core.business.shipping.service.ShippingOriginService;
+import com.salesmanager.web.admin.entity.web.Menu;
+import com.salesmanager.web.constants.Constants;
+
+
+@Controller
+public class ShippingOriginController {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(ShippingOriginController.class);
+
+
+ @Inject
+ private ShippingOriginService shippingOriginService;
+
+ @Inject
+ private CountryService countryService;
+
+ @Inject
+ private ZoneService zoneService;
+
+ /**
+ * Configures the shipping mode, shows shipping countries
+ * @param request
+ * @param response
+ * @param locale
+ * @return
+ * @throws Exception
+ */
+ @PreAuthorize("hasRole('SHIPPING')")
+ @RequestMapping(value="/admin/shipping/origin/get.html", method=RequestMethod.GET)
+ public String displayShippingOrigin(Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+ this.setMenu(model, request);
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+ Language language = (Language)request.getAttribute("LANGUAGE");
+
+ ShippingOrigin shippingOrigin = shippingOriginService.getByStore(store);
+
+ List<Country> countries = countryService.getCountries(language);
+
+ if(shippingOrigin==null) {
+ shippingOrigin = new ShippingOrigin();
+ shippingOrigin.setCountry(store.getCountry());
+ shippingOrigin.setState(store.getStorestateprovince());
+ shippingOrigin.setZone(store.getZone());
+ }
+
+ model.addAttribute("countries", countries);
+ model.addAttribute("origin", shippingOrigin);
+ return "shipping-origin";
+
+
+ }
+
+ @PreAuthorize("hasRole('SHIPPING')")
+ @RequestMapping(value="/admin/shipping/origin/post.html", method=RequestMethod.POST)
+ public String saveShippingOrigin(@Valid @ModelAttribute("origin") ShippingOrigin origin, Model model, HttpServletRequest request, HttpServletResponse response, Locale locale) throws Exception {
+
+ this.setMenu(model, request);
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ Language language = (Language)request.getAttribute("LANGUAGE");
+ List<Country> countries = countryService.getCountries(language);
+
+ ShippingOrigin shippingOrigin = shippingOriginService.getByStore(store);
+ if(shippingOrigin!=null) {
+ origin.setId(shippingOrigin.getId());
+ }
+
+ origin.setMerchantStore(store);
+
+ Country country = countryService.getByCode(origin.getCountry().getIsoCode());
+ origin.setCountry(country);
+
+ if(origin.getZone() !=null) {
+ Zone zone = zoneService.getByCode(origin.getZone().getCode());
+ origin.setZone(zone);
+ }
+
+ if(shippingOrigin!=null) {
+ shippingOriginService.update(origin);
+ } else {
+ shippingOriginService.save(origin);
+ }
+
+ model.addAttribute("countries", countries);
+ model.addAttribute("origin", origin);
+ model.addAttribute("success","success");
+ return "shipping-origin";
+
+ }
+
+ @PreAuthorize("hasRole('SHIPPING')")
+ @RequestMapping(value="/admin/shipping/origin/delete.html", method=RequestMethod.POST)
+ public String deleteShippingOrigin(@ModelAttribute("origin") ShippingOrigin origin, Model model, HttpServletRequest request, HttpServletResponse response, Locale locale) throws Exception {
+
+ this.setMenu(model, request);
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ ShippingOrigin shippingOrigin = shippingOriginService.getByStore(store);
+
+ Language language = (Language)request.getAttribute("LANGUAGE");
+ List<Country> countries = countryService.getCountries(language);
+
+
+ if(shippingOrigin!=null && origin !=null) {
+ if(shippingOrigin.getId().longValue() == origin.getId().longValue()) {
+ shippingOriginService.delete(shippingOrigin);
+ model.addAttribute("success","success");
+ } else {
+ return "redirect:/admin/shipping/origin/get.html";
+ }
+ } else {
+ return "redirect:/admin/shipping/origin/get.html";
+ }
+
+ model.addAttribute("countries", countries);
+ model.addAttribute("origin", null);
+ model.addAttribute("success","success");
+ return "shipping-origin";
+
+ }
+
+ private void setMenu(Model model, HttpServletRequest request) throws Exception {
+
+ //display menu
+ Map<String,String> activeMenus = new HashMap<String,String>();
+ activeMenus.put("shipping", "shipping");
+ activeMenus.put("shipping-origin", "shipping-origin");
+
+ @SuppressWarnings("unchecked")
+ Map<String, Menu> menus = (Map<String, Menu>)request.getAttribute("MENUMAP");
+
+ Menu currentMenu = (Menu)menus.get("shipping");
+ model.addAttribute("currentMenu",currentMenu);
+ model.addAttribute("activeMenus",activeMenus);
+ //
+
+ }
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/shipping/ShippingPackagingController.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/shipping/ShippingPackagingController.java
new file mode 100644
index 0000000..c20055b
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/shipping/ShippingPackagingController.java
@@ -0,0 +1,140 @@
+package com.salesmanager.web.admin.controller.shipping;
+
+import java.text.DecimalFormat;
+import java.util.HashMap;
+import java.util.Locale;
+import java.util.Map;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.shipping.model.ShippingConfiguration;
+import com.salesmanager.core.business.shipping.model.ShippingType;
+import com.salesmanager.core.business.shipping.service.ShippingService;
+import com.salesmanager.shop.admin.controller.ControllerConstants;
+import com.salesmanager.web.admin.entity.web.Menu;
+import com.salesmanager.web.constants.Constants;
+import com.salesmanager.web.utils.LabelUtils;
+
+@Controller
+public class ShippingPackagingController {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(ShippingPackagingController.class);
+
+
+ @Inject
+ private ShippingService shippingService;
+
+ @Inject
+ LabelUtils messages;
+
+
+ /**
+ * Displays shipping packaging
+ * @param request
+ * @param response
+ * @param locale
+ * @return
+ * @throws Exception
+ */
+ @PreAuthorize("hasRole('SHIPPING')")
+ @RequestMapping(value="/admin/shipping/shippingPackaging.html", method=RequestMethod.GET)
+ public String displayShippingPackaging(Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+
+ this.setMenu(model, request);
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ ShippingConfiguration shippingConfiguration = shippingService.getShippingConfiguration(store);
+
+ if(shippingConfiguration==null) {
+ shippingConfiguration = new ShippingConfiguration();
+ shippingConfiguration.setShippingType(ShippingType.INTERNATIONAL);
+ }
+
+ model.addAttribute("configuration", shippingConfiguration);
+ model.addAttribute("store",store);
+ return ControllerConstants.Tiles.Shipping.shippingPackaging;
+
+
+ }
+
+ /**
+ * Saves shipping packaging
+ * @param configuration
+ * @param result
+ * @param model
+ * @param request
+ * @param response
+ * @param locale
+ * @return
+ * @throws Exception
+ */
+ @PreAuthorize("hasRole('SHIPPING')")
+ @RequestMapping(value="/admin/shipping/saveShippingPackaging.html", method=RequestMethod.POST)
+ public String saveShippingPackaging(@ModelAttribute("configuration") ShippingConfiguration configuration, BindingResult result, Model model, HttpServletRequest request, HttpServletResponse response, Locale locale) throws Exception {
+
+
+ this.setMenu(model, request);
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ //get original configuration
+ ShippingConfiguration shippingConfiguration = shippingService.getShippingConfiguration(store);
+
+ if(shippingConfiguration==null) {
+ shippingConfiguration = new ShippingConfiguration();
+ }
+
+ DecimalFormat df = new DecimalFormat("#.##");
+ String sweight = df.format(configuration.getBoxWeight());
+ double weight = Double.parseDouble(sweight);
+
+ shippingConfiguration.setBoxHeight(configuration.getBoxHeight());
+ shippingConfiguration.setBoxLength(configuration.getBoxLength());
+ shippingConfiguration.setBoxWeight(weight);
+ shippingConfiguration.setBoxWidth(configuration.getBoxWidth());
+
+ shippingConfiguration.setShipPackageType(configuration.getShipPackageType());
+
+
+ shippingService.saveShippingConfiguration(shippingConfiguration, store);
+
+ model.addAttribute("configuration", configuration);
+ model.addAttribute("success","success");
+ return ControllerConstants.Tiles.Shipping.shippingPackaging;
+
+
+ }
+
+ private void setMenu(Model model, HttpServletRequest request) throws Exception {
+
+ //display menu
+ Map<String,String> activeMenus = new HashMap<String,String>();
+ activeMenus.put("shipping", "shipping");
+ activeMenus.put("shipping-packages", "shipping-packages");
+
+ @SuppressWarnings("unchecked")
+ Map<String, Menu> menus = (Map<String, Menu>)request.getAttribute("MENUMAP");
+
+ Menu currentMenu = (Menu)menus.get("shipping");
+ model.addAttribute("currentMenu",currentMenu);
+ model.addAttribute("activeMenus",activeMenus);
+ //
+
+ }
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/tax/TaxClassController.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/tax/TaxClassController.java
new file mode 100644
index 0000000..0d0ccfa
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/tax/TaxClassController.java
@@ -0,0 +1,304 @@
+package com.salesmanager.web.admin.controller.tax;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.validation.BindingResult;
+import org.springframework.validation.ObjectError;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import com.salesmanager.core.business.catalog.product.model.Product;
+import com.salesmanager.core.business.catalog.product.service.ProductService;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.tax.model.taxclass.TaxClass;
+import com.salesmanager.core.business.tax.service.TaxClassService;
+import com.salesmanager.core.utils.ajax.AjaxPageableResponse;
+import com.salesmanager.core.utils.ajax.AjaxResponse;
+import com.salesmanager.web.admin.entity.web.Menu;
+import com.salesmanager.web.constants.Constants;
+import com.salesmanager.web.utils.LabelUtils;
+
+@Controller
+public class TaxClassController {
+
+ @Inject
+ private TaxClassService taxClassService = null;
+
+ @Inject
+ private ProductService productService=null;
+
+ @Inject
+ LabelUtils messages;
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(TaxClassController.class);
+
+
+ @PreAuthorize("hasRole('TAX')")
+ @RequestMapping(value={"/admin/tax/taxclass/list.html"}, method=RequestMethod.GET)
+ public String displayTaxClasses(Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+ setMenu(model, request);
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+ TaxClass taxClass = new TaxClass();
+ taxClass.setMerchantStore(store);
+
+ model.addAttribute("taxClass", taxClass);
+
+ return com.salesmanager.shop.admin.controller.ControllerConstants.Tiles.Tax.taxClasses;
+ }
+
+
+ @PreAuthorize("hasRole('TAX')")
+ @RequestMapping(value = "/admin/tax/taxclass/paging.html", method = RequestMethod.POST, produces = "application/json")
+ public @ResponseBody
+ String pageTaxClasses(HttpServletRequest request,
+ HttpServletResponse response, Locale locale) {
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ AjaxResponse resp = new AjaxResponse();
+ try {
+
+ List<TaxClass> taxClasses = taxClassService.listByStore(store);
+ for(TaxClass tax : taxClasses) {
+ if(!tax.getCode().equals(TaxClass.DEFAULT_TAX_CLASS)) {
+ Map<String,String> entry = new HashMap<String,String>();
+ entry.put("taxClassId", String.valueOf(tax.getId()));
+ entry.put("code", tax.getCode());
+ entry.put("name", tax.getTitle());
+ resp.addDataEntry(entry);
+ }
+ }
+
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_SUCCESS);
+
+ } catch (Exception e) {
+ LOGGER.error("Error while paging permissions", e);
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorMessage(e);
+ }
+
+ String returnString = resp.toJSONString();
+ return returnString;
+ }
+
+ @PreAuthorize("hasRole('TAX')")
+ @RequestMapping(value="/admin/tax/taxclass/save.html", method=RequestMethod.POST)
+ public String saveTaxClass(@Valid @ModelAttribute("taxClass") TaxClass taxClass, BindingResult result, Model model, HttpServletRequest request, Locale locale) throws Exception {
+
+
+ setMenu(model, request);
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+
+ //requires code and name
+ if(taxClass.getCode().equals(TaxClass.DEFAULT_TAX_CLASS)) {
+ ObjectError error = new ObjectError("code",messages.getMessage("message.taxclass.alreadyexist", locale));
+ result.addError(error);
+ }
+
+
+
+ //check if the code already exist
+ TaxClass taxClassDb = taxClassService.getByCode(taxClass.getCode(),store);
+
+ if(taxClassDb!=null) {
+ ObjectError error = new ObjectError("code",messages.getMessage("message.taxclass.alreadyexist", locale));
+ result.addError(error);
+ }
+
+ if (result.hasErrors()) {
+ return com.salesmanager.shop.admin.controller.ControllerConstants.Tiles.Tax.taxClasses;
+ }
+
+ taxClassService.create(taxClass);
+
+ model.addAttribute("success","success");
+
+ return com.salesmanager.shop.admin.controller.ControllerConstants.Tiles.Tax.taxClasses;
+
+ }
+
+
+ @PreAuthorize("hasRole('TAX')")
+ @RequestMapping(value="/admin/tax/taxclass/update.html", method=RequestMethod.POST)
+ public String updateTaxClass(@Valid @ModelAttribute("taxClass") TaxClass taxClass, BindingResult result, Model model, HttpServletRequest request, Locale locale) throws Exception {
+
+
+ setMenu(model, request);
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+
+ //requires code and name
+ if(taxClass.getCode().equals(TaxClass.DEFAULT_TAX_CLASS)) {
+ ObjectError error = new ObjectError("code",messages.getMessage("message.taxclass.alreadyexist", locale));
+ result.addError(error);
+ }
+
+
+
+ //check if the code already exist
+ TaxClass taxClassDb = taxClassService.getByCode(taxClass.getCode(),store);
+
+ if(taxClassDb!=null && taxClassDb.getId().longValue()!=taxClass.getId().longValue()) {
+ ObjectError error = new ObjectError("code",messages.getMessage("message.taxclass.alreadyexist", locale));
+ result.addError(error);
+ }
+
+ if (result.hasErrors()) {
+ return com.salesmanager.shop.admin.controller.ControllerConstants.Tiles.Tax.taxClass;
+ }
+
+ taxClassService.update(taxClass);
+
+ model.addAttribute("success","success");
+
+ return com.salesmanager.shop.admin.controller.ControllerConstants.Tiles.Tax.taxClass;
+
+ }
+
+
+ @PreAuthorize("hasRole('TAX')")
+ @RequestMapping(value="/admin/tax/taxclass/remove.html", method=RequestMethod.POST, produces="application/json")
+ public @ResponseBody String removeTaxClass(HttpServletRequest request, Locale locale) throws Exception {
+
+ //do not remove super admin
+
+ String taxClassId = request.getParameter("taxClassId");
+
+ AjaxResponse resp = new AjaxResponse();
+
+
+ try {
+
+
+ /**
+ * In order to remove a User the logged in ser must be STORE_ADMIN
+ * or SUPER_USER
+ */
+
+
+ if(taxClassId==null){
+ resp.setStatusMessage(messages.getMessage("message.unauthorized", locale));
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ return resp.toJSONString();
+ }
+
+ long lTaxClassId;
+ try {
+ lTaxClassId = Long.parseLong(taxClassId);
+ } catch (Exception e) {
+ LOGGER.error("Invalid taxClassId " + taxClassId);
+ resp.setStatusMessage(messages.getMessage("message.unauthorized", locale));
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ return resp.toJSONString();
+ }
+
+ TaxClass taxClass = taxClassService.getById(lTaxClassId);
+
+ if(taxClass==null) {
+ LOGGER.error("Invalid taxClassId " + taxClassId);
+ resp.setStatusMessage(messages.getMessage("message.unauthorized", locale));
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ return resp.toJSONString();
+ }
+
+ //look if the taxclass is used for products
+ List<Product> products = productService.listByTaxClass(taxClass);
+
+ if(products!=null && products.size()>0) {
+ resp.setStatusMessage(messages.getMessage("message.product.association", locale));
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ return resp.toJSONString();
+ }
+
+
+ taxClassService.delete(taxClass);
+
+ resp.setStatus(AjaxResponse.RESPONSE_OPERATION_COMPLETED);
+
+
+
+ } catch (Exception e) {
+ LOGGER.error("Error while deleting tax class", e);
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorMessage(e);
+ }
+
+ String returnString = resp.toJSONString();
+
+ return returnString;
+
+ }
+
+ @PreAuthorize("hasRole('TAX')")
+ @RequestMapping(value="/admin/tax/taxclass/edit.html", method=RequestMethod.GET)
+ public String editTaxClass(@ModelAttribute("id") String id, Model model, HttpServletRequest request, HttpServletResponse response, Locale locale) throws Exception {
+
+ setMenu(model,request);
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ TaxClass taxClass = null;
+ try {
+ Long taxClassId = Long.parseLong(id);
+ taxClass = taxClassService.getById(taxClassId);
+ } catch (Exception e) {
+ LOGGER.error("Cannot parse taxclassid " + id);
+ return "redirect:/admin/tax/taxclass/list.html";
+ }
+
+ if(taxClass==null || taxClass.getMerchantStore().getId()!=store.getId()) {
+ return "redirect:/admin/tax/taxclass/list.html";
+ }
+
+
+
+
+ model.addAttribute("taxClass", taxClass);
+
+ return com.salesmanager.shop.admin.controller.ControllerConstants.Tiles.Tax.taxClass;
+
+
+
+ }
+
+
+
+ private void setMenu(Model model, HttpServletRequest request)
+ throws Exception {
+
+ // display menu
+ Map<String, String> activeMenus = new HashMap<String, String>();
+ activeMenus.put("tax", "tax");
+ activeMenus.put("taxclass", "taxclass");
+
+ @SuppressWarnings("unchecked")
+ Map<String, Menu> menus = (Map<String, Menu>) request
+ .getAttribute("MENUMAP");
+
+ Menu currentMenu = (Menu) menus.get("tax");
+ model.addAttribute("currentMenu", currentMenu);
+ model.addAttribute("activeMenus", activeMenus);
+ //
+
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/tax/TaxConfigurationController.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/tax/TaxConfigurationController.java
new file mode 100644
index 0000000..6e0c8ef
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/tax/TaxConfigurationController.java
@@ -0,0 +1,89 @@
+package com.salesmanager.web.admin.controller.tax;
+
+import java.util.HashMap;
+import java.util.Locale;
+import java.util.Map;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.tax.model.TaxConfiguration;
+import com.salesmanager.core.business.tax.service.TaxService;
+import com.salesmanager.web.admin.entity.web.Menu;
+import com.salesmanager.web.constants.Constants;
+
+@Controller
+public class TaxConfigurationController {
+
+ @Inject
+ private TaxService taxService = null;
+
+
+ @PreAuthorize("hasRole('TAX')")
+ @RequestMapping(value={"/admin/tax/taxconfiguration/edit.html"}, method=RequestMethod.GET)
+ public String displayTaxConfiguration(Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+ setMenu(model, request);
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+
+ TaxConfiguration taxConfiguration = taxService.getTaxConfiguration(store);
+ if(taxConfiguration == null) {
+
+ taxConfiguration = new TaxConfiguration();
+
+ }
+
+ model.addAttribute("taxConfiguration", taxConfiguration);
+
+ return com.salesmanager.shop.admin.controller.ControllerConstants.Tiles.Tax.taxConfiguration;
+ }
+
+ @PreAuthorize("hasRole('TAX')")
+ @RequestMapping(value="/admin/tax/taxconfiguration/save.html", method=RequestMethod.POST)
+ public String saveTaxConfiguration(@Valid @ModelAttribute("taxConfiguration") TaxConfiguration taxConfiguration, BindingResult result, Model model, HttpServletRequest request, Locale locale) throws Exception {
+
+
+ setMenu(model, request);
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ taxService.saveTaxConfiguration(taxConfiguration, store);
+
+ model.addAttribute("success","success");
+
+ return com.salesmanager.shop.admin.controller.ControllerConstants.Tiles.Tax.taxConfiguration;
+
+ }
+
+
+ private void setMenu(Model model, HttpServletRequest request)
+ throws Exception {
+
+ // display menu
+ Map<String, String> activeMenus = new HashMap<String, String>();
+ activeMenus.put("tax", "tax");
+ activeMenus.put("taxconfiguration", "taxconfiguration");
+
+ @SuppressWarnings("unchecked")
+ Map<String, Menu> menus = (Map<String, Menu>) request
+ .getAttribute("MENUMAP");
+
+ Menu currentMenu = (Menu) menus.get("tax");
+ model.addAttribute("currentMenu", currentMenu);
+ model.addAttribute("activeMenus", activeMenus);
+ //
+
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/tax/TaxRatesController.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/tax/TaxRatesController.java
new file mode 100644
index 0000000..ac78d85
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/tax/TaxRatesController.java
@@ -0,0 +1,471 @@
+package com.salesmanager.web.admin.controller.tax;
+import java.math.BigDecimal;
+import java.text.NumberFormat;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
+
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.validation.BindingResult;
+import org.springframework.validation.FieldError;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.country.model.Country;
+import com.salesmanager.core.business.reference.country.service.CountryService;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.business.reference.zone.model.Zone;
+import com.salesmanager.core.business.reference.zone.service.ZoneService;
+import com.salesmanager.core.business.tax.model.taxclass.TaxClass;
+import com.salesmanager.core.business.tax.model.taxrate.TaxRate;
+import com.salesmanager.core.business.tax.model.taxrate.TaxRateDescription;
+import com.salesmanager.core.business.tax.service.TaxClassService;
+import com.salesmanager.core.business.tax.service.TaxRateService;
+import com.salesmanager.core.utils.ajax.AjaxResponse;
+import com.salesmanager.web.admin.entity.web.Menu;
+import com.salesmanager.web.constants.Constants;
+import com.salesmanager.web.utils.LabelUtils;
+
+
+@Controller
+public class TaxRatesController {
+
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(TaxRatesController.class);
+
+ private final static char DECIMALCOUNT = '3';
+
+
+ @Inject
+ LabelUtils messages;
+
+ @Inject
+ private CountryService countryService;
+
+ @Inject
+ private TaxRateService taxRateService;
+
+ @Inject
+ private TaxClassService taxClassService;
+
+ @Inject
+ private ZoneService zoneService;
+
+ @PreAuthorize("hasRole('TAX')")
+ @RequestMapping(value={"/admin/tax/taxrates/list.html"}, method=RequestMethod.GET)
+ public String displayTaxRates(Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+ setMenu(model, request);
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ Language language = (Language)request.getAttribute("LANGUAGE");
+
+ List<Country> countries = countryService.getCountries(language);
+ TaxRate taxRate = new TaxRate();
+ List<Language> languages = store.getLanguages();
+
+ for(Language l : languages) {
+
+ TaxRateDescription taxRateDescription = new TaxRateDescription();
+ taxRateDescription.setLanguage(l);
+ taxRate.getDescriptions().add(taxRateDescription);
+ }
+
+ taxRate.setMerchantStore(store);
+ taxRate.setCountry(store.getCountry());
+
+
+ List<TaxRate> taxRates = taxRateService.listByStore(store);
+ List<TaxClass> taxClasses = taxClassService.listByStore(store);
+
+ model.addAttribute("taxRate", taxRate);
+ model.addAttribute("countries", countries);
+ model.addAttribute("taxRates", taxRates);
+ model.addAttribute("taxClasses", taxClasses);
+
+ return com.salesmanager.shop.admin.controller.ControllerConstants.Tiles.Tax.taxRates;
+ }
+
+ @PreAuthorize("hasRole('TAX')")
+ @RequestMapping(value = "/admin/tax/taxrates/page.html", method = RequestMethod.POST, produces = "application/json")
+ public @ResponseBody
+ String pageTaxRates(HttpServletRequest request,
+ HttpServletResponse response) {
+
+ AjaxResponse resp = new AjaxResponse();
+
+
+ try {
+
+ NumberFormat nf = null;
+
+
+ nf = NumberFormat.getInstance(Locale.US);
+
+ nf.setMaximumFractionDigits(Integer.parseInt(Character
+ .toString(DECIMALCOUNT)));
+ nf.setMinimumFractionDigits(Integer.parseInt(Character
+ .toString(DECIMALCOUNT)));
+
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+ Language language = (Language)request.getAttribute("LANGUAGE");
+ List<TaxRate> taxRates = taxRateService.listByStore(store,language);
+
+ if(taxRates!=null) {
+ for (TaxRate rate : taxRates) {
+
+ Map entry = new HashMap ();
+ entry.put("taxRateId", String.valueOf(rate.getId()));
+ entry.put("code", rate.getCode());
+ List<TaxRateDescription> descriptions = rate.getDescriptions();
+ String name = "";
+ if(descriptions!=null && descriptions.size()>0) {
+ TaxRateDescription desc = descriptions.get(0);
+ for(TaxRateDescription description : descriptions) {
+ if(description.getLanguage().getCode().equals(language.getCode())) {
+ desc = description;
+ break;
+ }
+ }
+ name = desc.getName();
+ }
+
+ entry.put("name", name);
+ entry.put("priority", rate.getTaxPriority());
+
+ entry.put("piggyback", rate.isPiggyback());
+ entry.put("country", rate.getCountry().getIsoCode());
+ entry.put("taxClass", rate.getTaxClass().getCode());
+
+
+ String zoneCode = rate.getStateProvince();
+ if(rate.getZone()!=null) {
+ zoneCode = rate.getZone().getCode();
+ }
+ entry.put("zone", zoneCode);
+
+ entry.put("rate", nf.format(rate.getTaxRate()));
+
+
+ resp.addDataEntry(entry);
+
+ }
+ }
+
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_SUCCESS);
+
+ } catch (Exception e) {
+ LOGGER.error("Error while paging custom weight based", e);
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ }
+
+ String returnString = resp.toJSONString();
+
+ return returnString;
+ }
+
+ @PreAuthorize("hasRole('TAX')")
+ @RequestMapping(value="/admin/tax/taxrates/save.html", method=RequestMethod.POST)
+ public String saveTaxRate(@Valid @ModelAttribute("taxRate") TaxRate taxRate, BindingResult result, Model model, HttpServletRequest request, Locale locale) throws Exception {
+
+ setMenu(model, request);
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ Language language = (Language)request.getAttribute("LANGUAGE");
+
+ this.validateTaxRate(model, taxRate, result, store, language, locale);
+
+ if (result.hasErrors()) {
+
+ return com.salesmanager.shop.admin.controller.ControllerConstants.Tiles.Tax.taxRates;
+
+ }
+
+
+ taxRateService.create(taxRate);
+
+ List<TaxRate> taxRates = taxRateService.listByStore(store);
+
+ model.addAttribute("success","success");
+ model.addAttribute("taxRates", taxRates);
+
+
+
+
+ return com.salesmanager.shop.admin.controller.ControllerConstants.Tiles.Tax.taxRates;
+
+ }
+
+
+
+ @PreAuthorize("hasRole('TAX')")
+ @RequestMapping(value="/admin/tax/taxrates/update.html", method=RequestMethod.POST)
+ public String updateTaxRate(@Valid @ModelAttribute("taxRate") TaxRate taxRate, BindingResult result, Model model, HttpServletRequest request, Locale locale) throws Exception {
+
+
+ setMenu(model, request);
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ Language language = (Language)request.getAttribute("LANGUAGE");
+
+ this.validateTaxRate(model, taxRate, result, store, language, locale);
+
+ if (result.hasErrors()) {
+
+ return com.salesmanager.shop.admin.controller.ControllerConstants.Tiles.Tax.taxRate;
+
+ }
+
+
+ taxRateService.update(taxRate);
+
+ List<TaxRate> taxRates = taxRateService.listByStore(store);
+
+ model.addAttribute("success","success");
+ model.addAttribute("taxRates", taxRates);
+
+
+
+
+ return com.salesmanager.shop.admin.controller.ControllerConstants.Tiles.Tax.taxRate;
+
+
+ }
+
+ private void validateTaxRate(Model model, TaxRate taxRate, BindingResult result, MerchantStore store, Language language, Locale locale) throws Exception {
+
+
+
+ List<TaxClass> taxClasses = taxClassService.listByStore(store);
+
+
+ List<Country> countries = countryService.getCountries(language);
+ List<TaxRate> taxRates = taxRateService.listByStore(store);
+
+
+ model.addAttribute("countries", countries);
+ model.addAttribute("taxRates", taxRates);
+ model.addAttribute("taxClasses", taxClasses);
+
+ if(StringUtils.isBlank(taxRate.getRateText())) {
+ FieldError error = new FieldError("taxRate","rateText",messages.getMessage("NotEmpty.taxRate.rateText", locale));
+ result.addError(error);
+ }
+
+ //if(taxRate.isPiggyback() && taxRate.getParent()==null) {
+ //FieldError error = new FieldError("taxRate","piggyback",messages.getMessage("NotNull.taxRate.parent", locale));
+ //result.addError(error);
+ //}
+
+ try {
+ BigDecimal rate = new BigDecimal(taxRate.getRateText());
+ taxRate.setTaxRate(rate);
+ } catch (Exception e) {
+ FieldError error = new FieldError("taxRate","rateText",messages.getMessage("message.invalid.rate", locale));
+ result.addError(error);
+ }
+
+ //check if code exists
+ String taxRateCode = taxRate.getCode();
+ TaxRate tr = taxRateService.getByCode(taxRateCode, store);
+ if(tr!=null) {
+ if(tr.getId().longValue()!=taxRate.getId().longValue()){
+ FieldError error = new FieldError("taxRate","code",messages.getMessage("NotEmpty.taxRate.unique.code", locale));
+ result.addError(error);
+ }
+ }
+
+
+ if(taxRate.getTaxPriority()==null) {
+ taxRate.setTaxPriority(0);
+ }
+
+
+ if(taxRate.getZone()!=null) {
+ Zone z = zoneService.getById(taxRate.getZone().getId());
+ taxRate.setZone(z);
+ }
+
+
+
+ Country c = countryService.getByCode(taxRate.getCountry().getIsoCode());
+
+ taxRate.setCountry(c);
+
+ List<TaxRateDescription> descriptions = taxRate.getDescriptions();
+ for(TaxRateDescription description : descriptions) {
+ description.setTaxRate(taxRate);
+ }
+
+ if(!taxRate.isPiggyback()) {
+ taxRate.setParent(null);
+ }
+
+ return;
+
+ }
+
+
+ @PreAuthorize("hasRole('TAX')")
+ @RequestMapping(value="/admin/tax/taxrates/remove.html", method=RequestMethod.POST, produces="application/json")
+ public @ResponseBody String removeTaxRate(HttpServletRequest request, Locale locale) throws Exception {
+
+ //do not remove super admin
+
+ String taxRateId = request.getParameter("taxRateId");
+
+ AjaxResponse resp = new AjaxResponse();
+
+
+ try {
+
+
+ /**
+ * In order to remove a User the logged in ser must be STORE_ADMIN
+ * or SUPER_USER
+ */
+
+
+ if(taxRateId==null){
+ resp.setStatusMessage(messages.getMessage("message.unauthorized", locale));
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ return resp.toJSONString();
+ }
+
+ long ltaxRateId;
+ try {
+ ltaxRateId = Long.parseLong(taxRateId);
+ } catch (Exception e) {
+ LOGGER.error("Invalid taxRateId " + taxRateId);
+ resp.setStatusMessage(messages.getMessage("message.unauthorized", locale));
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ return resp.toJSONString();
+ }
+
+ TaxRate taxRate = taxRateService.getById(ltaxRateId);
+
+ if(taxRate==null) {
+ LOGGER.error("Invalid taxRateId " + taxRateId);
+ resp.setStatusMessage(messages.getMessage("message.unauthorized", locale));
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ return resp.toJSONString();
+ }
+
+
+
+
+ taxRateService.delete(taxRate);
+
+ resp.setStatus(AjaxResponse.RESPONSE_OPERATION_COMPLETED);
+
+
+
+ } catch (Exception e) {
+ LOGGER.error("Error while deleting tax rate", e);
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorMessage(e);
+ }
+
+ String returnString = resp.toJSONString();
+
+ return returnString;
+
+ }
+
+ @PreAuthorize("hasRole('TAX')")
+ @RequestMapping(value="/admin/tax/taxrates/edit.html", method=RequestMethod.GET)
+ public String editTaxRate(@ModelAttribute("id") String id, Model model, HttpServletRequest request, HttpServletResponse response, Locale locale) throws Exception {
+
+ setMenu(model,request);
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+ Language language = (Language)request.getAttribute("LANGUAGE");
+
+ TaxRate taxRate = null;
+ try {
+ Long taxRateId = Long.parseLong(id);
+ taxRate = taxRateService.getById(taxRateId);
+ } catch (Exception e) {
+ LOGGER.error("Cannot parse taxRateId " + id);
+ return "redirect:/admin/tax/taxrates/list.html";
+ }
+
+ if(taxRate==null || taxRate.getMerchantStore().getId()!=store.getId()) {
+ return "redirect:/admin/tax/taxrates/list.html";
+ }
+
+
+ NumberFormat nf = null;
+
+
+ nf = NumberFormat.getInstance(Locale.US);
+
+ nf.setMaximumFractionDigits(Integer.parseInt(Character
+ .toString(DECIMALCOUNT)));
+ nf.setMinimumFractionDigits(Integer.parseInt(Character
+ .toString(DECIMALCOUNT)));
+
+ taxRate.setRateText(nf.format(taxRate.getTaxRate()));
+
+
+
+ List<TaxClass> taxClasses = taxClassService.listByStore(store);
+
+
+
+ List<Country> countries = countryService.getCountries(language);
+ List<TaxRate> taxRates = taxRateService.listByStore(store);
+
+
+ model.addAttribute("countries", countries);
+ model.addAttribute("taxRates", taxRates);
+ model.addAttribute("taxClasses", taxClasses);
+
+ model.addAttribute("taxRate", taxRate);
+
+ return com.salesmanager.shop.admin.controller.ControllerConstants.Tiles.Tax.taxRate;
+
+
+
+ }
+
+
+
+
+ private void setMenu(Model model, HttpServletRequest request)
+ throws Exception {
+
+ // display menu
+ Map<String, String> activeMenus = new HashMap<String, String>();
+ activeMenus.put("tax", "tax");
+ activeMenus.put("taxrates", "taxrates");
+
+ @SuppressWarnings("unchecked")
+ Map<String, Menu> menus = (Map<String, Menu>) request
+ .getAttribute("MENUMAP");
+
+ Menu currentMenu = (Menu) menus.get("tax");
+ model.addAttribute("currentMenu", currentMenu);
+ model.addAttribute("activeMenus", activeMenus);
+ //
+
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/user/GroupsController.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/user/GroupsController.java
new file mode 100644
index 0000000..fd3f77c
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/user/GroupsController.java
@@ -0,0 +1,150 @@
+package com.salesmanager.web.admin.controller.user;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import com.salesmanager.core.business.reference.country.service.CountryService;
+import com.salesmanager.core.business.reference.language.service.LanguageService;
+import com.salesmanager.core.business.user.model.Group;
+import com.salesmanager.core.business.user.model.GroupType;
+import com.salesmanager.core.business.user.service.GroupService;
+import com.salesmanager.core.business.user.service.PermissionService;
+import com.salesmanager.core.utils.ajax.AjaxPageableResponse;
+import com.salesmanager.core.utils.ajax.AjaxResponse;
+import com.salesmanager.web.admin.entity.web.Menu;
+import com.salesmanager.web.utils.LabelUtils;
+
+@Controller
+public class GroupsController {
+
+ private static final Logger LOGGER = LoggerFactory
+ .getLogger(GroupsController.class);
+
+ @Inject
+ LanguageService languageService;
+
+ @Inject
+ protected GroupService groupService;
+
+ @Inject
+ PermissionService permissionService;
+
+ @Inject
+ CountryService countryService;
+
+ @Inject
+ LabelUtils messages;
+
+
+
+ @PreAuthorize("hasRole('STORE_ADMIN')")
+ @RequestMapping(value = "/admin/groups/editGroup.html", method = RequestMethod.GET)
+ public String displayGroup(@RequestParam("id") Integer groupId, Model model,
+ HttpServletRequest request, HttpServletResponse response)
+ throws Exception {
+ // display menu
+ setMenu(model, request);
+
+ Group group = groupService.getById(groupId);
+
+ model.addAttribute("group", group);
+
+ return "admin-user-group";
+ }
+
+
+
+ @PreAuthorize("hasRole('STORE_ADMIN')")
+ @RequestMapping(value = "/admin/groups/groups.html", method = RequestMethod.GET)
+ public String displayGroups(Model model, HttpServletRequest request,
+ HttpServletResponse response) throws Exception {
+
+ setMenu(model, request);
+ List<Group> groups = groupService.listGroup(GroupType.ADMIN);
+ model.addAttribute("groups", groups);
+
+ return "admin-user-groups";
+ }
+
+
+ @PreAuthorize("hasRole('STORE_ADMIN')")
+ @RequestMapping(value = "/admin/groups/paging.html", method = RequestMethod.POST, produces = "application/json")
+ public @ResponseBody
+ String pageGroups(HttpServletRequest request,
+ HttpServletResponse response, Locale locale) {
+
+ AjaxResponse resp = new AjaxResponse();
+ try {
+
+ List<Group> groups = groupService.list();
+
+ for(Group group : groups) {
+ Map entry = new HashMap();
+ entry.put("groupId", group.getId());
+ entry.put("name", group.getGroupName());
+
+ StringBuilder key = new StringBuilder().append("security.group.description.").append(group.getGroupName());
+ try {
+
+ String message = messages.getMessage(key.toString(), locale);
+ entry.put("description",message);
+
+ } catch(Exception noLabelException) {
+ LOGGER.error("No label found for key [" + key.toString() + "]");
+ }
+
+
+
+
+ resp.addDataEntry(entry);
+ }
+
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_SUCCESS);
+
+ } catch (Exception e) {
+ LOGGER.error("Error while paging permissions", e);
+ resp.setStatus(AjaxPageableResponse.RESPONSE_STATUS_FAIURE);
+ resp.setErrorMessage(e);
+ }
+
+ String returnString = resp.toJSONString();
+ return returnString;
+ }
+
+
+ private void setMenu(Model model, HttpServletRequest request)
+ throws Exception {
+
+ // display menu
+ Map<String, String> activeMenus = new HashMap<String, String>();
+ activeMenus.put("profile", "profile");
+ activeMenus.put("security", "security");
+
+ @SuppressWarnings("unchecked")
+ Map<String, Menu> menus = (Map<String, Menu>) request
+ .getAttribute("MENUMAP");
+
+ Menu currentMenu = (Menu) menus.get("profile");
+ model.addAttribute("currentMenu", currentMenu);
+ model.addAttribute("activeMenus", activeMenus);
+ //
+
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/user/LoginController.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/user/LoginController.java
new file mode 100644
index 0000000..5c65fc7
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/user/LoginController.java
@@ -0,0 +1,48 @@
+package com.salesmanager.web.admin.controller.user;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.springframework.security.core.Authentication;
+import org.springframework.security.core.context.SecurityContextHolder;
+import org.springframework.security.web.authentication.logout.SecurityContextLogoutHandler;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+
+@Controller
+public class LoginController {
+
+
+ @RequestMapping(value="/admin/logon.html", method=RequestMethod.GET)
+ public String displayLogin(HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+ return "admin/logon";
+
+
+ }
+
+
+ @RequestMapping(value="/admin/denied.html", method=RequestMethod.GET)
+ public String displayDenied(HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+
+ //logoff the user
+ Authentication auth = SecurityContextHolder.getContext().getAuthentication();
+ if (auth != null){
+ new SecurityContextLogoutHandler().logout(request, response, auth);
+ //new PersistentTokenBasedRememberMeServices().logout(request, response, auth);
+ }
+
+ return "admin/logon";
+
+
+ }
+
+ @RequestMapping(value="/admin/unauthorized.html", method=RequestMethod.GET)
+ public String unauthorized(Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+ return "admin/unauthorized";
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/user/PermissionController.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/user/PermissionController.java
new file mode 100644
index 0000000..b322d03
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/user/PermissionController.java
@@ -0,0 +1,119 @@
+package com.salesmanager.web.admin.controller.user;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import com.salesmanager.core.business.reference.country.service.CountryService;
+import com.salesmanager.core.business.user.model.Permission;
+import com.salesmanager.core.business.user.service.GroupService;
+import com.salesmanager.core.business.user.service.PermissionService;
+import com.salesmanager.core.utils.ajax.AjaxResponse;
+import com.salesmanager.web.admin.entity.web.Menu;
+import com.salesmanager.web.utils.LabelUtils;
+
+@Controller
+public class PermissionController {
+
+ private static final Logger LOGGER = LoggerFactory
+ .getLogger(PermissionController.class);
+
+ @Inject
+ protected PermissionService permissionService;
+
+ @Inject
+ protected GroupService groupService;
+
+ @Inject
+ CountryService countryService;
+
+ @Inject
+ LabelUtils messages;
+
+
+
+
+
+
+ @PreAuthorize("hasRole('STORE_ADMIN')")
+ @RequestMapping(value = "/admin/permissions/permissions.html", method = RequestMethod.GET)
+ public String displayPermissions(Model model, HttpServletRequest request,
+ HttpServletResponse response) throws Exception {
+
+ //setMenu(model, request);
+ //return "admin-user-permissions";
+
+ throw new Exception("Not implemented");
+ }
+
+ @SuppressWarnings("unchecked")
+ @PreAuthorize("hasRole('STORE_ADMIN')")
+ @RequestMapping(value = "/admin/permissions/paging.html", method = RequestMethod.POST, produces = "application/json")
+ public @ResponseBody
+ String pagePermissions(HttpServletRequest request,
+ HttpServletResponse response) {
+ //String permissionName = request.getParameter("name");
+
+ AjaxResponse resp = new AjaxResponse();
+
+ try {
+
+ List<Permission> permissions = null;
+ permissions = permissionService.listPermission();
+
+ for (Permission permission : permissions) {
+
+ @SuppressWarnings("rawtypes")
+ Map entry = new HashMap();
+ entry.put("permissionId", permission.getId());
+ entry.put("name", permission.getPermissionName());
+ resp.addDataEntry(entry);
+
+ }
+
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_SUCCESS);
+
+ } catch (Exception e) {
+ LOGGER.error("Error while paging permissions", e);
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ }
+
+ String returnString = resp.toJSONString();
+
+ return returnString;
+ }
+
+ @SuppressWarnings("unused")
+ private void setMenu(Model model, HttpServletRequest request)
+ throws Exception {
+
+ // display menu
+ Map<String, String> activeMenus = new HashMap<String, String>();
+ activeMenus.put("profile", "profile");
+ activeMenus.put("security", "security");
+
+ @SuppressWarnings("unchecked")
+ Map<String, Menu> menus = (Map<String, Menu>) request
+ .getAttribute("MENUMAP");
+
+ Menu currentMenu = (Menu) menus.get("profile");
+ model.addAttribute("currentMenu", currentMenu);
+ model.addAttribute("activeMenus", activeMenus);
+ //
+
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/user/SecurityController.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/user/SecurityController.java
new file mode 100644
index 0000000..ab37143
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/user/SecurityController.java
@@ -0,0 +1,67 @@
+package com.salesmanager.web.admin.controller.user;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+
+import com.salesmanager.core.business.user.model.Group;
+import com.salesmanager.core.business.user.model.GroupType;
+import com.salesmanager.core.business.user.service.GroupService;
+import com.salesmanager.web.admin.entity.web.Menu;
+
+@Controller
+public class SecurityController {
+
+ @Inject
+ GroupService groupService;
+
+ @RequestMapping(value="/admin/user/permissions.html", method=RequestMethod.GET)
+ public String displayPermissions(Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+ setMenu(model,request);
+ return "admin-user-permissions";
+
+
+ }
+
+
+ @RequestMapping(value="/admin/user/groups.html", method=RequestMethod.GET)
+ public String displayGroups(Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+ setMenu(model,request);
+ List<Group> groups = groupService.listGroup(GroupType.ADMIN);
+
+ model.addAttribute("groups", groups);
+
+ return "admin-user-groups";
+
+
+ }
+
+ private void setMenu(Model model, HttpServletRequest request) throws Exception {
+
+ //display menu
+ Map<String,String> activeMenus = new HashMap<String,String>();
+ activeMenus.put("profile", "profile");
+ activeMenus.put("security", "security");
+
+ @SuppressWarnings("unchecked")
+ Map<String, Menu> menus = (Map<String, Menu>)request.getAttribute("MENUMAP");
+
+ Menu currentMenu = (Menu)menus.get("profile");
+ model.addAttribute("currentMenu",currentMenu);
+ model.addAttribute("activeMenus",activeMenus);
+ //
+
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/model/catalog/Keyword.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/model/catalog/Keyword.java
new file mode 100644
index 0000000..1182e6a
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/model/catalog/Keyword.java
@@ -0,0 +1,42 @@
+package com.salesmanager.web.admin.entity.catalog;
+
+import java.io.Serializable;
+
+
+import org.hibernate.validator.constraints.NotEmpty;
+
+/**
+ * Post keyword from the admin
+ * @author Carl Samson
+ *
+ */
+public class Keyword implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private long productId;
+ private String languageCode;
+ @NotEmpty
+ private String keyword;
+ public void setProductId(long productId) {
+ this.productId = productId;
+ }
+ public long getProductId() {
+ return productId;
+ }
+ public void setLanguageCode(String languageCode) {
+ this.languageCode = languageCode;
+ }
+ public String getLanguageCode() {
+ return languageCode;
+ }
+ public void setKeyword(String keyword) {
+ this.keyword = keyword;
+ }
+ public String getKeyword() {
+ return keyword;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/model/catalog/Manufacturer.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/model/catalog/Manufacturer.java
new file mode 100644
index 0000000..d348163
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/model/catalog/Manufacturer.java
@@ -0,0 +1,93 @@
+package com.salesmanager.web.admin.entity.catalog;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
+
+import org.springframework.web.multipart.MultipartFile;
+
+import com.salesmanager.core.business.catalog.product.model.image.ProductImage;
+import com.salesmanager.core.business.catalog.product.model.manufacturer.ManufacturerDescription;
+
+
+public class Manufacturer implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = -4531526676134574984L;
+
+ /**
+ *
+ */
+
+ //provides wrapping to the main Manufacturer entity
+ private com.salesmanager.core.business.catalog.product.model.manufacturer.Manufacturer manufacturer;
+
+ @Valid
+ private List<ManufacturerDescription> descriptions = new ArrayList<ManufacturerDescription>();
+
+ private Integer order = new Integer(0);
+ private MultipartFile image = null;
+ @NotNull
+ private String code;
+ public String getCode() {
+ return code;
+ }
+
+ public void setCode(String code) {
+ this.code = code;
+ }
+
+ private ProductImage productImage = null;
+
+
+
+ public MultipartFile getImage() {
+ return image;
+ }
+
+ public void setImage(MultipartFile image) {
+ this.image = image;
+ }
+
+ public ProductImage getProductImage() {
+ return productImage;
+ }
+
+ public void setProductImage(ProductImage productImage) {
+ this.productImage = productImage;
+ }
+
+ public com.salesmanager.core.business.catalog.product.model.manufacturer.Manufacturer getManufacturer() {
+ return manufacturer;
+ }
+
+ public void setManufacturer(
+ com.salesmanager.core.business.catalog.product.model.manufacturer.Manufacturer manufacturer) {
+ this.manufacturer = manufacturer;
+ }
+
+ public List<ManufacturerDescription> getDescriptions() {
+ return descriptions;
+ }
+
+ public void setDescriptions(List<ManufacturerDescription> descriptions) {
+ this.descriptions = descriptions;
+ }
+
+ public Integer getOrder() {
+ return order;
+ }
+
+ public void setOrder(Integer order) {
+ this.order = order;
+ }
+
+
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/model/catalog/Product.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/model/catalog/Product.java
new file mode 100644
index 0000000..93cd0a9
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/model/catalog/Product.java
@@ -0,0 +1,115 @@
+package com.salesmanager.web.admin.entity.catalog;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.validation.Valid;
+
+import org.hibernate.validator.constraints.NotEmpty;
+import org.springframework.web.multipart.MultipartFile;
+
+
+import com.salesmanager.core.business.catalog.product.model.availability.ProductAvailability;
+import com.salesmanager.core.business.catalog.product.model.description.ProductDescription;
+import com.salesmanager.core.business.catalog.product.model.image.ProductImage;
+import com.salesmanager.core.business.catalog.product.model.price.ProductPrice;
+
+public class Product implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = -4531526676134574984L;
+
+ /**
+ *
+ */
+
+ //provides wrapping to the main product entity
+ @Valid
+ private com.salesmanager.core.business.catalog.product.model.Product product;
+
+ @Valid
+ private List<ProductDescription> descriptions = new ArrayList<ProductDescription>();
+
+ @Valid
+ private ProductAvailability availability = null;
+
+ @Valid
+ private ProductPrice price = null;
+
+ private MultipartFile image = null;
+
+ private ProductImage productImage = null;
+
+ @NotEmpty
+ private String productPrice = "0";
+
+ private String dateAvailable;
+
+ private ProductDescription description = null;
+
+ public String getDateAvailable() {
+ return dateAvailable;
+ }
+ public void setDateAvailable(String dateAvailable) {
+ this.dateAvailable = dateAvailable;
+ }
+ public com.salesmanager.core.business.catalog.product.model.Product getProduct() {
+ return product;
+ }
+ public void setProduct(com.salesmanager.core.business.catalog.product.model.Product product) {
+ this.product = product;
+ }
+
+ public List<ProductDescription> getDescriptions() {
+ return descriptions;
+ }
+ public void setDescriptions(List<ProductDescription> descriptions) {
+ this.descriptions = descriptions;
+ }
+ public void setAvailability(ProductAvailability availability) {
+ this.availability = availability;
+ }
+ public ProductAvailability getAvailability() {
+ return availability;
+ }
+ public void setPrice(ProductPrice price) {
+ this.price = price;
+ }
+ public ProductPrice getPrice() {
+ return price;
+ }
+ public MultipartFile getImage() {
+ return image;
+ }
+ public void setImage(MultipartFile image) {
+ this.image = image;
+ }
+
+ public void setProductPrice(String productPrice) {
+ this.productPrice = productPrice;
+ }
+ public String getProductPrice() {
+ return productPrice;
+ }
+ public void setProductImage(ProductImage productImage) {
+ this.productImage = productImage;
+ }
+ public ProductImage getProductImage() {
+ return productImage;
+ }
+ public void setDescription(ProductDescription description) {
+ this.description = description;
+ }
+ public ProductDescription getDescription() {
+ return description;
+ }
+
+
+
+
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/model/catalog/ProductPrice.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/model/catalog/ProductPrice.java
new file mode 100644
index 0000000..fc828bb
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/model/catalog/ProductPrice.java
@@ -0,0 +1,83 @@
+package com.salesmanager.web.admin.entity.catalog;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.validation.Valid;
+
+import com.salesmanager.core.business.catalog.product.model.availability.ProductAvailability;
+import com.salesmanager.core.business.catalog.product.model.price.ProductPriceDescription;
+
+public class ProductPrice {
+
+ @Valid
+ private com.salesmanager.core.business.catalog.product.model.price.ProductPrice price = null;
+ @Valid
+ private List <ProductPriceDescription> descriptions = new ArrayList<ProductPriceDescription>();
+ private String priceText;
+ private String specialPriceText;
+ private ProductAvailability productAvailability;
+
+
+ //cannot convert in this object to date ??? needs to use a string, parse, bla bla
+ private String productPriceSpecialStartDate;
+ private String productPriceSpecialEndDate;
+
+ private com.salesmanager.core.business.catalog.product.model.Product product;
+
+
+
+
+
+ public List <ProductPriceDescription> getDescriptions() {
+ return descriptions;
+ }
+ public void setDescriptions(List <ProductPriceDescription> descriptions) {
+ this.descriptions = descriptions;
+ }
+ public ProductAvailability getProductAvailability() {
+ return productAvailability;
+ }
+ public void setProductAvailability(ProductAvailability productAvailability) {
+ this.productAvailability = productAvailability;
+ }
+ public String getPriceText() {
+ return priceText;
+ }
+ public void setPriceText(String priceText) {
+ this.priceText = priceText;
+ }
+ public com.salesmanager.core.business.catalog.product.model.price.ProductPrice getPrice() {
+ return price;
+ }
+ public void setPrice(com.salesmanager.core.business.catalog.product.model.price.ProductPrice price) {
+ this.price = price;
+ }
+ public String getSpecialPriceText() {
+ return specialPriceText;
+ }
+ public void setSpecialPriceText(String specialPriceText) {
+ this.specialPriceText = specialPriceText;
+ }
+
+ public com.salesmanager.core.business.catalog.product.model.Product getProduct() {
+ return product;
+ }
+ public void setProduct(com.salesmanager.core.business.catalog.product.model.Product product) {
+ this.product = product;
+ }
+ public String getProductPriceSpecialStartDate() {
+ return productPriceSpecialStartDate;
+ }
+ public void setProductPriceSpecialStartDate(
+ String productPriceSpecialStartDate) {
+ this.productPriceSpecialStartDate = productPriceSpecialStartDate;
+ }
+ public String getProductPriceSpecialEndDate() {
+ return productPriceSpecialEndDate;
+ }
+ public void setProductPriceSpecialEndDate(String productPriceSpecialEndDate) {
+ this.productPriceSpecialEndDate = productPriceSpecialEndDate;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/model/content/ContentFiles.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/model/content/ContentFiles.java
new file mode 100644
index 0000000..240f2aa
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/model/content/ContentFiles.java
@@ -0,0 +1,57 @@
+/**
+ *
+ */
+package com.salesmanager.web.admin.entity.content;
+
+import java.io.Serializable;
+import java.util.List;
+
+import javax.validation.Valid;
+
+import org.hibernate.validator.constraints.NotEmpty;
+import org.springframework.web.multipart.MultipartFile;
+
+/**
+ * A bean class responsible for getting form data from shop Admin for uploading
+ * content files for a given merchant and validating the provided data.
+ *
+ * This will work as a wrapper for underlying cache where these content images will be stored
+ * and retrieved in future.
+ *
+ * @author Umesh Awasthi
+ * @since 1.2
+ *
+ */
+public class ContentFiles implements Serializable
+{
+
+ private static final long serialVersionUID = 1L;
+
+
+ private List<MultipartFile> file;
+ public void setFile(List<MultipartFile> file) {
+ this.file = file;
+ }
+
+ private String fileName;
+
+ @NotEmpty(message="{merchant.files.invalid}")
+ @Valid
+ public List<MultipartFile> getFile()
+ {
+ return file;
+ }
+
+ public void setFileName(String fileName) {
+ this.fileName = fileName;
+ }
+
+ public String getFileName() {
+ return fileName;
+ }
+
+
+
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/model/content/ProductImages.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/model/content/ProductImages.java
new file mode 100644
index 0000000..c6393f1
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/model/content/ProductImages.java
@@ -0,0 +1,19 @@
+package com.salesmanager.web.admin.entity.content;
+
+public class ProductImages extends ContentFiles {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 7732719188032287938L;
+ private long productId;
+
+ public long getProductId() {
+ return productId;
+ }
+
+ public void setProductId(long productId) {
+ this.productId = productId;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/model/customer/attribute/CustomerAttributes.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/model/customer/attribute/CustomerAttributes.java
new file mode 100644
index 0000000..fc8b481
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/model/customer/attribute/CustomerAttributes.java
@@ -0,0 +1,18 @@
+package com.salesmanager.web.admin.entity.customer.attribute;
+
+import java.util.List;
+
+
+public class CustomerAttributes {
+
+ private List<CustomerOption> customerOptions;
+
+ public List<CustomerOption> getCustomerOptions() {
+ return customerOptions;
+ }
+
+ public void setCustomerOptions(List<CustomerOption> customerOptions) {
+ this.customerOptions = customerOptions;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/model/customer/attribute/CustomerOption.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/model/customer/attribute/CustomerOption.java
new file mode 100644
index 0000000..ebf45ae
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/model/customer/attribute/CustomerOption.java
@@ -0,0 +1,70 @@
+package com.salesmanager.web.admin.entity.customer.attribute;
+
+import java.io.Serializable;
+import java.util.List;
+
+import com.salesmanager.web.entity.ShopEntity;
+
+public class CustomerOption extends ShopEntity implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private String type;
+ private String name;
+
+ //private List<long> values;
+ //private String value;
+ //private long idValue;
+
+
+
+ private CustomerOptionValue defaultValue;
+
+
+ private List<CustomerOptionValue> availableValues;
+
+
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public CustomerOptionValue getDefaultValue() {
+ return defaultValue;
+ }
+
+ public void setDefaultValue(CustomerOptionValue defaultValue) {
+ this.defaultValue = defaultValue;
+ }
+
+ public List<CustomerOptionValue> getAvailableValues() {
+ return availableValues;
+ }
+
+ public void setAvailableValues(List<CustomerOptionValue> availableValues) {
+ this.availableValues = availableValues;
+ }
+
+
+
+
+
+
+
+
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/model/customer/attribute/CustomerOptionValue.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/model/customer/attribute/CustomerOptionValue.java
new file mode 100644
index 0000000..c682f4e
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/model/customer/attribute/CustomerOptionValue.java
@@ -0,0 +1,22 @@
+package com.salesmanager.web.admin.entity.customer.attribute;
+
+import java.io.Serializable;
+
+import com.salesmanager.web.entity.ShopEntity;
+
+public class CustomerOptionValue extends ShopEntity implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private String name;
+
+ public String getName() {
+ return name;
+ }
+ public void setName(String name) {
+ this.name = name;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/model/digital/ProductFiles.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/model/digital/ProductFiles.java
new file mode 100644
index 0000000..b813be0
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/model/digital/ProductFiles.java
@@ -0,0 +1,71 @@
+/**
+ *
+ */
+package com.salesmanager.web.admin.entity.digital;
+
+import java.io.Serializable;
+import java.util.List;
+
+import javax.validation.Valid;
+
+import org.hibernate.validator.constraints.NotEmpty;
+import org.springframework.web.multipart.MultipartFile;
+
+import com.salesmanager.core.business.catalog.product.model.Product;
+import com.salesmanager.core.business.catalog.product.model.file.DigitalProduct;
+
+/**
+ * A bean class responsible for getting form data from shop Admin for uploading
+ * product files for a given product and validating the provided data.
+ *
+ * This will work as a wrapper for underlying cache where these content images will be stored
+ * and retrieved in future.
+ *
+ * @author Carl Samson
+ * @since 1.2
+ *
+ */
+public class ProductFiles implements Serializable
+{
+
+ private static final long serialVersionUID = 1L;
+
+
+ private List<MultipartFile> file;
+ private DigitalProduct digitalProduct;
+ private Product product;
+
+ @NotEmpty(message="{product.files.invalid}")
+ @Valid
+ public List<MultipartFile> getFile()
+ {
+ return file;
+ }
+
+ public void setFile( final List<MultipartFile> file )
+ {
+ this.file = file;
+ }
+
+
+
+ public Product getProduct() {
+ return product;
+ }
+
+ public void setProduct(Product product) {
+ this.product = product;
+ }
+
+ public void setDigitalProduct(DigitalProduct digitalProduct) {
+ this.digitalProduct = digitalProduct;
+ }
+
+ public DigitalProduct getDigitalProduct() {
+ return digitalProduct;
+ }
+
+
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/model/merchant/StoreLanding.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/model/merchant/StoreLanding.java
new file mode 100644
index 0000000..803fed1
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/model/merchant/StoreLanding.java
@@ -0,0 +1,21 @@
+package com.salesmanager.web.admin.entity.merchant;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.validation.Valid;
+
+public class StoreLanding {
+
+ @Valid
+ private List<StoreLandingDescription> descriptions = new ArrayList<StoreLandingDescription>();
+
+ public void setDescriptions(List<StoreLandingDescription> descriptions) {
+ this.descriptions = descriptions;
+ }
+
+ public List<StoreLandingDescription> getDescriptions() {
+ return descriptions;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/model/merchant/StoreLandingDescription.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/model/merchant/StoreLandingDescription.java
new file mode 100644
index 0000000..f738285
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/model/merchant/StoreLandingDescription.java
@@ -0,0 +1,65 @@
+package com.salesmanager.web.admin.entity.merchant;
+
+import java.io.Serializable;
+
+import com.salesmanager.core.business.reference.language.model.Language;
+
+public class StoreLandingDescription implements Serializable {
+
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private String title;
+ private String description;
+ private String keywords;
+ private String homePageContent;
+
+
+ private Language language;
+
+
+
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setHomePageContent(String homePageContent) {
+ this.homePageContent = homePageContent;
+ }
+
+ public String getHomePageContent() {
+ return homePageContent;
+ }
+
+ public void setKeywords(String keywords) {
+ this.keywords = keywords;
+ }
+
+ public String getKeywords() {
+ return keywords;
+ }
+
+ public void setTitle(String title) {
+ this.title = title;
+ }
+
+ public String getTitle() {
+ return title;
+ }
+
+ public void setLanguage(Language language) {
+ this.language = language;
+ }
+
+ public Language getLanguage() {
+ return language;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/model/orders/Order.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/model/orders/Order.java
new file mode 100644
index 0000000..ee2f596
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/model/orders/Order.java
@@ -0,0 +1,98 @@
+package com.salesmanager.web.admin.entity.orders;
+
+import java.io.Serializable;
+import java.util.Arrays;
+import java.util.List;
+
+import javax.persistence.Embedded;
+
+import com.salesmanager.core.business.common.model.Billing;
+import com.salesmanager.core.business.common.model.Delivery;
+
+import com.salesmanager.core.business.order.model.orderstatus.OrderStatus;
+
+
+public class Order implements Serializable {
+
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private Long Id;
+ private String orderHistoryComment = "";
+
+ List<OrderStatus> orderStatusList = Arrays.asList(OrderStatus.values());
+ private String datePurchased = "";
+ private com.salesmanager.core.business.order.model.Order order;
+
+ @Embedded
+ private com.salesmanager.core.business.common.model.Delivery delivery = null;
+
+ @Embedded
+ private com.salesmanager.core.business.common.model.Billing billing = null;
+
+
+
+
+ public String getDatePurchased() {
+ return datePurchased;
+ }
+
+ public void setDatePurchased(String datePurchased) {
+ this.datePurchased = datePurchased;
+ }
+
+ public Long getId() {
+ return Id;
+ }
+
+ public void setId(Long id) {
+ Id = id;
+ }
+
+ public String getOrderHistoryComment() {
+ return orderHistoryComment;
+ }
+
+ public void setOrderHistoryComment(String orderHistoryComment) {
+ this.orderHistoryComment = orderHistoryComment;
+ }
+
+ public List<OrderStatus> getOrderStatusList() {
+ return orderStatusList;
+ }
+
+ public void setOrderStatusList(List<OrderStatus> orderStatusList) {
+ this.orderStatusList = orderStatusList;
+ }
+
+ public com.salesmanager.core.business.order.model.Order getOrder() {
+ return order;
+ }
+
+ public void setOrder(com.salesmanager.core.business.order.model.Order order) {
+ this.order = order;
+ }
+
+ public Delivery getDelivery() {
+ return delivery;
+ }
+
+ public void setDelivery(Delivery delivery) {
+ this.delivery = delivery;
+ }
+
+ public Billing getBilling() {
+ return billing;
+ }
+
+ public void setBilling(Billing billing) {
+ this.billing = billing;
+ }
+
+
+
+
+
+}
\ No newline at end of file
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/model/orders/Refund.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/model/orders/Refund.java
new file mode 100644
index 0000000..b0e2d0e
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/model/orders/Refund.java
@@ -0,0 +1,26 @@
+package com.salesmanager.web.admin.entity.orders;
+
+import java.io.Serializable;
+
+public class Refund implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 2392736671094915447L;
+ private Long orderId;
+ private String amount;
+ public Long getOrderId() {
+ return orderId;
+ }
+ public void setOrderId(Long orderId) {
+ this.orderId = orderId;
+ }
+ public String getAmount() {
+ return amount;
+ }
+ public void setAmount(String amount) {
+ this.amount = amount;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/model/reference/Size.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/model/reference/Size.java
new file mode 100644
index 0000000..c9628d6
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/model/reference/Size.java
@@ -0,0 +1,32 @@
+package com.salesmanager.web.admin.entity.reference;
+
+import java.io.Serializable;
+
+public class Size implements Serializable {
+
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = -4737272153685816396L;
+ private String code;
+ private String name;
+ public String getCode() {
+ return code;
+ }
+ public void setCode(String code) {
+ this.code = code;
+ }
+ public String getName() {
+ return name;
+ }
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public Size(String code, String name) {
+ this.code = code;
+ this.name = name;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/model/reference/Weight.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/model/reference/Weight.java
new file mode 100644
index 0000000..495f642
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/model/reference/Weight.java
@@ -0,0 +1,31 @@
+package com.salesmanager.web.admin.entity.reference;
+
+import java.io.Serializable;
+
+public class Weight implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = -1006772612089740285L;
+ private String code;
+ private String name;
+ public String getName() {
+ return name;
+ }
+ public void setName(String name) {
+ this.name = name;
+ }
+ public String getCode() {
+ return code;
+ }
+ public void setCode(String code) {
+ this.code = code;
+ }
+
+ public Weight(String code, String name) {
+ this.code = code;
+ this.name = name;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/model/secutity/Password.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/model/secutity/Password.java
new file mode 100644
index 0000000..4947df3
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/model/secutity/Password.java
@@ -0,0 +1,59 @@
+package com.salesmanager.web.admin.entity.secutity;
+
+import java.io.Serializable;
+
+import com.salesmanager.core.business.user.model.User;
+
+/**
+ * Entity used in the cahange passord page
+ * @author csamson777
+ *
+ */
+public class Password implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private String password;
+ private String newPassword;
+ private String repeatPassword;
+
+ private User user;
+
+
+
+ public String getPassword() {
+ return password;
+ }
+
+ public void setPassword(String password) {
+ this.password = password;
+ }
+
+ public String getNewPassword() {
+ return newPassword;
+ }
+
+ public void setNewPassword(String newPassword) {
+ this.newPassword = newPassword;
+ }
+
+ public String getRepeatPassword() {
+ return repeatPassword;
+ }
+
+ public void setRepeatPassword(String repeatPassword) {
+ this.repeatPassword = repeatPassword;
+ }
+
+ public User getUser() {
+ return user;
+ }
+
+ public void setUser(User user) {
+ this.user = user;
+ }
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/model/userpassword/UserReset.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/model/userpassword/UserReset.java
new file mode 100644
index 0000000..2cef668
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/model/userpassword/UserReset.java
@@ -0,0 +1,47 @@
+package com.salesmanager.web.admin.entity.userpassword;
+
+import java.util.Random;
+
+
+public class UserReset
+{
+ final static String CHAR_LIST_WITHNUM = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
+ final static String CHAR_LIST = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-";
+
+ final static int RANDOM_STRING_LENGTH = 10;
+
+ public static String generateRandomString()
+ {
+ StringBuilder randStr = new StringBuilder();
+ for (int i = 0; i < RANDOM_STRING_LENGTH; i++) {
+ int number = getRandomNumber();
+ char ch = CHAR_LIST_WITHNUM.charAt(number);
+ randStr.append(ch);
+ }
+ return randStr.toString();
+ }
+
+ public static String generateRandomString(int length)
+ {
+ StringBuilder randStr = new StringBuilder();
+ for (int i = 0; i < length; i++) {
+ int number = getRandomNumber();
+ char ch = CHAR_LIST.charAt(number);
+ randStr.append(ch);
+ }
+ return randStr.toString();
+ }
+
+ private static int getRandomNumber()
+ {
+ int randomInt = 0;
+ Random randomGenerator = new Random();
+ randomInt = randomGenerator.nextInt(CHAR_LIST.length());
+ if (randomInt - 1 == -1) {
+ return randomInt;
+ }
+ return randomInt - 1;
+ }
+
+
+}
\ No newline at end of file
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/model/web/ConfigListWrapper.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/model/web/ConfigListWrapper.java
new file mode 100644
index 0000000..49d0e29
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/model/web/ConfigListWrapper.java
@@ -0,0 +1,23 @@
+package com.salesmanager.shop.admin.model.web;
+
+import java.util.List;
+
+import com.salesmanager.core.model.system.MerchantConfiguration;
+
+
+
+public class ConfigListWrapper
+{
+ private List<MerchantConfiguration> merchantConfigs;
+
+ public List<MerchantConfiguration> getMerchantConfigs()
+ {
+ return merchantConfigs;
+ }
+
+ public void setMerchantConfigs(List<MerchantConfiguration> merchantConfigs)
+ {
+ this.merchantConfigs = merchantConfigs;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/model/web/Menu.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/model/web/Menu.java
new file mode 100644
index 0000000..fe3f863
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/model/web/Menu.java
@@ -0,0 +1,66 @@
+package com.salesmanager.web.admin.entity.web;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.codehaus.jackson.annotate.JsonProperty;
+
+public class Menu implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private String code;
+ private String url;
+ private String icon;
+ private String role;
+ private int order;
+ private List<Menu> menus = new ArrayList<Menu>();
+ public String getCode() {
+ return code;
+ }
+ @JsonProperty("code")
+ public void setCode(String code) {
+ this.code = code;
+ }
+ public String getUrl() {
+ return url;
+ }
+ @JsonProperty("url")
+ public void setUrl(String url) {
+ this.url = url;
+ }
+
+
+
+ public int getOrder() {
+ return order;
+ }
+ @JsonProperty("order")
+ public void setOrder(int order) {
+ this.order = order;
+ }
+ public List<Menu> getMenus() {
+ return menus;
+ }
+ @JsonProperty("menus")
+ public void setMenus(List<Menu> menus) {
+ this.menus = menus;
+ }
+ public void setIcon(String icon) {
+ this.icon = icon;
+ }
+ public String getIcon() {
+ return icon;
+ }
+ public String getRole() {
+ return role;
+ }
+ @JsonProperty("role")
+ public void setRole(String role) {
+ this.role = role;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/security/SecurityDataAccessException.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/security/SecurityDataAccessException.java
new file mode 100644
index 0000000..df64b57
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/security/SecurityDataAccessException.java
@@ -0,0 +1,20 @@
+package com.salesmanager.web.admin.security;
+
+import org.springframework.dao.DataAccessException;
+
+public class SecurityDataAccessException extends DataAccessException {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+ public SecurityDataAccessException(String msg) {
+ super(msg);
+ }
+
+ public SecurityDataAccessException(String msg, Exception e) {
+ super(msg,e);
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/security/SecurityQuestion.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/security/SecurityQuestion.java
new file mode 100644
index 0000000..7968c35
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/security/SecurityQuestion.java
@@ -0,0 +1,26 @@
+package com.salesmanager.web.admin.security;
+
+import java.io.Serializable;
+
+public class SecurityQuestion implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private String id;
+ private String label;
+ public void setLabel(String label) {
+ this.label = label;
+ }
+ public String getLabel() {
+ return label;
+ }
+ public void setId(String id) {
+ this.id = id;
+ }
+ public String getId() {
+ return id;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/security/UserAuthenticationSuccessHandler.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/security/UserAuthenticationSuccessHandler.java
new file mode 100644
index 0000000..16863cd
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/security/UserAuthenticationSuccessHandler.java
@@ -0,0 +1,48 @@
+package com.salesmanager.web.admin.security;
+
+import java.util.Date;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.core.Authentication;
+import org.springframework.security.web.authentication.SavedRequestAwareAuthenticationSuccessHandler;
+
+import com.salesmanager.core.business.user.model.User;
+import com.salesmanager.core.business.user.service.UserService;
+
+public class UserAuthenticationSuccessHandler extends
+ SavedRequestAwareAuthenticationSuccessHandler {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(UserAuthenticationSuccessHandler.class);
+
+ @Inject
+ private UserService userService;
+
+ @Override
+ public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) {
+ // last access timestamp
+ String userName = authentication.getName();
+
+ try {
+ User user = userService.getByUserName(userName);
+
+ Date lastAccess = user.getLoginTime();
+ if(lastAccess==null) {
+ lastAccess = new Date();
+ }
+ user.setLastAccess(lastAccess);
+ user.setLoginTime(new Date());
+
+ userService.saveOrUpdate(user);
+
+ response.sendRedirect(request.getContextPath() + "/admin/home.html");
+ } catch (Exception e) {
+ LOGGER.error("User authenticationSuccess",e);
+ }
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/security/UserServicesImpl.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/security/UserServicesImpl.java
new file mode 100644
index 0000000..1567a42
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/security/UserServicesImpl.java
@@ -0,0 +1,140 @@
+package com.salesmanager.web.admin.security;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.dao.DataAccessException;
+import org.springframework.security.authentication.encoding.PasswordEncoder;
+import org.springframework.security.core.GrantedAuthority;
+import org.springframework.security.core.authority.GrantedAuthorityImpl;
+import org.springframework.security.core.userdetails.User;
+import org.springframework.security.core.userdetails.UserDetails;
+import org.springframework.security.core.userdetails.UsernameNotFoundException;
+import org.springframework.stereotype.Service;
+
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.merchant.service.MerchantStoreService;
+import com.salesmanager.core.business.user.model.Group;
+import com.salesmanager.core.business.user.model.GroupType;
+import com.salesmanager.core.business.user.model.Permission;
+import com.salesmanager.core.business.user.service.GroupService;
+import com.salesmanager.core.business.user.service.PermissionService;
+import com.salesmanager.core.business.user.service.UserService;
+import com.salesmanager.web.constants.Constants;
+
+
+/**
+ *
+ * @author casams1
+ * http://stackoverflow.com/questions/5105776/spring-security-with
+ * -custom-user-details
+ */
+@Service("userDetailsService")
+public class UserServicesImpl implements WebUserServices{
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(UserServicesImpl.class);
+
+ @Inject
+ private UserService userService;
+
+
+ @Inject
+ private MerchantStoreService merchantStoreService;
+
+ @Inject
+ private PasswordEncoder passwordEncoder;
+
+
+
+ @Inject
+ protected PermissionService permissionService;
+
+ @Inject
+ protected GroupService groupService;
+
+
+
+ @SuppressWarnings("deprecation")
+ public UserDetails loadUserByUsername(String userName)
+ throws UsernameNotFoundException, DataAccessException {
+
+ com.salesmanager.core.business.user.model.User user = null;
+ Collection<GrantedAuthority> authorities = new ArrayList<GrantedAuthority>();
+
+ try {
+
+ user = userService.getByUserName(userName);
+
+ if(user==null) {
+ return null;
+ }
+
+ GrantedAuthority role = new GrantedAuthorityImpl(Constants.PERMISSION_AUTHENTICATED);//required to login
+ authorities.add(role);
+
+ List<Integer> groupsId = new ArrayList<Integer>();
+ List<Group> groups = user.getGroups();
+ for(Group group : groups) {
+
+
+ groupsId.add(group.getId());
+
+ }
+
+
+
+ List<Permission> permissions = permissionService.getPermissions(groupsId);
+ for(Permission permission : permissions) {
+ GrantedAuthority auth = new GrantedAuthorityImpl(permission.getPermissionName());
+ authorities.add(auth);
+ }
+
+ } catch (Exception e) {
+ LOGGER.error("Exception while querrying user",e);
+ throw new SecurityDataAccessException("Exception while querrying user",e);
+ }
+
+
+
+
+
+ User secUser = new User(userName, user.getAdminPassword(), user.isActive(), true,
+ true, true, authorities);
+ return secUser;
+ }
+
+
+ public void createDefaultAdmin() throws Exception {
+
+ //TODO create all groups and permissions
+
+ MerchantStore store = merchantStoreService.getMerchantStore(MerchantStore.DEFAULT_STORE);
+
+ String password = passwordEncoder.encodePassword("password", null);
+
+ List<Group> groups = groupService.listGroup(GroupType.ADMIN);
+
+ //creation of the super admin admin:password)
+ com.salesmanager.core.business.user.model.User user = new com.salesmanager.core.business.user.model.User("admin",password,"admin@shopizer.com");
+ user.setFirstName("Administrator");
+ user.setLastName("User");
+
+ for(Group group : groups) {
+ if(group.getGroupName().equals(Constants.GROUP_SUPERADMIN) || group.getGroupName().equals(Constants.GROUP_ADMIN)) {
+ user.getGroups().add(group);
+ }
+ }
+
+ user.setMerchantStore(store);
+ userService.create(user);
+
+
+ }
+
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/security/WebUserServices.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/security/WebUserServices.java
new file mode 100644
index 0000000..81f738f
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/security/WebUserServices.java
@@ -0,0 +1,9 @@
+package com.salesmanager.web.admin.security;
+
+import org.springframework.security.core.userdetails.UserDetailsService;
+
+public interface WebUserServices extends UserDetailsService{
+
+ void createDefaultAdmin() throws Exception;
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/constants/ApplicationConstants.java b/sm-shop/src/main/java/com/salesmanager/shop/constants/ApplicationConstants.java
new file mode 100644
index 0000000..9295bfc
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/constants/ApplicationConstants.java
@@ -0,0 +1,13 @@
+package com.salesmanager.web.constants;
+
+public class ApplicationConstants {
+
+ public final static String POPULATE_TEST_DATA = "POPULATE_TEST_DATA";
+ public final static String TEST_DATA_LOADED = "TEST_DATA_LOADED";
+ public final static String RECAPTCHA_URL = "shopizer.recapatcha_url";
+ public final static String RECAPTCHA_PRIVATE_KEY = "shopizer.recapatcha_private_key";
+ public final static String RECAPTCHA_PUBLIC_KEY = "shopizer.recapatcha_public_key";
+ public final static String SHOP_SCHEME= "SHOP_SCHEME";
+ public final static int MAX_DOWNLOAD_DAYS = 30;
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/constants/Constants.java b/sm-shop/src/main/java/com/salesmanager/shop/constants/Constants.java
new file mode 100644
index 0000000..16cee25
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/constants/Constants.java
@@ -0,0 +1,123 @@
+package com.salesmanager.web.constants;
+
+public class Constants {
+
+ public final static String SLASH = "/";
+ public final static String BLANK = "";
+ public final static String EQUALS = "=";
+
+ public final static String RESPONSE_STATUS = "STATUS";
+ public final static String RESPONSE_SUCCESS = "SUCCESS";
+ public final static String DEFAULT_LANGUAGE = "en";
+ public final static String LANGUAGE = "LANGUAGE";
+ public final static String LANG = "lang";
+ public final static String BREADCRUMB = "BREADCRUMB";
+
+ public final static String HOME_MENU_KEY = "menu.home";
+ public final static String HOME_URL = "/shop";
+ public final static String ADMIN_URI = "/admin";
+ public final static String SHOP_URI = "/shop";
+ public final static String SHOP = "shop";
+ public final static String REF = "ref";
+ public final static String REF_C = "c:";
+ public final static String REF_SPLITTER = ":";
+
+ public final static String FILE_NOT_FOUND = "File not found";
+
+
+
+ public final static String DEFAULT_DOMAIN_NAME = "localhost:8080";
+
+ public final static String ADMIN_STORE = "ADMIN_STORE";
+ public final static String ADMIN_USER = "ADMIN_USER";
+ public final static String MERCHANT_STORE = "MERCHANT_STORE";
+ public final static String SHOPPING_CART = "SHOPPING_CART";
+ public final static String CUSTOMER = "CUSTOMER";
+ public final static String ORDER = "ORDER";
+ public final static String ORDER_ID = "ORDER_ID";
+ public final static String ORDER_ID_TOKEN = "ORDER_ID_TOKEN";
+ public final static String SHIPPING_SUMMARY = "SHIPPING_SUMMARY";
+ public final static String SHIPPING_OPTIONS = "SHIPPING_OPTIONS";
+ public final static String ORDER_SUMMARY = "ORDER_SIMMARY";
+
+
+ public final static String GROUP_ADMIN = "ADMIN";
+ public final static String PERMISSION_AUTHENTICATED = "AUTH";
+ public final static String PERMISSION_CUSTOMER_AUTHENTICATED = "AUTH_CUSTOMER";
+ public final static String GROUP_SUPERADMIN = "SUPERADMIN";
+ public final static String GROUP_CUSTOMER = "CUSTOMER";
+ public final static String ANONYMOUS_CUSTOMER = "ANONYMOUS_CUSTOMER";
+
+
+ public final static String CONTENT_IMAGE = "CONTENT";
+ public final static String CONTENT_LANDING_PAGE = "LANDING_PAGE";
+ public final static String CONTENT_CONTACT_US = "contact";
+
+ public final static String STATIC_URI = "/static";
+ public final static String FILES_URI = "/files";
+ public final static String PRODUCT_URI= "/product";
+ public final static String CATEGORY_URI = "/category";
+ public final static String PRODUCT_ID_URI= "/productid";
+ public final static String ORDER_DOWNLOAD_URI= "/order/download";
+
+ public final static String URL_EXTENSION= ".html";
+ public final static String REDIRECT_PREFIX ="redirect:";
+
+
+
+
+ public final static String STORE_CONFIGURATION = "STORECONFIGURATION";
+
+ public final static String HTTP_SCHEME= "http";
+
+ public final static String SHOP_SCHEME = "SHOP_SCHEME";
+ public final static String FACEBOOK_APP_ID = "shopizer.facebook-appid";
+
+ public final static String MISSED_CACHE_KEY = "MISSED";
+ public final static String CONTENT_CACHE_KEY = "CONTENT";
+ public final static String CONTENT_PAGE_CACHE_KEY = "CONTENT_PAGE";
+ public final static String CATEGORIES_CACHE_KEY = "CATALOG_CATEGORIES";
+ public final static String PRODUCTS_GROUP_CACHE_KEY = "CATALOG_GROUP";
+ public final static String SUBCATEGORIES_CACHE_KEY = "CATALOG_SUBCATEGORIES";
+ public final static String RELATEDITEMS_CACHE_KEY = "CATALOG_RELATEDITEMS";
+ public final static String MANUFACTURERS_BY_PRODUCTS_CACHE_KEY = "CATALOG_BRANDS_BY_PRODUCTS";
+ public final static String CONFIG_CACHE_KEY = "CONFIG";
+
+ public final static String REQUEST_CONTENT_OBJECTS = "CONTENT";
+ public final static String REQUEST_CONTENT_PAGE_OBJECTS = "CONTENT_PAGE";
+ public final static String REQUEST_TOP_CATEGORIES = "TOP_CATEGORIES";
+ public final static String REQUEST_PAGE_INFORMATION = "PAGE_INFORMATION";
+ public final static String REQUEST_SHOPPING_CART = "SHOPPING_CART";
+ public final static String REQUEST_CONFIGS = "CONFIGS";
+
+ public final static String KEY_FACEBOOK_PAGE_URL = "facebook_page_url";
+ public final static String KEY_PINTEREST_PAGE_URL = "pinterest";
+ public final static String KEY_GOOGLE_ANALYTICS_URL = "google_analytics_url";
+ public final static String KEY_INSTAGRAM_URL = "instagram";
+ public final static String KEY_GOOGLE_API_KEY = "google_api_key";
+ public final static String KEY_TWITTER_HANDLE = "twitter_handle";
+ public final static String KEY_SESSION_ADDRESS = "readableDelivery";
+
+ public final static String CATEGORY_LINEAGE_DELIMITER = "/";
+ public final static int MAX_REVIEW_RATING_SCORE = 5;
+ public final static int MAX_ORDERS_PAGE = 5;
+ public final static String SUCCESS = "success";
+ public final static String CANCEL = "cancel";
+
+ public final static String START = "start";
+ public final static String MAX = "max";
+
+ public final static String CREDIT_CARD_YEARS_CACHE_KEY = "CREDIT_CARD_YEARS_CACHE_KEY";
+ public final static String MONTHS_OF_YEAR_CACHE_KEY = "MONTHS_OF_YEAR_CACHE_KEY";
+
+ public final static String INIT_TRANSACTION_KEY = "init_transaction";
+
+ public final static String LINK_CODE = "LINK_CODE";
+
+ public final static String COOKIE_NAME_USER = "user";
+ public final static String COOKIE_NAME_CART = "cart";
+ public final static String RESPONSE_KEY_USERNAME = "userName";
+
+ public final static String DEBUG_MODE = "debugMode";
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/constants/EmailConstants.java b/sm-shop/src/main/java/com/salesmanager/shop/constants/EmailConstants.java
new file mode 100644
index 0000000..fa60f3b
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/constants/EmailConstants.java
@@ -0,0 +1,88 @@
+package com.salesmanager.web.constants;
+
+public class EmailConstants {
+
+ public static final String EMAIL_NEW_USER_TEXT = "EMAIL_NEW_USER_TEXT";
+ public static final String EMAIL_USER_FIRSTNAME = "EMAIL_USER_FIRSTNAME";
+ public static final String EMAIL_USER_LASTNAME = "EMAIL_USER_LASTNAME";
+ public static final String EMAIL_ADMIN_USERNAME_LABEL = "EMAIL_ADMIN_USERNAME_LABEL";
+ public static final String EMAIL_ADMIN_NAME = "EMAIL_ADMIN_NAME";
+ public static final String EMAIL_TEXT_NEW_USER_CREATED = "EMAIL_TEXT_NEW_USER_CREATED";
+ public static final String EMAIL_ADMIN_PASSWORD_LABEL = "EMAIL_ADMIN_PASSWORD_LABEL";
+ public static final String EMAIL_ADMIN_PASSWORD = "EMAIL_ADMIN_PASSWORD";
+
+
+ public static final String EMAIL_USERNAME_LABEL = "EMAIL_USERNAME_LABEL";
+ public static final String EMAIL_PASSWORD_LABEL = "EMAIL_PASSWORD_LABEL";
+ public static final String EMAIL_CUSTOMER_PASSWORD = "EMAIL_CUSTOMER_PASSWORD";
+ public static final String EMAIL_CUSTOMER_NAME = "EMAIL_CUSTOMER_NAME";
+ public static final String EMAIL_CUSTOMER_FIRSTNAME = "EMAIL_CUSTOMER_FIRSTNAME";
+ public static final String EMAIL_CUSTOMER_LASTNAME = "EMAIL_CUSTOMER_LASTNAME";
+ public static final String EMAIL_NOTIFICATION_MESSAGE = "EMAIL_NOTIFICATION_MESSAGE";
+ public static final String EMAIL_CUSTOMER_GREETING = "EMAIL_CUSTOMER_GREETING";
+ public static final String EMAIL_RESET_PASSWORD_TXT = "EMAIL_RESET_PASSWORD_TXT";
+ public static final String EMAIL_USER_NAME = "EMAIL_USER_NAME";
+ public static final String EMAIL_USER_PASSWORD = "EMAIL_USER_PASSWORD";
+
+ public static final String EMAIL_TEXT_ORDER_NUMBER = "EMAIL_TEXT_ORDER_NUMBER";
+ public static final String EMAIL_TEXT_DATE_ORDERED = "EMAIL_TEXT_DATE_ORDERED";
+ public static final String EMAIL_TEXT_STATUS_COMMENTS = "EMAIL_TEXT_STATUS_COMMENTS";
+ public static final String EMAIL_TEXT_DATE_UPDATED = "EMAIL_TEXT_DATE_UPDATED";
+ public static final String EMAIL_ORDER_DETAILS_TITLE = "EMAIL_ORDER_DETAILS_TITLE";
+ public static final String ORDER_PRODUCTS_DETAILS = "ORDER_PRODUCTS_DETAILS";
+ public static final String ORDER_TOTALS = "ORDER_TOTALS";
+ public static final String ORDER_STATUS = "ORDER_STATUS";
+ public final static String EMAIL_ORDER_DOWNLOAD = "EMAIL_ORDER_DOWNLOAD";
+
+ public static final String EMAIL_NEW_STORE_TEXT = "EMAIL_NEW_STORE_TEXT";
+ public static final String EMAIL_STORE_NAME = "EMAIL_STORE_NAME";
+ public static final String EMAIL_ADMIN_STORE_INFO_LABEL = "EMAIL_ADMIN_STORE_INFO_LABEL";
+ public static final String EMAIL_ADMIN_USERNAME_TEXT = "EMAIL_ADMIN_USERNAME_TEXT";
+ public static final String EMAIL_ADMIN_PASSWORD_TEXT = "EMAIL_ADMIN_PASSWORD_TEXT";
+
+
+
+ public static final String EMAIL_CONTACT_OWNER = "EMAIL_CONTACT_OWNER";
+ public static final String EMAIL_ADMIN_URL_LABEL = "EMAIL_ADMIN_URL_LABEL";
+ public static final String EMAIL_ADMIN_URL = "EMAIL_ADMIN_URL";
+
+ public static final String EMAIL_ORDER_CONFIRMATION_TITLE ="EMAIL_ORDER_CONFIRMATION_TITLE";
+ public static final String EMAIL_ORDER_NUMBER ="EMAIL_ORDER_NUMBER";
+ public static final String EMAIL_ORDER_DATE ="EMAIL_ORDER_DATE";
+ public static final String EMAIL_ORDER_THANKS ="EMAIL_ORDER_THANKS";
+ public static final String EMAIL_ORDER_STATUS_TEXT ="EMAIL_ORDER_STATUS_TEXT";
+ public static final String EMAIL_ORDER_STATUS ="EMAIL_ORDER_STATUS";
+ public static final String ADDRESS_BILLING_TITLE ="ADDRESS_BILLING_TITLE";
+ public static final String ADDRESS_BILLING ="ADDRESS_BILLING";
+ public static final String ADDRESS_SHIPPING ="ADDRESS_SHIPPING";
+ public static final String ADDRESS_DELIVERY ="ADDRESS_DELIVERY";
+ public static final String ADDRESS_SHIPPING_TITLE ="ADDRESS_SHIPPING_TITLE";
+ public static final String PAYMENT_METHOD_TITLE ="PAYMENT_METHOD_TITLE";
+ public static final String PAYMENT_METHOD_DETAILS ="PAYMENT_METHOD_DETAILS";
+ public static final String SHIPPING_METHOD_DETAILS ="SHIPPING_METHOD_DETAILS";
+ public static final String SHIPPING_METHOD_TITLE ="SHIPPING_METHOD_TITLE";
+ public static final String ADDRESS_DELIVERY_TITLE ="ADDRESS_DELIVERY_TITLE";
+
+ public static final String EMAIL_CUSTOMER_CONTACT ="EMAIL_CUSTOMER_CONTACT";
+ public static final String EMAIL_CONTACT_NAME_LABEL ="EMAIL_CONTACT_NAME_LABEL";
+ public static final String EMAIL_CONTACT_NAME ="EMAIL_CONTACT_NAME";
+ public static final String EMAIL_CONTACT_EMAIL_LABEL ="EMAIL_CONTACT_EMAIL_LABEL";
+ public static final String EMAIL_CONTACT_EMAIL ="EMAIL_CONTACT_EMAIL";
+ public static final String EMAIL_CONTACT_CONTENT ="EMAIL_CONTACT_CONTENT";
+
+
+
+ public final static String LABEL_HI = "LABEL_HI";
+ public final static String CUSTOMER_ACCESS_LABEL = "CUSTOMER_ACCESS_LABEL";
+ public final static String CUSTOMER_ACCESS_URL = "CUSTOMER_ACCESS_URL";
+ public final static String ACCESS_NOW_LABEL = "ACCESS_NOW_LABEL";
+
+ public static final String EMAIL_CUSTOMER_TPL = "email_template_customer.ftl";
+ public static final String EMAIL_ORDER_TPL = "email_template_checkout.ftl";
+ public static final String EMAIL_ORDER_DOWNLOAD_TPL = "email_template_checkout_download.ftl";
+ public static final String ORDER_STATUS_TMPL = "email_template_order_status.ftl";
+ public static final String EMAIL_CONTACT_TMPL = "email_template_contact.ftl";
+ public static final String EMAIL_NOTIFICATION_TMPL = "email_template_notification.ftl";
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/controller/FilesController.java b/sm-shop/src/main/java/com/salesmanager/shop/controller/FilesController.java
new file mode 100644
index 0000000..58f8f74
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/controller/FilesController.java
@@ -0,0 +1,144 @@
+package com.salesmanager.web.files;
+
+import java.io.IOException;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import com.salesmanager.core.business.content.model.FileContentType;
+import com.salesmanager.core.business.content.model.OutputContentFile;
+import com.salesmanager.core.business.content.service.ContentService;
+import com.salesmanager.core.business.generic.exception.ServiceException;
+import com.salesmanager.web.constants.Constants;
+import com.salesmanager.web.shop.controller.AbstractController;
+
+@Controller
+public class FilesController extends AbstractController {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(FilesController.class);
+
+
+
+ @Inject
+ private ContentService contentService;
+
+
+ /**
+ * Serves static files (css, js ...) the repository is a single node by merchant
+ * @param storeCode
+ * @param imageName
+ * @param extension
+ * @return
+ * @throws IOException
+ * @throws ServiceException
+ */
+ @RequestMapping("/files/{storeCode}/{fileName}.{extension}")
+ public @ResponseBody byte[] downloadFile(@PathVariable final String storeCode, @PathVariable final String fileName, @PathVariable final String extension, HttpServletRequest request, HttpServletResponse response) throws IOException, ServiceException {
+
+ // example -> /files/<store code>/myfile.css
+ FileContentType fileType = FileContentType.STATIC_FILE;
+
+ // needs to query the new API
+ OutputContentFile file =contentService.getContentFile(storeCode, fileType, new StringBuilder().append(fileName).append(".").append(extension).toString());
+
+
+ if(file!=null) {
+ return file.getFile().toByteArray();
+ } else {
+ LOGGER.debug("File not found " + fileName + "." + extension);
+ response.sendError(404, Constants.FILE_NOT_FOUND);
+ return null;
+ }
+ }
+
+ /**
+ * Requires admin with roles admin, superadmin or product
+ * @param storeCode
+ * @param fileName
+ * @param extension
+ * @param request
+ * @param response
+ * @return
+ * @throws Exception
+ */
+ @PreAuthorize("hasRole('PRODUCTS')")
+ @RequestMapping("/admin/files/downloads/{storeCode}/{fileName}.{extension}")
+ public @ResponseBody byte[] downloadProduct(@PathVariable final String storeCode, @PathVariable final String fileName, @PathVariable final String extension, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+ FileContentType fileType = FileContentType.PRODUCT_DIGITAL;
+
+ String fileNameAndExtension = new StringBuilder().append(fileName).append(".").append(extension).toString();
+
+ // needs to query the new API
+ OutputContentFile file = contentService.getContentFile(storeCode, fileType, fileNameAndExtension);
+
+
+ if(file!=null) {
+ response.setHeader("Content-Disposition", "attachment; filename=\"" + fileNameAndExtension + "\"");
+ return file.getFile().toByteArray();
+ } else {
+ LOGGER.debug("File not found " + fileName + "." + extension);
+ response.sendError(404, Constants.FILE_NOT_FOUND);
+ return null;
+ }
+ }
+
+
+
+/* *//**
+ * See order controller
+ * Serves product download files
+ * @param storeCode
+ * @param productId
+ * @param fileName
+ * @param extension
+ * @return
+ * @throws IOException
+ *//*
+ @RequestMapping("/files/{storeCode}/{orderId}/{productId}/{fileName}.{extension}")
+ public void downloadProduct(@PathVariable final String storeCode, @PathVariable final Long orderId, @PathVariable final Long productId, @PathVariable final String fileName, @PathVariable final String extension, HttpServletRequest request, HttpServletResponse response) throws IOException {
+
+ // product image
+ // example -> /files/mystore/12345/120/product1.zip
+
+ //TODO role customer, verify the order has the requested product to download
+
+ //Need to query the files CMS for merchant and product ( not the order )
+
+ FileContentType imgType = null;
+
+
+
+ OutputContentFile image = null;
+ //try {
+ //image = productImageService.getProductImage(storeCode, productId, new StringBuilder().append(imageName).append(".").append(extension).toString());
+ //} catch (ServiceException e) {
+ //LOGGER.error("Cannot retrieve image " + imageName, e);
+ //}
+ try {
+ // get your file as InputStream
+ InputStream is = ...;
+ // copy it to response's OutputStream
+ IOUtils.copy(is, response.getOutputStream());
+ response.setContentType("application/pdf");
+ response.setHeader("Content-Disposition", "attachment; filename=somefile.pdf");
+ response.flushBuffer();
+ } catch (IOException ex) {
+ log.info("Error writing file to output stream. Filename was '" + fileName + "'");
+ throw new RuntimeException("IOError writing file to output stream");
+ }
+
+ }
+
+ }*/
+
+}
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
new file mode 100644
index 0000000..aa77d15
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/controller/ImagesController.java
@@ -0,0 +1,111 @@
+package com.salesmanager.web.images;
+
+import java.io.IOException;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import com.salesmanager.core.business.catalog.product.model.file.ProductImageSize;
+import com.salesmanager.core.business.catalog.product.service.image.ProductImageService;
+import com.salesmanager.core.business.content.model.FileContentType;
+import com.salesmanager.core.business.content.model.OutputContentFile;
+import com.salesmanager.core.business.content.service.ContentService;
+import com.salesmanager.core.business.generic.exception.ServiceException;
+
+/**
+ * When handling images and files from the application server
+ * @author c.samson
+ *
+ */
+@Controller
+public class ImagesController {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(ImagesController.class);
+
+
+
+ @Inject
+ private ContentService contentService;
+
+ @Inject
+ private ProductImageService productImageService;
+
+ /**
+ * Logo, content image
+ * @param storeId
+ * @param imageType (LOGO, CONTENT, IMAGE)
+ * @param imageName
+ * @return
+ * @throws IOException
+ * @throws ServiceException
+ */
+ @RequestMapping("/static/{storeCode}/{imageType}/{imageName}.{extension}")
+ public @ResponseBody byte[] printImage(@PathVariable final String storeCode, @PathVariable final String imageType, @PathVariable final String imageName, @PathVariable final String extension) throws IOException, ServiceException {
+
+ // example -> /static/mystore/CONTENT/myImage.png
+
+ FileContentType imgType = null;
+
+ if(FileContentType.LOGO.name().equals(imageType)) {
+ imgType = FileContentType.LOGO;
+ }
+
+ if(FileContentType.IMAGE.name().equals(imageType)) {
+ imgType = FileContentType.IMAGE;
+ }
+
+ if(FileContentType.PROPERTY.name().equals(imageType)) {
+ imgType = FileContentType.PROPERTY;
+ }
+
+ OutputContentFile image =contentService.getContentFile(storeCode, imgType, new StringBuilder().append(imageName).append(".").append(extension).toString());
+
+
+ if(image!=null) {
+ return image.getFile().toByteArray();
+ } else {
+ //empty image placeholder
+ return null;
+ }
+
+ }
+
+
+ @RequestMapping("/static/{storeCode}/{imageType}/{productCode}/{imageName}.{extension}")
+ public @ResponseBody byte[] printImage(@PathVariable final String storeCode, @PathVariable final String productCode, @PathVariable final String imageType, @PathVariable final String imageName, @PathVariable final String extension) throws IOException {
+
+ // product image
+ // example small product image -> /static/1/PRODUCT/120/product1.jpg
+
+ // example large product image -> /static/1/PRODUCTLG/120/product1.jpg
+
+
+ ProductImageSize size = ProductImageSize.SMALL;
+
+ if(imageType.equals(FileContentType.PRODUCTLG.name())) {
+ size = ProductImageSize.LARGE;
+ }
+
+
+
+ OutputContentFile image = null;
+ try {
+ image = productImageService.getProductImage(storeCode, productCode, new StringBuilder().append(imageName).append(".").append(extension).toString(), size);
+ } catch (ServiceException e) {
+ LOGGER.error("Cannot retrieve image " + imageName, e);
+ }
+ if(image!=null) {
+ return image.getFile().toByteArray();
+ } else {
+ //empty image placeholder
+ return null;
+ }
+
+ }
+
+}
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
new file mode 100644
index 0000000..9c4ca26
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/controller/ReferenceController.java
@@ -0,0 +1,257 @@
+package com.salesmanager.web.reference;
+
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.TimeZone;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.lang3.StringUtils;
+import org.codehaus.jackson.map.ObjectMapper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import com.salesmanager.core.business.generic.exception.ServiceException;
+import com.salesmanager.core.business.reference.country.model.Country;
+import com.salesmanager.core.business.reference.country.service.CountryService;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.business.reference.language.service.LanguageService;
+import com.salesmanager.core.business.reference.zone.model.Zone;
+import com.salesmanager.core.business.reference.zone.service.ZoneService;
+import com.salesmanager.core.utils.CacheUtils;
+import com.salesmanager.core.utils.ajax.AjaxResponse;
+import com.salesmanager.web.constants.Constants;
+import com.salesmanager.web.utils.DateUtil;
+import com.salesmanager.web.utils.LanguageUtils;
+import com.salesmanager.web.utils.LocaleUtils;
+
+
+/**
+ * Used for misc reference objects
+ * @author csamson777
+ *
+ */
+@Controller
+public class ReferenceController {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(ReferenceController.class);
+
+ @Inject
+ private ZoneService zoneService;
+
+ @Inject
+ private CountryService countryService;
+
+ @Inject
+ private LanguageService languageService;
+
+ @Inject
+ private CacheUtils cache;
+
+ @Inject
+ private LanguageUtils languageUtils;
+
+
+
+
+ @SuppressWarnings("unchecked")
+ @RequestMapping(value={"/admin/reference/provinces.html","/shop/reference/provinces.html"}, method=RequestMethod.POST, produces="application/json;text/plain;charset=UTF-8")
+ public @ResponseBody String getProvinces(HttpServletRequest request, HttpServletResponse response) {
+
+ String countryCode = request.getParameter("countryCode");
+ String lang = request.getParameter("lang");
+ LOGGER.debug("Province Country Code " + countryCode);
+ AjaxResponse resp = new AjaxResponse();
+
+ try {
+
+ Language language = null;
+
+ if(!StringUtils.isBlank(lang)) {
+ language = languageService.getByCode(lang);
+ }
+
+ if(language==null) {
+ language = (Language)request.getAttribute("LANGUAGE");
+ }
+
+ if(language==null) {
+ language = languageService.getByCode(Constants.DEFAULT_LANGUAGE);
+ }
+
+
+ Map<String,Country> countriesMap = countryService.getCountriesMap(language);
+ Country country = countriesMap.get(countryCode);
+ List<Zone> zones = zoneService.getZones(country, language);
+ if(zones!=null && zones.size()>0) {
+
+
+
+ for(Zone zone : zones) {
+
+ @SuppressWarnings("rawtypes")
+ Map entry = new HashMap();
+ entry.put("name", zone.getName());
+ entry.put("code", zone.getCode());
+ entry.put("id", zone.getId());
+
+ resp.addDataEntry(entry);
+
+ }
+
+
+ }
+
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_SUCCESS);
+
+ } catch (Exception e) {
+ LOGGER.error("GetProvinces()", e);
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ }
+
+
+ String returnString = resp.toJSONString();
+ return returnString;
+
+ }
+
+ @RequestMapping(value="/shop/reference/countryName")
+ public @ResponseBody String countryName(@RequestParam String countryCode, HttpServletRequest request, HttpServletResponse response) {
+
+ try {
+ Language language = languageUtils.getRequestLanguage(request, response);
+ if(language==null) {
+ return countryCode;
+ }
+ Map<String, Country> countriesMap = countryService.getCountriesMap(language);
+ if(countriesMap!=null) {
+ Country c = countriesMap.get(countryCode);
+ if(c!=null) {
+ return c.getName();
+ }
+ }
+
+ } catch (ServiceException e) {
+ LOGGER.error("Error while looking up country " + countryCode);
+ }
+ return countryCode;
+ }
+
+ @RequestMapping(value="/shop/reference/zoneName")
+ public @ResponseBody String zoneName(@RequestParam String zoneCode, HttpServletRequest request, HttpServletResponse response) {
+
+ try {
+ Language language = languageUtils.getRequestLanguage(request, response);
+ if(language==null) {
+ return zoneCode;
+ }
+ Map<String, Zone> zonesMap = zoneService.getZones(language);
+ if(zonesMap!=null) {
+ Zone z = zonesMap.get(zoneCode);
+ if(z!=null) {
+ return z.getName();
+ }
+ }
+
+ } catch (ServiceException e) {
+ LOGGER.error("Error while looking up zone " + zoneCode);
+ }
+ return zoneCode;
+ }
+
+ @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) {
+
+
+ List<String> years = null;
+ String serialized = null;
+ try {
+
+
+ years = (List<String>)cache.getFromCache(Constants.CREDIT_CARD_YEARS_CACHE_KEY);
+
+ if(years==null) {
+
+ years = new ArrayList<String>();
+ //current year
+
+ for(int i = 0 ; i < 10 ; i++) {
+ Calendar localCalendar = Calendar.getInstance(TimeZone.getDefault());
+ localCalendar.add(Calendar.YEAR, i);
+ String dt = DateUtil.formatYear(localCalendar.getTime());
+ years.add(dt);
+ }
+ //up to year + 10
+
+ cache.putInCache(years, Constants.CREDIT_CARD_YEARS_CACHE_KEY);
+
+ }
+
+
+
+ final ObjectMapper mapper = new ObjectMapper();
+ serialized = mapper.writeValueAsString(years);
+
+ } catch(Exception e) {
+ LOGGER.error("ReferenceControler ",e);
+ }
+
+ return serialized;
+
+ }
+
+
+ @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) {
+
+
+ List<String> days = null;
+ String serialized = null;
+
+ try {
+ days = (List<String>)cache.getFromCache(Constants.MONTHS_OF_YEAR_CACHE_KEY);
+ if(days==null) {
+
+ days = new ArrayList<String>();
+ for(int i = 1 ; i < 13 ; i++) {
+ days.add(String.format("%02d", i));
+ }
+
+ cache.putInCache(days, Constants.MONTHS_OF_YEAR_CACHE_KEY);
+
+ }
+
+
+
+ final ObjectMapper mapper = new ObjectMapper();
+ serialized = mapper.writeValueAsString(days);
+
+ } catch(Exception e) {
+ LOGGER.error("ReferenceControler ",e);
+ }
+
+ return serialized;
+
+ }
+
+
+
+
+
+
+
+}
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
new file mode 100644
index 0000000..9afdd5a
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/filter/AdminFilter.java
@@ -0,0 +1,216 @@
+package com.salesmanager.web.filter;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.codehaus.jackson.JsonParseException;
+import org.codehaus.jackson.map.JsonMappingException;
+import org.codehaus.jackson.map.ObjectMapper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
+
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.merchant.service.MerchantStoreService;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.business.reference.language.service.LanguageService;
+import com.salesmanager.core.business.user.model.User;
+import com.salesmanager.core.business.user.service.UserService;
+import com.salesmanager.core.utils.CacheUtils;
+import com.salesmanager.web.admin.entity.web.Menu;
+import com.salesmanager.web.constants.Constants;
+
+
+public class AdminFilter extends HandlerInterceptorAdapter {
+
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(AdminFilter.class);
+
+ @Inject
+ private MerchantStoreService merchantService;
+
+ @Inject
+ private UserService userService;
+
+ @Inject
+ private LanguageService languageService;
+
+ @Inject
+ private CacheUtils cache;
+
+ public boolean preHandle(
+ HttpServletRequest request,
+ HttpServletResponse response,
+ Object handler) throws Exception {
+
+ request.setCharacterEncoding("UTF-8");
+ @SuppressWarnings("unchecked")
+ Map<String,Menu> menus = (Map<String,Menu>) cache.getFromCache("MENUMAP");
+
+ User user = (User)request.getSession().getAttribute(Constants.ADMIN_USER);
+
+
+
+
+
+
+ String storeCode = MerchantStore.DEFAULT_STORE;
+ MerchantStore store = (MerchantStore)request.getSession().getAttribute(Constants.ADMIN_STORE);
+
+
+ String userName = request.getRemoteUser();
+
+ if(userName==null) {//** IMPORTANT FOR SPRING SECURITY **//
+ //response.sendRedirect(new StringBuilder().append(request.getContextPath()).append("/").append("/admin").toString());
+ } else {
+
+ if(user==null) {
+ user = userService.getByUserName(userName);
+ request.getSession().setAttribute(Constants.ADMIN_USER, user);
+ if(user!=null) {
+ storeCode = user.getMerchantStore().getCode();
+ } else {
+ LOGGER.warn("User name not found " + userName);
+ }
+ store=null;
+ }
+
+ if(user==null) {
+ response.sendRedirect(request.getContextPath() + "/admin/unauthorized.html");
+ return true;
+ }
+
+ if(!user.getAdminName().equals(userName)) {
+ user = userService.getByUserName(userName);
+ if(user!=null) {
+ storeCode = user.getMerchantStore().getCode();
+ } else {
+ LOGGER.warn("User name not found " + userName);
+ }
+ store=null;
+ }
+
+ }
+
+ if(store==null) {
+ store = merchantService.getByCode(storeCode);
+ request.getSession().setAttribute(Constants.ADMIN_STORE, store);
+ }
+ request.setAttribute(Constants.ADMIN_STORE, store);
+
+
+ Language language = (Language) request.getSession().getAttribute("LANGUAGE");
+
+ if(language==null) {
+
+ //TODO get the Locale from Spring API, is it simply request.getLocale() ???
+ //if so then based on the Locale language locale.getLanguage() get the appropriate Language
+ //object as represented below
+ if(user!=null) {
+ language = user.getDefaultLanguage();
+ if(language==null) {
+ language = store.getDefaultLanguage();
+ }
+ } else {
+ language = store.getDefaultLanguage();
+ }
+
+
+
+ request.getSession().setAttribute("LANGUAGE", language);
+
+
+ }
+
+
+ request.setAttribute(Constants.LANGUAGE, language);
+
+
+ if(menus==null) {
+ InputStream in = null;
+ ObjectMapper mapper = new ObjectMapper(); // can reuse, share globally
+ try {
+ in =
+ (InputStream) this.getClass().getClassLoader().getResourceAsStream("admin/menu.json");
+
+ Map<String,Object> data = mapper.readValue(in, Map.class);
+
+ Menu currentMenu = null;
+
+ menus = new LinkedHashMap<String,Menu>();
+ List objects = (List)data.get("menus");
+ for(Object object : objects) {
+ Menu m = getMenu(object);
+ menus.put(m.getCode(),m);
+ }
+
+ cache.putInCache(menus,"MENUMAP");
+
+ } catch (JsonParseException e) {
+ LOGGER.error("Error while creating menu", e);
+ } catch (JsonMappingException e) {
+ LOGGER.error("Error while creating menu", e);
+ } catch (IOException e) {
+ LOGGER.error("Error while creating menu", e);
+ } finally {
+ if(in !=null) {
+ try {
+ in.close();
+ } catch (Exception ignore) {
+ // TODO: handle exception
+ }
+ }
+ }
+
+ }
+
+
+ List<Menu> list = new ArrayList<Menu>(menus.values());
+
+ request.setAttribute("MENULIST", list);
+
+
+
+ request.setAttribute("MENUMAP", menus);
+ response.setCharacterEncoding("UTF-8");
+
+ return true;
+ }
+
+
+ private Menu getMenu(Object object) {
+
+ Map o = (Map)object;
+ Map menu = (Map)o.get("menu");
+
+ Menu m = new Menu();
+ m.setCode((String)menu.get("code"));
+
+
+ m.setUrl((String)menu.get("url"));
+ m.setIcon((String)menu.get("icon"));
+ m.setRole((String)menu.get("role"));
+
+ List menus = (List)menu.get("menus");
+ if(menus!=null) {
+ for(Object oo : menus) {
+
+ Menu mm = getMenu(oo);
+ m.getMenus().add(mm);
+ }
+
+ }
+
+ return m;
+
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/init/data/InitData.java b/sm-shop/src/main/java/com/salesmanager/shop/init/data/InitData.java
new file mode 100644
index 0000000..3341882
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/init/data/InitData.java
@@ -0,0 +1,9 @@
+package com.salesmanager.web.init.data;
+
+import com.salesmanager.core.business.generic.exception.ServiceException;
+
+public interface InitData {
+
+ public void initInitialData() throws ServiceException;
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/init/data/InitializationLoader.java b/sm-shop/src/main/java/com/salesmanager/shop/init/data/InitializationLoader.java
new file mode 100644
index 0000000..38e0928
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/init/data/InitializationLoader.java
@@ -0,0 +1,228 @@
+package com.salesmanager.web.init.data;
+
+import javax.annotation.PostConstruct;
+
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import com.salesmanager.core.business.generic.exception.ServiceException;
+import com.salesmanager.core.business.reference.init.service.InitializationDatabase;
+import com.salesmanager.core.business.system.model.SystemConfiguration;
+import com.salesmanager.core.business.system.service.SystemConfigurationService;
+import com.salesmanager.core.business.user.model.Group;
+import com.salesmanager.core.business.user.model.GroupType;
+import com.salesmanager.core.business.user.model.Permission;
+import com.salesmanager.core.business.user.service.GroupService;
+import com.salesmanager.core.business.user.service.PermissionService;
+import com.salesmanager.core.constants.SystemConstants;
+import com.salesmanager.core.utils.CoreConfiguration;
+import com.salesmanager.web.admin.security.WebUserServices;
+import com.salesmanager.web.constants.ApplicationConstants;
+import com.salesmanager.web.utils.AppConfiguration;
+
+
+
+@Component
+public class InitializationLoader {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(InitializationLoader.class);
+
+ @Inject
+ private AppConfiguration appConfiguration;
+
+
+ @Inject
+ private InitializationDatabase initializationDatabase;
+
+ @Inject
+ private com.salesmanager.web.init.data.InitData initData;
+
+ @Inject
+ private SystemConfigurationService systemConfigurationService;
+
+ @Inject
+ private WebUserServices userDetailsService;
+
+ @Inject
+ protected PermissionService permissionService;
+
+ @Inject
+ protected GroupService groupService;
+
+ @Inject
+ private CoreConfiguration configuration;
+
+ @PostConstruct
+ public void init() {
+
+ try {
+
+ if (initializationDatabase.isEmpty()) {
+ LOGGER.info(String.format("%s : Shopizer database is empty, populate it....", "sm-shop"));
+
+ initializationDatabase.populate("sm-shop");
+
+
+
+ //security groups and permissions
+
+ Group gsuperadmin = new Group("SUPERADMIN");
+ gsuperadmin.setGroupType(GroupType.ADMIN);
+ Group gadmin = new Group("ADMIN");
+ gadmin.setGroupType(GroupType.ADMIN);
+ Group gcatalogue = new Group("ADMIN_CATALOGUE");
+ gcatalogue.setGroupType(GroupType.ADMIN);
+ Group gstore = new Group("ADMIN_STORE");
+ gstore.setGroupType(GroupType.ADMIN);
+ Group gorder = new Group("ADMIN_ORDER");
+ gorder.setGroupType(GroupType.ADMIN);
+ Group gcontent = new Group("ADMIN_CONTENT");
+ gcontent.setGroupType(GroupType.ADMIN);
+
+ groupService.create(gsuperadmin);
+ groupService.create(gadmin);
+ groupService.create(gcatalogue);
+ groupService.create(gstore);
+ groupService.create(gorder);
+ groupService.create(gcontent);
+
+ Permission storeadmin = new Permission("STORE_ADMIN");//Administrator of the store
+ storeadmin.getGroups().add(gsuperadmin);
+ storeadmin.getGroups().add(gadmin);
+ permissionService.create(storeadmin);
+
+ Permission superadmin = new Permission("SUPERADMIN");
+ superadmin.getGroups().add(gsuperadmin);
+ permissionService.create(superadmin);
+
+ Permission admin = new Permission("ADMIN");
+ admin.getGroups().add(gsuperadmin);
+ admin.getGroups().add(gadmin);
+ permissionService.create(admin);
+
+ Permission auth = new Permission("AUTH");//Authenticated
+ auth.getGroups().add(gsuperadmin);
+ auth.getGroups().add(gadmin);
+ auth.getGroups().add(gcatalogue);
+ auth.getGroups().add(gstore);
+ auth.getGroups().add(gorder);
+ permissionService.create(auth);
+
+
+ Permission products = new Permission("PRODUCTS");
+ products.getGroups().add(gsuperadmin);
+ products.getGroups().add(gadmin);
+ products.getGroups().add(gcatalogue);
+ permissionService.create(products);
+
+
+ Permission order = new Permission("ORDER");
+ order.getGroups().add(gsuperadmin);
+ order.getGroups().add(gorder);
+ order.getGroups().add(gadmin);
+ permissionService.create(order);
+
+ Permission content = new Permission("CONTENT");
+ content.getGroups().add(gsuperadmin);
+ content.getGroups().add(gadmin);
+ content.getGroups().add(gcontent);
+ permissionService.create(content);
+
+
+
+ Permission pstore = new Permission("STORE");
+ pstore.getGroups().add(gsuperadmin);
+ pstore.getGroups().add(gstore);
+ pstore.getGroups().add(gadmin);
+ permissionService.create(pstore);
+
+ Permission tax = new Permission("TAX");
+ tax.getGroups().add(gsuperadmin);
+ tax.getGroups().add(gstore);
+ tax.getGroups().add(gadmin);
+ permissionService.create(tax);
+
+
+ Permission payment = new Permission("PAYMENT");
+ payment.getGroups().add(gsuperadmin);
+ payment.getGroups().add(gstore);
+ payment.getGroups().add(gadmin);
+ permissionService.create(payment);
+
+ Permission customer = new Permission("CUSTOMER");
+ customer.getGroups().add(gsuperadmin);
+ customer.getGroups().add(gstore);
+ customer.getGroups().add(gadmin);
+ permissionService.create(customer);
+
+
+ Permission shipping = new Permission("SHIPPING");
+ shipping.getGroups().add(gsuperadmin);
+ shipping.getGroups().add(gadmin);
+ shipping.getGroups().add(gstore);
+
+ permissionService.create(shipping);
+
+
+
+ userDetailsService.createDefaultAdmin();
+
+
+ //load customer groups and permissions
+ Group gcustomer = new Group("CUSTOMER");
+ gcustomer.setGroupType(GroupType.CUSTOMER);
+
+ groupService.create(gcustomer);
+
+ Permission gcustomerpermission = new Permission("AUTH_CUSTOMER");
+ gcustomerpermission.getGroups().add(gcustomer);
+ permissionService.create(gcustomerpermission);
+
+ loadData();
+
+ }
+
+ } catch (Exception e) {
+ LOGGER.error("Error in the init method",e);
+ }
+
+
+
+ }
+
+ private void loadData() throws ServiceException {
+
+ String loadTestData = configuration.getProperty(ApplicationConstants.POPULATE_TEST_DATA);
+ boolean loadData = !StringUtils.isBlank(loadTestData) && loadTestData.equals(SystemConstants.CONFIG_VALUE_TRUE);
+
+
+ if(loadData) {
+
+ SystemConfiguration configuration = systemConfigurationService.getByKey(ApplicationConstants.TEST_DATA_LOADED);
+
+ if(configuration!=null) {
+ if(configuration.getKey().equals(ApplicationConstants.TEST_DATA_LOADED)) {
+ if(configuration.getValue().equals(SystemConstants.CONFIG_VALUE_TRUE)) {
+ return;
+ }
+ }
+ }
+
+ initData.initInitialData();
+
+ configuration = new SystemConfiguration();
+ configuration.getAuditSection().setModifiedBy(SystemConstants.SYSTEM_USER);
+ configuration.setKey(ApplicationConstants.TEST_DATA_LOADED);
+ configuration.setValue(SystemConstants.CONFIG_VALUE_TRUE);
+ systemConfigurationService.create(configuration);
+
+
+ }
+ }
+
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/CatalogEntity.java b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/CatalogEntity.java
new file mode 100644
index 0000000..409cd07
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/CatalogEntity.java
@@ -0,0 +1,63 @@
+package com.salesmanager.web.entity.catalog;
+
+import java.io.Serializable;
+
+import com.salesmanager.web.entity.ShopEntity;
+
+public abstract class CatalogEntity extends ShopEntity implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private String name;
+ private String description;
+ private String friendlyUrl;
+ private String keyWords;
+ private String highlights;
+ private String metaDescription;
+ private String title;
+ public String getName() {
+ return name;
+ }
+ public void setName(String name) {
+ this.name = name;
+ }
+ public String getDescription() {
+ return description;
+ }
+ public void setDescription(String description) {
+ this.description = description;
+ }
+ public String getFriendlyUrl() {
+ return friendlyUrl;
+ }
+ public void setFriendlyUrl(String friendlyUrl) {
+ this.friendlyUrl = friendlyUrl;
+ }
+ public String getKeyWords() {
+ return keyWords;
+ }
+ public void setKeyWords(String keyWords) {
+ this.keyWords = keyWords;
+ }
+ public String getHighlights() {
+ return highlights;
+ }
+ public void setHighlights(String highlights) {
+ this.highlights = highlights;
+ }
+ public String getMetaDescription() {
+ return metaDescription;
+ }
+ public void setMetaDescription(String metaDescription) {
+ this.metaDescription = metaDescription;
+ }
+ public String getTitle() {
+ return title;
+ }
+ public void setTitle(String title) {
+ this.title = title;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/category/Category.java b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/category/Category.java
new file mode 100644
index 0000000..894e028
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/category/Category.java
@@ -0,0 +1,21 @@
+package com.salesmanager.web.entity.catalog.category;
+
+import java.io.Serializable;
+
+import com.salesmanager.web.entity.Entity;
+
+public class Category extends Entity implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private String code;
+ public String getCode() {
+ return code;
+ }
+ public void setCode(String code) {
+ this.code = code;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/category/CategoryDescription.java b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/category/CategoryDescription.java
new file mode 100644
index 0000000..c46f546
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/category/CategoryDescription.java
@@ -0,0 +1,14 @@
+package com.salesmanager.web.entity.catalog.category;
+
+import java.io.Serializable;
+
+import com.salesmanager.web.entity.catalog.CatalogEntity;
+
+public class CategoryDescription extends CatalogEntity implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/category/CategoryEntity.java b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/category/CategoryEntity.java
new file mode 100644
index 0000000..230ccf4
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/category/CategoryEntity.java
@@ -0,0 +1,53 @@
+package com.salesmanager.web.entity.catalog.category;
+
+import java.io.Serializable;
+
+public class CategoryEntity extends Category implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+
+
+
+ private int sortOrder;
+ private boolean visible;
+ private String lineage;
+ private int depth;
+ private Category parent;
+
+
+ public int getSortOrder() {
+ return sortOrder;
+ }
+ public void setSortOrder(int sortOrder) {
+ this.sortOrder = sortOrder;
+ }
+ public boolean isVisible() {
+ return visible;
+ }
+ public void setVisible(boolean visible) {
+ this.visible = visible;
+ }
+ public String getLineage() {
+ return lineage;
+ }
+ public void setLineage(String lineage) {
+ this.lineage = lineage;
+ }
+ public int getDepth() {
+ return depth;
+ }
+ public void setDepth(int depth) {
+ this.depth = depth;
+ }
+ public Category getParent() {
+ return parent;
+ }
+ public void setParent(Category parent) {
+ this.parent = parent;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/category/PersistableCategory.java b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/category/PersistableCategory.java
new file mode 100644
index 0000000..102bd57
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/category/PersistableCategory.java
@@ -0,0 +1,29 @@
+package com.salesmanager.web.entity.catalog.category;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+public class PersistableCategory extends CategoryEntity implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private List<CategoryDescription> descriptions;//always persist description
+ private List<PersistableCategory> children = new ArrayList<PersistableCategory>();
+
+ public List<CategoryDescription> getDescriptions() {
+ return descriptions;
+ }
+ public void setDescriptions(List<CategoryDescription> descriptions) {
+ this.descriptions = descriptions;
+ }
+ public List<PersistableCategory> getChildren() {
+ return children;
+ }
+ public void setChildren(List<PersistableCategory> children) {
+ this.children = children;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/category/ReadableCategory.java b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/category/ReadableCategory.java
new file mode 100644
index 0000000..5e3aae6
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/category/ReadableCategory.java
@@ -0,0 +1,39 @@
+package com.salesmanager.web.entity.catalog.category;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+public class ReadableCategory extends CategoryEntity implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private CategoryDescription description;//one category based on language
+ //private ReadableCategory parent;
+ private int productCount;
+ private List<ReadableCategory> children = new ArrayList<ReadableCategory>();
+
+
+ public void setDescription(CategoryDescription description) {
+ this.description = description;
+ }
+ public CategoryDescription getDescription() {
+ return description;
+ }
+
+ public int getProductCount() {
+ return productCount;
+ }
+ public void setProductCount(int productCount) {
+ this.productCount = productCount;
+ }
+ public List<ReadableCategory> getChildren() {
+ return children;
+ }
+ public void setChildren(List<ReadableCategory> children) {
+ this.children = children;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/manufacturer/Manufacturer.java b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/manufacturer/Manufacturer.java
new file mode 100644
index 0000000..ce78cab
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/manufacturer/Manufacturer.java
@@ -0,0 +1,21 @@
+package com.salesmanager.web.entity.catalog.manufacturer;
+
+import java.io.Serializable;
+
+import com.salesmanager.web.entity.Entity;
+
+public class Manufacturer extends Entity implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private String code;
+ public String getCode() {
+ return code;
+ }
+ public void setCode(String code) {
+ this.code = code;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/manufacturer/ManufacturerDescription.java b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/manufacturer/ManufacturerDescription.java
new file mode 100644
index 0000000..ae2d664
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/manufacturer/ManufacturerDescription.java
@@ -0,0 +1,15 @@
+package com.salesmanager.web.entity.catalog.manufacturer;
+
+import java.io.Serializable;
+
+import com.salesmanager.web.entity.catalog.CatalogEntity;
+
+public class ManufacturerDescription extends CatalogEntity implements
+ Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/manufacturer/ManufacturerEntity.java b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/manufacturer/ManufacturerEntity.java
new file mode 100644
index 0000000..fd87699
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/manufacturer/ManufacturerEntity.java
@@ -0,0 +1,23 @@
+package com.salesmanager.web.entity.catalog.manufacturer;
+
+import java.io.Serializable;
+
+
+
+public class ManufacturerEntity extends Manufacturer implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private int order;
+
+ public void setOrder(int order) {
+ this.order = order;
+ }
+ public int getOrder() {
+ return order;
+ }
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/manufacturer/PersistableManufacturer.java b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/manufacturer/PersistableManufacturer.java
new file mode 100644
index 0000000..62648cb
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/manufacturer/PersistableManufacturer.java
@@ -0,0 +1,21 @@
+package com.salesmanager.web.entity.catalog.manufacturer;
+
+import java.io.Serializable;
+import java.util.List;
+
+public class PersistableManufacturer extends ManufacturerEntity implements
+ Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private List<ManufacturerDescription> descriptions;
+ public void setDescriptions(List<ManufacturerDescription> descriptions) {
+ this.descriptions = descriptions;
+ }
+ public List<ManufacturerDescription> getDescriptions() {
+ return descriptions;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/manufacturer/ReadableManufacturer.java b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/manufacturer/ReadableManufacturer.java
new file mode 100644
index 0000000..1269eaf
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/manufacturer/ReadableManufacturer.java
@@ -0,0 +1,20 @@
+package com.salesmanager.web.entity.catalog.manufacturer;
+
+import java.io.Serializable;
+
+public class ReadableManufacturer extends ManufacturerEntity implements
+ Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private ManufacturerDescription description;
+ public void setDescription(ManufacturerDescription description) {
+ this.description = description;
+ }
+ public ManufacturerDescription getDescription() {
+ return description;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/attribute/PersistableProductAttribute.java b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/attribute/PersistableProductAttribute.java
new file mode 100644
index 0000000..bf6d634
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/attribute/PersistableProductAttribute.java
@@ -0,0 +1,13 @@
+package com.salesmanager.web.entity.catalog.product.attribute;
+
+import java.io.Serializable;
+
+public class PersistableProductAttribute extends ProductAttributeEntity
+ implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/attribute/PersistableProductOption.java b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/attribute/PersistableProductOption.java
new file mode 100644
index 0000000..f67f504
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/attribute/PersistableProductOption.java
@@ -0,0 +1,21 @@
+package com.salesmanager.web.entity.catalog.product.attribute;
+
+import java.io.Serializable;
+import java.util.List;
+
+public class PersistableProductOption extends ProductOptionEntity implements
+ Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private List<ProductOptionDescription> descriptions;
+ public void setDescriptions(List<ProductOptionDescription> descriptions) {
+ this.descriptions = descriptions;
+ }
+ public List<ProductOptionDescription> getDescriptions() {
+ return descriptions;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/attribute/PersistableProductOptionValue.java b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/attribute/PersistableProductOptionValue.java
new file mode 100644
index 0000000..f7013d8
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/attribute/PersistableProductOptionValue.java
@@ -0,0 +1,23 @@
+package com.salesmanager.web.entity.catalog.product.attribute;
+
+import java.io.Serializable;
+import java.util.List;
+
+public class PersistableProductOptionValue extends ProductOptionValueEntity
+ implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private List<ProductOptionValueDescription> descriptions;
+
+ public void setDescriptions(List<ProductOptionValueDescription> descriptions) {
+ this.descriptions = descriptions;
+ }
+
+ public List<ProductOptionValueDescription> getDescriptions() {
+ return descriptions;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/attribute/ProductAttribute.java b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/attribute/ProductAttribute.java
new file mode 100644
index 0000000..a5eefe5
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/attribute/ProductAttribute.java
@@ -0,0 +1,28 @@
+package com.salesmanager.web.entity.catalog.product.attribute;
+
+import java.io.Serializable;
+
+import com.salesmanager.web.entity.Entity;
+
+public class ProductAttribute extends Entity implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private ProductOption option;
+ private ProductOptionValue optionValue;
+ public void setOptionValue(ProductOptionValue optionValue) {
+ this.optionValue = optionValue;
+ }
+ public ProductOptionValue getOptionValue() {
+ return optionValue;
+ }
+ public void setOption(ProductOption option) {
+ this.option = option;
+ }
+ public ProductOption getOption() {
+ return option;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/attribute/ProductAttributeEntity.java b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/attribute/ProductAttributeEntity.java
new file mode 100644
index 0000000..2fe44c8
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/attribute/ProductAttributeEntity.java
@@ -0,0 +1,43 @@
+package com.salesmanager.web.entity.catalog.product.attribute;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+public class ProductAttributeEntity extends ProductAttribute implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private BigDecimal productAttributePrice;
+ private int sortOrder;
+ private BigDecimal productAttributeWeight;
+ private boolean attributeDefault=false;
+
+
+
+ public void setProductAttributePrice(BigDecimal productAttributePrice) {
+ this.productAttributePrice = productAttributePrice;
+ }
+ public BigDecimal getProductAttributePrice() {
+ return productAttributePrice;
+ }
+ public void setSortOrder(int sortOrder) {
+ this.sortOrder = sortOrder;
+ }
+ public int getSortOrder() {
+ return sortOrder;
+ }
+ public void setProductAttributeWeight(BigDecimal productAttributeWeight) {
+ this.productAttributeWeight = productAttributeWeight;
+ }
+ public BigDecimal getProductAttributeWeight() {
+ return productAttributeWeight;
+ }
+ public void setAttributeDefault(boolean attributeDefault) {
+ this.attributeDefault = attributeDefault;
+ }
+ public boolean isAttributeDefault() {
+ return attributeDefault;
+ }
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/attribute/ProductOption.java b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/attribute/ProductOption.java
new file mode 100644
index 0000000..84e7404
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/attribute/ProductOption.java
@@ -0,0 +1,21 @@
+package com.salesmanager.web.entity.catalog.product.attribute;
+
+import java.io.Serializable;
+
+import com.salesmanager.web.entity.Entity;
+
+public class ProductOption extends Entity implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private String code;
+ public String getCode() {
+ return code;
+ }
+ public void setCode(String code) {
+ this.code = code;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/attribute/ProductOptionDescription.java b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/attribute/ProductOptionDescription.java
new file mode 100644
index 0000000..801bfac
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/attribute/ProductOptionDescription.java
@@ -0,0 +1,15 @@
+package com.salesmanager.web.entity.catalog.product.attribute;
+
+import java.io.Serializable;
+
+import com.salesmanager.web.entity.catalog.CatalogEntity;
+
+public class ProductOptionDescription extends CatalogEntity implements
+ Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/attribute/ProductOptionEntity.java b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/attribute/ProductOptionEntity.java
new file mode 100644
index 0000000..0fb12a0
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/attribute/ProductOptionEntity.java
@@ -0,0 +1,28 @@
+package com.salesmanager.web.entity.catalog.product.attribute;
+
+import java.io.Serializable;
+
+public class ProductOptionEntity extends ProductOption implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private int order;
+
+ private String type;
+ public void setOrder(int order) {
+ this.order = order;
+ }
+ public int getOrder() {
+ return order;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+ public String getType() {
+ return type;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/attribute/ProductOptionValue.java b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/attribute/ProductOptionValue.java
new file mode 100644
index 0000000..78cc7be
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/attribute/ProductOptionValue.java
@@ -0,0 +1,21 @@
+package com.salesmanager.web.entity.catalog.product.attribute;
+
+import java.io.Serializable;
+
+import com.salesmanager.web.entity.Entity;
+
+public class ProductOptionValue extends Entity implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private String code;
+ public String getCode() {
+ return code;
+ }
+ public void setCode(String code) {
+ this.code = code;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/attribute/ProductOptionValueDescription.java b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/attribute/ProductOptionValueDescription.java
new file mode 100644
index 0000000..5277984
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/attribute/ProductOptionValueDescription.java
@@ -0,0 +1,15 @@
+package com.salesmanager.web.entity.catalog.product.attribute;
+
+import java.io.Serializable;
+
+import com.salesmanager.web.entity.catalog.CatalogEntity;
+
+public class ProductOptionValueDescription extends CatalogEntity implements
+ Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/attribute/ProductOptionValueEntity.java b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/attribute/ProductOptionValueEntity.java
new file mode 100644
index 0000000..1c69a7d
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/attribute/ProductOptionValueEntity.java
@@ -0,0 +1,21 @@
+package com.salesmanager.web.entity.catalog.product.attribute;
+
+import java.io.Serializable;
+
+public class ProductOptionValueEntity extends ProductOptionValue implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private int order;
+
+ public void setOrder(int order) {
+ this.order = order;
+ }
+ public int getOrder() {
+ return order;
+ }
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/attribute/ReadableProductAttribute.java b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/attribute/ReadableProductAttribute.java
new file mode 100644
index 0000000..e90fe50
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/attribute/ReadableProductAttribute.java
@@ -0,0 +1,12 @@
+package com.salesmanager.web.entity.catalog.product.attribute;
+
+import java.io.Serializable;
+
+public class ReadableProductAttribute extends ProductAttributeEntity implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/PersistableImage.java b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/PersistableImage.java
new file mode 100644
index 0000000..5e7767f
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/PersistableImage.java
@@ -0,0 +1,69 @@
+package com.salesmanager.web.entity.catalog.product;
+
+public class PersistableImage {
+
+ private byte[] bytes = null;
+
+
+ private String contentType = null;
+
+ private String imageName = null;
+
+ /**
+ * An external image url
+ */
+ private String imageUrl = null;
+
+ private int imageType = 0;
+
+
+ public void setBytes(byte[] bytes) {
+ this.bytes = bytes;
+ }
+
+
+ public byte[] getBytes() {
+ return bytes;
+ }
+
+
+ public void setContentType(String contentType) {
+ this.contentType = contentType;
+ }
+
+
+ public String getContentType() {
+ return contentType;
+ }
+
+
+ public void setImageName(String imageName) {
+ this.imageName = imageName;
+ }
+
+
+ public String getImageName() {
+ return imageName;
+ }
+
+
+ public String getImageUrl() {
+ return imageUrl;
+ }
+
+
+ public void setImageUrl(String imageUrl) {
+ this.imageUrl = imageUrl;
+ }
+
+
+ public int getImageType() {
+ return imageType;
+ }
+
+
+ public void setImageType(int imageType) {
+ this.imageType = imageType;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/PersistableProduct.java b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/PersistableProduct.java
new file mode 100644
index 0000000..13cc1a3
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/PersistableProduct.java
@@ -0,0 +1,68 @@
+package com.salesmanager.web.entity.catalog.product;
+
+import java.io.Serializable;
+import java.util.List;
+
+import com.salesmanager.web.entity.catalog.category.Category;
+import com.salesmanager.web.entity.catalog.manufacturer.Manufacturer;
+import com.salesmanager.web.entity.catalog.product.attribute.PersistableProductAttribute;
+
+public class PersistableProduct extends ProductEntity implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private List<ProductDescription> descriptions;//always persist descriptions
+ private List<PersistableProductAttribute> attributes;//persist attribute and save reference
+ private List<PersistableImage> images;//persist images and save reference
+ private List<PersistableProductPrice> productPrices;//to be set when using discounts
+ private List<Category> categories;//save reference
+ private List<RelatedProduct> relatedProducts;//save reference
+ private Manufacturer manufacturer;
+
+ public List<ProductDescription> getDescriptions() {
+ return descriptions;
+ }
+ public void setDescriptions(List<ProductDescription> descriptions) {
+ this.descriptions = descriptions;
+ }
+
+ public List<PersistableImage> getImages() {
+ return images;
+ }
+ public void setImages(List<PersistableImage> images) {
+ this.images = images;
+ }
+ public List<Category> getCategories() {
+ return categories;
+ }
+ public void setCategories(List<Category> categories) {
+ this.categories = categories;
+ }
+ public List<RelatedProduct> getRelatedProducts() {
+ return relatedProducts;
+ }
+ public void setRelatedProducts(List<RelatedProduct> relatedProducts) {
+ this.relatedProducts = relatedProducts;
+ }
+ public void setManufacturer(Manufacturer manufacturer) {
+ this.manufacturer = manufacturer;
+ }
+ public Manufacturer getManufacturer() {
+ return manufacturer;
+ }
+ public void setAttributes(List<PersistableProductAttribute> attributes) {
+ this.attributes = attributes;
+ }
+ public List<PersistableProductAttribute> getAttributes() {
+ return attributes;
+ }
+ public List<PersistableProductPrice> getProductPrices() {
+ return productPrices;
+ }
+ public void setProductPrices(List<PersistableProductPrice> productPrices) {
+ this.productPrices = productPrices;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/PersistableProductPrice.java b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/PersistableProductPrice.java
new file mode 100644
index 0000000..f88ef63
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/PersistableProductPrice.java
@@ -0,0 +1,10 @@
+package com.salesmanager.web.entity.catalog.product;
+
+public class PersistableProductPrice extends ProductPriceEntity {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/PersistableProductReview.java b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/PersistableProductReview.java
new file mode 100644
index 0000000..590ebfd
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/PersistableProductReview.java
@@ -0,0 +1,25 @@
+package com.salesmanager.web.entity.catalog.product;
+
+import java.io.Serializable;
+
+import javax.validation.constraints.NotNull;
+
+public class PersistableProductReview extends ProductReviewEntity implements
+ Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ @NotNull
+ private Long customerId;
+ public Long getCustomerId() {
+ return customerId;
+ }
+ public void setCustomerId(Long customerId) {
+ this.customerId = customerId;
+ }
+
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/Product.java b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/Product.java
new file mode 100644
index 0000000..0bb1686
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/Product.java
@@ -0,0 +1,14 @@
+package com.salesmanager.web.entity.catalog.product;
+
+import java.io.Serializable;
+
+import com.salesmanager.web.entity.Entity;
+
+public class Product extends Entity implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/ProductDescription.java b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/ProductDescription.java
new file mode 100644
index 0000000..63489dc
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/ProductDescription.java
@@ -0,0 +1,12 @@
+package com.salesmanager.web.entity.catalog.product;
+
+import com.salesmanager.web.entity.catalog.CatalogEntity;
+
+public class ProductDescription extends CatalogEntity {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/ProductEntity.java b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/ProductEntity.java
new file mode 100644
index 0000000..3e26de8
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/ProductEntity.java
@@ -0,0 +1,167 @@
+package com.salesmanager.web.entity.catalog.product;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+
+/**
+ * A product entity is used by services API
+ * to populate or retrieve a Product entity
+ * @author Carl Samson
+ *
+ */
+public class ProductEntity extends Product implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private BigDecimal price;
+ private int quantity = 0;
+ private String sku;
+ private boolean productShipeable = false;
+ private boolean preOrder = false;
+ private boolean productVirtual = false;
+ private int quantityOrderMaximum =-1;//default unlimited
+ private int quantityOrderMinimum = 1;//default 1
+ private boolean productIsFree;
+ private boolean available;
+ private boolean visible;
+ private BigDecimal productLength;
+ private BigDecimal productWidth;
+ private BigDecimal productHeight;
+ private BigDecimal productWeight;
+ private Double rating = 0D;
+ private int ratingCount;
+ private int sortOrder;
+ private String dateAvailable;
+ private String refSku;
+
+
+
+
+
+ public BigDecimal getPrice() {
+ return price;
+ }
+ public void setPrice(BigDecimal price) {
+ this.price = price;
+ }
+
+ public int getQuantity() {
+ return quantity;
+ }
+ public void setQuantity(int quantity) {
+ this.quantity = quantity;
+ }
+ public String getSku() {
+ return sku;
+ }
+ public void setSku(String sku) {
+ this.sku = sku;
+ }
+ public boolean isProductShipeable() {
+ return productShipeable;
+ }
+ public void setProductShipeable(boolean productShipeable) {
+ this.productShipeable = productShipeable;
+ }
+ public boolean isProductIsFree() {
+ return productIsFree;
+ }
+ public void setProductIsFree(boolean productIsFree) {
+ this.productIsFree = productIsFree;
+ }
+ public BigDecimal getProductLength() {
+ return productLength;
+ }
+ public void setProductLength(BigDecimal productLength) {
+ this.productLength = productLength;
+ }
+ public BigDecimal getProductWidth() {
+ return productWidth;
+ }
+ public void setProductWidth(BigDecimal productWidth) {
+ this.productWidth = productWidth;
+ }
+ public BigDecimal getProductHeight() {
+ return productHeight;
+ }
+ public void setProductHeight(BigDecimal productHeight) {
+ this.productHeight = productHeight;
+ }
+ public BigDecimal getProductWeight() {
+ return productWeight;
+ }
+ public void setProductWeight(BigDecimal productWeight) {
+ this.productWeight = productWeight;
+ }
+ public int getSortOrder() {
+ return sortOrder;
+ }
+ public void setSortOrder(int sortOrder) {
+ this.sortOrder = sortOrder;
+ }
+ public void setQuantityOrderMaximum(int quantityOrderMaximum) {
+ this.quantityOrderMaximum = quantityOrderMaximum;
+ }
+ public int getQuantityOrderMaximum() {
+ return quantityOrderMaximum;
+ }
+ public void setProductVirtual(boolean productVirtual) {
+ this.productVirtual = productVirtual;
+ }
+ public boolean isProductVirtual() {
+ return productVirtual;
+ }
+ public void setAvailable(boolean available) {
+ this.available = available;
+ }
+ public boolean isAvailable() {
+ return available;
+ }
+ public void setDateAvailable(String dateAvailable) {
+ this.dateAvailable = dateAvailable;
+ }
+ public String getDateAvailable() {
+ return dateAvailable;
+ }
+ public int getQuantityOrderMinimum() {
+ return quantityOrderMinimum;
+ }
+ public void setQuantityOrderMinimum(int quantityOrderMinimum) {
+ this.quantityOrderMinimum = quantityOrderMinimum;
+ }
+ public int getRatingCount() {
+ return ratingCount;
+ }
+ public void setRatingCount(int ratingCount) {
+ this.ratingCount = ratingCount;
+ }
+ public Double getRating() {
+ return rating;
+ }
+ public void setRating(Double rating) {
+ this.rating = rating;
+ }
+ public boolean isPreOrder() {
+ return preOrder;
+ }
+ public void setPreOrder(boolean preOrder) {
+ this.preOrder = preOrder;
+ }
+ public String getRefSku() {
+ return refSku;
+ }
+ public void setRefSku(String refSku) {
+ this.refSku = refSku;
+ }
+ public boolean isVisible() {
+ return visible;
+ }
+ public void setVisible(boolean visible) {
+ this.visible = visible;
+ }
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/ProductPrice.java b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/ProductPrice.java
new file mode 100644
index 0000000..8d1bc52
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/ProductPrice.java
@@ -0,0 +1,14 @@
+package com.salesmanager.web.entity.catalog.product;
+
+import com.salesmanager.web.entity.Entity;
+
+public class ProductPrice extends Entity {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+ public final static String DEFAULT_PRICE_CODE="base";
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/ProductPriceEntity.java b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/ProductPriceEntity.java
new file mode 100644
index 0000000..d0b29e4
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/ProductPriceEntity.java
@@ -0,0 +1,78 @@
+package com.salesmanager.web.entity.catalog.product;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+import org.apache.commons.lang3.StringUtils;
+/**
+ * A product entity is used by services API
+ * to populate or retrieve a Product price entity
+ * @author Carl Samson
+ *
+ */
+public class ProductPriceEntity extends ProductPrice implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private String code;
+ private boolean discounted = false;
+ private String discountStartDate;
+ private String discountEndDate;
+ private boolean defaultPrice = false;
+ private BigDecimal originalPrice;
+ private BigDecimal discountedPrice;
+
+ public boolean isDiscounted() {
+ return discounted;
+ }
+ public void setDiscounted(boolean discounted) {
+ this.discounted = discounted;
+ }
+ public String getDiscountStartDate() {
+ return discountStartDate;
+ }
+ public void setDiscountStartDate(String discountStartDate) {
+ this.discountStartDate = discountStartDate;
+ }
+ public String getDiscountEndDate() {
+ return discountEndDate;
+ }
+ public void setDiscountEndDate(String discountEndDate) {
+ this.discountEndDate = discountEndDate;
+ }
+ public boolean isDefaultPrice() {
+ return defaultPrice;
+ }
+ public void setDefaultPrice(boolean defaultPrice) {
+ this.defaultPrice = defaultPrice;
+ }
+ public BigDecimal getOriginalPrice() {
+ return originalPrice;
+ }
+ public void setOriginalPrice(BigDecimal originalPrice) {
+ this.originalPrice = originalPrice;
+ }
+ public BigDecimal getDiscountedPrice() {
+ return discountedPrice;
+ }
+ public void setDiscountedPrice(BigDecimal discountedPrice) {
+ this.discountedPrice = discountedPrice;
+ }
+ public String getCode() {
+ if(StringUtils.isBlank(this.code)) {
+ code = DEFAULT_PRICE_CODE;
+ }
+ return code;
+ }
+ public void setCode(String code) {
+ this.code = code;
+ }
+
+
+
+
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/ProductReviewEntity.java b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/ProductReviewEntity.java
new file mode 100644
index 0000000..82dedd5
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/ProductReviewEntity.java
@@ -0,0 +1,55 @@
+package com.salesmanager.web.entity.catalog.product;
+
+import java.io.Serializable;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotNull;
+
+import org.hibernate.validator.constraints.NotEmpty;
+
+import com.salesmanager.web.entity.ShopEntity;
+
+public class ProductReviewEntity extends ShopEntity implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ @NotEmpty
+ private String description;
+ private Long productId;
+ private String date;
+
+ @NotNull
+ @Min(1)
+ @Max(5)
+ private Double rating;
+ public String getDescription() {
+ return description;
+ }
+ public void setDescription(String description) {
+ this.description = description;
+ }
+ public Long getProductId() {
+ return productId;
+ }
+ public void setProductId(Long productId) {
+ this.productId = productId;
+ }
+
+ public Double getRating() {
+ return rating;
+ }
+ public void setRating(Double rating) {
+ this.rating = rating;
+ }
+ public String getDate() {
+ return date;
+ }
+ public void setDate(String date) {
+ this.date = date;
+ }
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/ReadableProduct.java b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/ReadableProduct.java
new file mode 100644
index 0000000..c8995e6
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/ReadableProduct.java
@@ -0,0 +1,83 @@
+package com.salesmanager.web.entity.catalog.product;
+
+import java.io.Serializable;
+import java.util.List;
+
+import com.salesmanager.web.entity.catalog.ReadableImage;
+import com.salesmanager.web.entity.catalog.manufacturer.ReadableManufacturer;
+import com.salesmanager.web.entity.catalog.product.attribute.ReadableProductAttribute;
+
+public class ReadableProduct extends ProductEntity implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private ProductDescription description;
+ private String finalPrice = "0";
+ private String originalPrice = null;
+ private boolean discounted = false;
+ private ReadableImage image;
+ private List<ReadableImage> images;
+ private ReadableManufacturer manufacturer;
+ private List<ReadableProductAttribute> attributes;
+ private boolean canBePurchased = false;
+
+
+ public ProductDescription getDescription() {
+ return description;
+ }
+ public void setDescription(ProductDescription description) {
+ this.description = description;
+ }
+ public String getFinalPrice() {
+ return finalPrice;
+ }
+ public void setFinalPrice(String finalPrice) {
+ this.finalPrice = finalPrice;
+ }
+ public String getOriginalPrice() {
+ return originalPrice;
+ }
+ public void setOriginalPrice(String originalPrice) {
+ this.originalPrice = originalPrice;
+ }
+ public boolean isDiscounted() {
+ return discounted;
+ }
+ public void setDiscounted(boolean discounted) {
+ this.discounted = discounted;
+ }
+
+ public void setImages(List<ReadableImage> images) {
+ this.images = images;
+ }
+ public List<ReadableImage> getImages() {
+ return images;
+ }
+ public void setImage(ReadableImage image) {
+ this.image = image;
+ }
+ public ReadableImage getImage() {
+ return image;
+ }
+ public void setAttributes(List<ReadableProductAttribute> attributes) {
+ this.attributes = attributes;
+ }
+ public List<ReadableProductAttribute> getAttributes() {
+ return attributes;
+ }
+ public void setManufacturer(ReadableManufacturer manufacturer) {
+ this.manufacturer = manufacturer;
+ }
+ public ReadableManufacturer getManufacturer() {
+ return manufacturer;
+ }
+ public boolean isCanBePurchased() {
+ return canBePurchased;
+ }
+ public void setCanBePurchased(boolean canBePurchased) {
+ this.canBePurchased = canBePurchased;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/ReadableProductList.java b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/ReadableProductList.java
new file mode 100644
index 0000000..2daf7ee
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/ReadableProductList.java
@@ -0,0 +1,29 @@
+package com.salesmanager.web.entity.catalog.product;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+public class ReadableProductList implements Serializable {
+
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private int totalCount;
+ private List<ReadableProduct> products = new ArrayList<ReadableProduct>();
+ public void setProducts(List<ReadableProduct> products) {
+ this.products = products;
+ }
+ public List<ReadableProduct> getProducts() {
+ return products;
+ }
+ public void setTotalCount(int totalCount) {
+ this.totalCount = totalCount;
+ }
+ public int getTotalCount() {
+ return totalCount;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/ReadableProductPrice.java b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/ReadableProductPrice.java
new file mode 100644
index 0000000..1a27aa5
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/ReadableProductPrice.java
@@ -0,0 +1,34 @@
+package com.salesmanager.web.entity.catalog.product;
+
+import java.io.Serializable;
+
+public class ReadableProductPrice implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private String originalPrice;
+ private String finalPrice;
+ private boolean discounted = false;
+
+ public String getOriginalPrice() {
+ return originalPrice;
+ }
+ public void setOriginalPrice(String originalPrice) {
+ this.originalPrice = originalPrice;
+ }
+ public String getFinalPrice() {
+ return finalPrice;
+ }
+ public void setFinalPrice(String finalPrice) {
+ this.finalPrice = finalPrice;
+ }
+ public boolean isDiscounted() {
+ return discounted;
+ }
+ public void setDiscounted(boolean discounted) {
+ this.discounted = discounted;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/ReadableProductReview.java b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/ReadableProductReview.java
new file mode 100644
index 0000000..fb955fd
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/ReadableProductReview.java
@@ -0,0 +1,21 @@
+package com.salesmanager.web.entity.catalog.product;
+
+import java.io.Serializable;
+
+import com.salesmanager.web.entity.customer.ReadableCustomer;
+
+public class ReadableProductReview extends ProductReviewEntity implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private ReadableCustomer customer;
+ public ReadableCustomer getCustomer() {
+ return customer;
+ }
+ public void setCustomer(ReadableCustomer customer) {
+ this.customer = customer;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/RelatedProduct.java b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/RelatedProduct.java
new file mode 100644
index 0000000..18727a2
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/product/RelatedProduct.java
@@ -0,0 +1,19 @@
+package com.salesmanager.web.entity.catalog.product;
+
+import java.io.Serializable;
+
+public class RelatedProduct extends Product implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private String relationShipType; //RELATED_ITEM ~ BUNDLED_ITEM
+ public void setRelationShipType(String relationShipType) {
+ this.relationShipType = relationShipType;
+ }
+ public String getRelationShipType() {
+ return relationShipType;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/ProductList.java b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/ProductList.java
new file mode 100644
index 0000000..9523f0b
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/ProductList.java
@@ -0,0 +1,47 @@
+package com.salesmanager.web.entity.catalog;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+
+import com.salesmanager.web.entity.catalog.product.ReadableProduct;
+
+public class ProductList implements Serializable {
+
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private int productCount;
+ private BigDecimal minPrice;
+ private BigDecimal maxPrice;
+ private List<ReadableProduct> products = new ArrayList<ReadableProduct>();
+ public void setProducts(List<ReadableProduct> products) {
+ this.products = products;
+ }
+ public List<ReadableProduct> getProducts() {
+ return products;
+ }
+ public int getProductCount() {
+ return productCount;
+ }
+ public void setProductCount(int productCount) {
+ this.productCount = productCount;
+ }
+ public BigDecimal getMinPrice() {
+ return minPrice;
+ }
+ public void setMinPrice(BigDecimal minPrice) {
+ this.minPrice = minPrice;
+ }
+ public BigDecimal getMaxPrice() {
+ return maxPrice;
+ }
+ public void setMaxPrice(BigDecimal maxPrice) {
+ this.maxPrice = maxPrice;
+ }
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/ReadableImage.java b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/ReadableImage.java
new file mode 100644
index 0000000..30d375a
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/ReadableImage.java
@@ -0,0 +1,49 @@
+package com.salesmanager.web.entity.catalog;
+
+import java.io.Serializable;
+
+import com.salesmanager.web.entity.Entity;
+
+public class ReadableImage extends Entity implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private String imageName;
+ private String imageUrl;
+ private String externalUrl;
+ private String videoUrl;
+ private int imageType;
+ public void setImageName(String imageName) {
+ this.imageName = imageName;
+ }
+ public String getImageName() {
+ return imageName;
+ }
+ public void setImageUrl(String imageUrl) {
+ this.imageUrl = imageUrl;
+ }
+ public String getImageUrl() {
+ return imageUrl;
+ }
+ public int getImageType() {
+ return imageType;
+ }
+ public void setImageType(int imageType) {
+ this.imageType = imageType;
+ }
+ public String getExternalUrl() {
+ return externalUrl;
+ }
+ public void setExternalUrl(String externalUrl) {
+ this.externalUrl = externalUrl;
+ }
+ public String getVideoUrl() {
+ return videoUrl;
+ }
+ public void setVideoUrl(String videoUrl) {
+ this.videoUrl = videoUrl;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/SearchProductList.java b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/SearchProductList.java
new file mode 100644
index 0000000..7931181
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/catalog/SearchProductList.java
@@ -0,0 +1,26 @@
+package com.salesmanager.web.entity.catalog;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import com.salesmanager.web.entity.catalog.category.ReadableCategory;
+
+/**
+ * Object representing the results of a search query
+ * @author Carl Samson
+ *
+ */
+public class SearchProductList extends ProductList {
+
+
+ private static final long serialVersionUID = 1L;
+ private List<ReadableCategory> categoryFacets = new ArrayList<ReadableCategory>();
+ public List<ReadableCategory> getCategoryFacets() {
+ return categoryFacets;
+ }
+ public void setCategoryFacets(List<ReadableCategory> categoryFacets) {
+ this.categoryFacets = categoryFacets;
+ }
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/customer/Address.java b/sm-shop/src/main/java/com/salesmanager/shop/model/customer/Address.java
new file mode 100644
index 0000000..8d16bb7
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/customer/Address.java
@@ -0,0 +1,163 @@
+package com.salesmanager.web.entity.customer;
+
+import java.io.Serializable;
+
+import org.hibernate.validator.constraints.NotEmpty;
+
+
+public class Address implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+ @NotEmpty(message="{NotEmpty.customer.firstName}")
+ private String firstName;
+
+ @NotEmpty(message="{NotEmpty.customer.lastName}")
+ private String lastName;
+ private String bilstateOther;
+
+ private String company;
+
+ private String phone;
+ private String address;
+ private String city;
+
+
+ private String postalCode;
+
+
+ private String stateProvince;
+ private boolean billingAddress;
+
+ private String latitude;
+ private String longitude;
+
+ private String zone;//code
+
+ @NotEmpty(message="{NotEmpty.customer.billing.country}")
+ private String country;//code
+
+
+
+ public void setStateProvince(String stateProvince) {
+ this.stateProvince = stateProvince;
+ }
+
+ public void setCountry(String country) {
+ this.country = country;
+ }
+
+
+
+ public String getCompany() {
+ return company;
+ }
+
+ public void setCompany(String company) {
+ this.company = company;
+ }
+
+ public String getAddress() {
+ return address;
+ }
+
+ public void setAddress(String address) {
+ this.address = address;
+ }
+
+ public String getCity() {
+ return city;
+ }
+
+ public void setCity(String city) {
+ this.city = city;
+ }
+
+ public String getPostalCode() {
+ return postalCode;
+ }
+
+ public void setPostalCode(String postalCode) {
+ this.postalCode = postalCode;
+ }
+
+ public String getStateProvince() {
+ return stateProvince;
+ }
+
+ public String getCountry() {
+ return country;
+ }
+
+ public void setZone(String zone) {
+ this.zone = zone;
+ }
+
+ public String getZone() {
+ return zone;
+ }
+
+ public void setPhone(String phone) {
+ this.phone = phone;
+ }
+
+ public String getPhone() {
+ return phone;
+ }
+
+ public String getFirstName() {
+ return firstName;
+ }
+
+ public void setFirstName(String firstName) {
+ this.firstName = firstName;
+ }
+
+ public String getLastName() {
+ return lastName;
+ }
+
+ public void setLastName(String lastName) {
+ this.lastName = lastName;
+ }
+
+ public boolean isBillingAddress()
+ {
+ return billingAddress;
+ }
+
+ public void setBillingAddress( boolean billingAddress )
+ {
+ this.billingAddress = billingAddress;
+ }
+
+ public String getBilstateOther()
+ {
+ return bilstateOther;
+ }
+
+ public void setBilstateOther( String bilstateOther )
+ {
+ this.bilstateOther = bilstateOther;
+ }
+
+ public String getLatitude() {
+ return latitude;
+ }
+
+ public void setLatitude(String latitude) {
+ this.latitude = latitude;
+ }
+
+ public String getLongitude() {
+ return longitude;
+ }
+
+ public void setLongitude(String longitude) {
+ this.longitude = longitude;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/customer/AnonymousCustomer.java b/sm-shop/src/main/java/com/salesmanager/shop/model/customer/AnonymousCustomer.java
new file mode 100644
index 0000000..e26aef9
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/customer/AnonymousCustomer.java
@@ -0,0 +1,10 @@
+package com.salesmanager.web.entity.customer;
+
+public class AnonymousCustomer extends PersistableCustomer {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/customer/attribute/CustomerAttribute.java b/sm-shop/src/main/java/com/salesmanager/shop/model/customer/attribute/CustomerAttribute.java
new file mode 100644
index 0000000..0a97dd2
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/customer/attribute/CustomerAttribute.java
@@ -0,0 +1,16 @@
+package com.salesmanager.web.entity.customer.attribute;
+
+import java.io.Serializable;
+
+import com.salesmanager.web.entity.Entity;
+
+
+public class CustomerAttribute extends Entity implements Serializable {
+
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/customer/attribute/CustomerAttributeEntity.java b/sm-shop/src/main/java/com/salesmanager/shop/model/customer/attribute/CustomerAttributeEntity.java
new file mode 100644
index 0000000..1e183f8
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/customer/attribute/CustomerAttributeEntity.java
@@ -0,0 +1,22 @@
+package com.salesmanager.web.entity.customer.attribute;
+
+import java.io.Serializable;
+
+public class CustomerAttributeEntity extends CustomerAttribute implements
+ Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private String textValue;
+ public void setTextValue(String textValue) {
+ this.textValue = textValue;
+ }
+ public String getTextValue() {
+ return textValue;
+ }
+
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/customer/attribute/CustomerOption.java b/sm-shop/src/main/java/com/salesmanager/shop/model/customer/attribute/CustomerOption.java
new file mode 100644
index 0000000..ca147d0
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/customer/attribute/CustomerOption.java
@@ -0,0 +1,17 @@
+package com.salesmanager.web.entity.customer.attribute;
+
+import java.io.Serializable;
+
+import com.salesmanager.web.entity.Entity;
+
+public class CustomerOption extends Entity implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/customer/attribute/CustomerOptionDescription.java b/sm-shop/src/main/java/com/salesmanager/shop/model/customer/attribute/CustomerOptionDescription.java
new file mode 100644
index 0000000..af8b614
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/customer/attribute/CustomerOptionDescription.java
@@ -0,0 +1,15 @@
+package com.salesmanager.web.entity.customer.attribute;
+
+import java.io.Serializable;
+
+import com.salesmanager.web.entity.catalog.CatalogEntity;
+
+public class CustomerOptionDescription extends CatalogEntity implements
+ Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/customer/attribute/CustomerOptionEntity.java b/sm-shop/src/main/java/com/salesmanager/shop/model/customer/attribute/CustomerOptionEntity.java
new file mode 100644
index 0000000..ca8fa1b
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/customer/attribute/CustomerOptionEntity.java
@@ -0,0 +1,34 @@
+package com.salesmanager.web.entity.customer.attribute;
+
+import java.io.Serializable;
+
+public class CustomerOptionEntity extends CustomerOption implements
+ Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private int order;
+ private String code;
+ private String type;//TEXT|SELECT|RADIO|CHECKBOX
+ public void setOrder(int order) {
+ this.order = order;
+ }
+ public int getOrder() {
+ return order;
+ }
+ public void setCode(String code) {
+ this.code = code;
+ }
+ public String getCode() {
+ return code;
+ }
+ public String getType() {
+ return type;
+ }
+ public void setType(String type) {
+ this.type = type;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/customer/attribute/CustomerOptionValue.java b/sm-shop/src/main/java/com/salesmanager/shop/model/customer/attribute/CustomerOptionValue.java
new file mode 100644
index 0000000..44e5e2d
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/customer/attribute/CustomerOptionValue.java
@@ -0,0 +1,15 @@
+package com.salesmanager.web.entity.customer.attribute;
+
+import java.io.Serializable;
+
+import com.salesmanager.web.entity.Entity;
+
+public class CustomerOptionValue extends Entity implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/customer/attribute/CustomerOptionValueDescription.java b/sm-shop/src/main/java/com/salesmanager/shop/model/customer/attribute/CustomerOptionValueDescription.java
new file mode 100644
index 0000000..1098ed3
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/customer/attribute/CustomerOptionValueDescription.java
@@ -0,0 +1,15 @@
+package com.salesmanager.web.entity.customer.attribute;
+
+import java.io.Serializable;
+
+import com.salesmanager.web.entity.catalog.CatalogEntity;
+
+public class CustomerOptionValueDescription extends CatalogEntity implements
+ Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/customer/attribute/CustomerOptionValueEntity.java b/sm-shop/src/main/java/com/salesmanager/shop/model/customer/attribute/CustomerOptionValueEntity.java
new file mode 100644
index 0000000..73bebfe
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/customer/attribute/CustomerOptionValueEntity.java
@@ -0,0 +1,27 @@
+package com.salesmanager.web.entity.customer.attribute;
+
+import java.io.Serializable;
+
+public class CustomerOptionValueEntity extends CustomerOptionValue implements
+ Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private int order;
+ private String code;
+ public void setOrder(int order) {
+ this.order = order;
+ }
+ public int getOrder() {
+ return order;
+ }
+ public void setCode(String code) {
+ this.code = code;
+ }
+ public String getCode() {
+ return code;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/customer/attribute/PersistableCustomerAttribute.java b/sm-shop/src/main/java/com/salesmanager/shop/model/customer/attribute/PersistableCustomerAttribute.java
new file mode 100644
index 0000000..c740d6a
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/customer/attribute/PersistableCustomerAttribute.java
@@ -0,0 +1,25 @@
+package com.salesmanager.web.entity.customer.attribute;
+
+public class PersistableCustomerAttribute extends CustomerAttributeEntity {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private CustomerOption customerOption;
+ private CustomerOptionValue customerOptionValue;
+ public void setCustomerOptionValue(CustomerOptionValue customerOptionValue) {
+ this.customerOptionValue = customerOptionValue;
+ }
+ public CustomerOptionValue getCustomerOptionValue() {
+ return customerOptionValue;
+ }
+ public void setCustomerOption(CustomerOption customerOption) {
+ this.customerOption = customerOption;
+ }
+ public CustomerOption getCustomerOption() {
+ return customerOption;
+ }
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/customer/attribute/PersistableCustomerOption.java b/sm-shop/src/main/java/com/salesmanager/shop/model/customer/attribute/PersistableCustomerOption.java
new file mode 100644
index 0000000..7db2c79
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/customer/attribute/PersistableCustomerOption.java
@@ -0,0 +1,23 @@
+package com.salesmanager.web.entity.customer.attribute;
+
+import java.io.Serializable;
+import java.util.List;
+
+public class PersistableCustomerOption extends CustomerOptionEntity
+ implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private List<CustomerOptionDescription> descriptions;
+
+ public void setDescriptions(List<CustomerOptionDescription> descriptions) {
+ this.descriptions = descriptions;
+ }
+
+ public List<CustomerOptionDescription> getDescriptions() {
+ return descriptions;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/customer/attribute/PersistableCustomerOptionValue.java b/sm-shop/src/main/java/com/salesmanager/shop/model/customer/attribute/PersistableCustomerOptionValue.java
new file mode 100644
index 0000000..7e046e9
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/customer/attribute/PersistableCustomerOptionValue.java
@@ -0,0 +1,23 @@
+package com.salesmanager.web.entity.customer.attribute;
+
+import java.io.Serializable;
+import java.util.List;
+
+public class PersistableCustomerOptionValue extends CustomerOptionValueEntity
+ implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private List<CustomerOptionValueDescription> descriptions;
+
+ public void setDescriptions(List<CustomerOptionValueDescription> descriptions) {
+ this.descriptions = descriptions;
+ }
+
+ public List<CustomerOptionValueDescription> getDescriptions() {
+ return descriptions;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/customer/attribute/ReadableCustomerAttribute.java b/sm-shop/src/main/java/com/salesmanager/shop/model/customer/attribute/ReadableCustomerAttribute.java
new file mode 100644
index 0000000..6a8f3e7
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/customer/attribute/ReadableCustomerAttribute.java
@@ -0,0 +1,26 @@
+package com.salesmanager.web.entity.customer.attribute;
+
+public class ReadableCustomerAttribute extends CustomerAttributeEntity {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private ReadableCustomerOption customerOption;
+ private ReadableCustomerOptionValue customerOptionValue;
+ public void setCustomerOption(ReadableCustomerOption customerOption) {
+ this.customerOption = customerOption;
+ }
+ public ReadableCustomerOption getCustomerOption() {
+ return customerOption;
+ }
+ public void setCustomerOptionValue(ReadableCustomerOptionValue customerOptionValue) {
+ this.customerOptionValue = customerOptionValue;
+ }
+ public ReadableCustomerOptionValue getCustomerOptionValue() {
+ return customerOptionValue;
+ }
+
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/customer/attribute/ReadableCustomerOption.java b/sm-shop/src/main/java/com/salesmanager/shop/model/customer/attribute/ReadableCustomerOption.java
new file mode 100644
index 0000000..165b57c
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/customer/attribute/ReadableCustomerOption.java
@@ -0,0 +1,22 @@
+package com.salesmanager.web.entity.customer.attribute;
+
+import java.io.Serializable;
+
+public class ReadableCustomerOption extends CustomerOptionEntity
+ implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private CustomerOptionDescription description;
+ public void setDescription(CustomerOptionDescription description) {
+ this.description = description;
+ }
+ public CustomerOptionDescription getDescription() {
+ return description;
+ }
+
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/customer/attribute/ReadableCustomerOptionValue.java b/sm-shop/src/main/java/com/salesmanager/shop/model/customer/attribute/ReadableCustomerOptionValue.java
new file mode 100644
index 0000000..cdf0885
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/customer/attribute/ReadableCustomerOptionValue.java
@@ -0,0 +1,22 @@
+package com.salesmanager.web.entity.customer.attribute;
+
+import java.io.Serializable;
+
+public class ReadableCustomerOptionValue extends CustomerOptionValueEntity
+ implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private CustomerOptionValueDescription description;
+ public void setDescription(CustomerOptionValueDescription description) {
+ this.description = description;
+ }
+ public CustomerOptionValueDescription getDescription() {
+ return description;
+ }
+
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/customer/Customer.java b/sm-shop/src/main/java/com/salesmanager/shop/model/customer/Customer.java
new file mode 100644
index 0000000..a48b31c
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/customer/Customer.java
@@ -0,0 +1,16 @@
+package com.salesmanager.web.entity.customer;
+
+import java.io.Serializable;
+
+import com.salesmanager.web.entity.Entity;
+
+public class Customer extends Entity implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/customer/CustomerEntity.java b/sm-shop/src/main/java/com/salesmanager/shop/model/customer/CustomerEntity.java
new file mode 100644
index 0000000..75f95a1
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/customer/CustomerEntity.java
@@ -0,0 +1,134 @@
+package com.salesmanager.web.entity.customer;
+
+import java.io.Serializable;
+
+import javax.validation.Valid;
+
+import org.hibernate.validator.constraints.Email;
+import org.hibernate.validator.constraints.NotEmpty;
+
+public class CustomerEntity extends Customer implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+
+ @Email (message="{messages.invalid.email}")
+ @NotEmpty(message="{NotEmpty.customer.emailAddress}")
+ private String emailAddress;
+ @Valid
+ private Address billing;
+ private Address delivery;
+ private String gender;
+
+ private String language;
+ private String firstName;
+ private String lastName;
+
+ private String encodedPassword = null;
+ private String clearPassword = null;
+
+ private String storeCode;
+
+ @NotEmpty(message="{NotEmpty.customer.userName}")
+ private String userName;
+
+ public void setUserName(final String userName) {
+ this.userName = userName;
+ }
+
+ public String getUserName() {
+ return userName;
+ }
+
+
+ public void setStoreCode(final String storeCode) {
+ this.storeCode = storeCode;
+ }
+
+
+ public String getStoreCode() {
+ return storeCode;
+ }
+
+
+ public void setEmailAddress(final String emailAddress) {
+ this.emailAddress = emailAddress;
+ }
+
+
+ public String getEmailAddress() {
+ return emailAddress;
+ }
+
+
+ public void setLanguage(final String language) {
+ this.language = language;
+ }
+ public String getLanguage() {
+ return language;
+ }
+
+
+ public Address getBilling() {
+ return billing;
+ }
+ public void setBilling(final Address billing) {
+ this.billing = billing;
+ }
+ public Address getDelivery() {
+ return delivery;
+ }
+ public void setDelivery(final Address delivery) {
+ this.delivery = delivery;
+ }
+ public void setGender(final String gender) {
+ this.gender = gender;
+ }
+ public String getGender() {
+ return gender;
+ }
+
+
+ public String getFirstName() {
+ return firstName;
+ }
+
+
+ public void setFirstName(String firstName) {
+ this.firstName = firstName;
+ }
+
+
+ public String getLastName() {
+ return lastName;
+ }
+
+
+ public void setLastName(String lastName) {
+ this.lastName = lastName;
+ }
+
+ public String getEncodedPassword() {
+ return encodedPassword;
+ }
+
+ public void setEncodedPassword(String encodedPassword) {
+ this.encodedPassword = encodedPassword;
+ }
+
+ public String getClearPassword() {
+ return clearPassword;
+ }
+
+ public void setClearPassword(String clearPassword) {
+ this.clearPassword = clearPassword;
+ }
+
+
+
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/customer/CustomerPassword.java b/sm-shop/src/main/java/com/salesmanager/shop/model/customer/CustomerPassword.java
new file mode 100644
index 0000000..753df66
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/customer/CustomerPassword.java
@@ -0,0 +1,45 @@
+package com.salesmanager.web.entity.customer;
+
+import java.io.Serializable;
+
+import javax.validation.constraints.Size;
+
+import org.hibernate.validator.constraints.NotEmpty;
+
+import com.salesmanager.web.utils.FieldMatch;
+
+@FieldMatch.List({
+ @FieldMatch(first="password",second="checkPassword",message="password.notequal")
+})
+public class CustomerPassword implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ @NotEmpty( message="{currentpassword.not.empty}")
+ private String currentPassword;
+ @Size(min=6, message="{newpassword.not.empty}")
+ private String password;
+ @Size(min=6, message="{repeatpassword.not.empty}")
+ private String checkPassword;
+ public String getCurrentPassword() {
+ return currentPassword;
+ }
+ public void setCurrentPassword(String currentPassword) {
+ this.currentPassword = currentPassword;
+ }
+ public String getPassword() {
+ return password;
+ }
+ public void setPassword(String password) {
+ this.password = password;
+ }
+ public String getCheckPassword() {
+ return checkPassword;
+ }
+ public void setCheckPassword(String checkPassword) {
+ this.checkPassword = checkPassword;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/customer/DeliveryEntity.java b/sm-shop/src/main/java/com/salesmanager/shop/model/customer/DeliveryEntity.java
new file mode 100644
index 0000000..d291283
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/customer/DeliveryEntity.java
@@ -0,0 +1,41 @@
+package com.salesmanager.web.entity.customer;
+
+import java.io.Serializable;
+
+import javax.persistence.Transient;
+
+
+public class DeliveryEntity extends Address implements Serializable {
+
+
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+ @Transient
+ private String countryName;
+
+ @Transient
+ private String provinceName;
+
+
+ public String getCountryName() {
+ return countryName;
+ }
+
+ public void setCountryName(String countryName) {
+ this.countryName = countryName;
+ }
+
+ public String getProvinceName() {
+ return provinceName;
+ }
+
+ public void setProvinceName(String provinceName) {
+ this.provinceName = provinceName;
+ }
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/customer/PersistableCustomer.java b/sm-shop/src/main/java/com/salesmanager/shop/model/customer/PersistableCustomer.java
new file mode 100644
index 0000000..6dc4511
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/customer/PersistableCustomer.java
@@ -0,0 +1,23 @@
+package com.salesmanager.web.entity.customer;
+
+import java.io.Serializable;
+import java.util.List;
+
+import com.salesmanager.web.entity.customer.attribute.PersistableCustomerAttribute;
+
+public class PersistableCustomer extends CustomerEntity implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private List<PersistableCustomerAttribute> attributes;
+ public void setAttributes(List<PersistableCustomerAttribute> attributes) {
+ this.attributes = attributes;
+ }
+ public List<PersistableCustomerAttribute> getAttributes() {
+ return attributes;
+ }
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/customer/ReadableCustomer.java b/sm-shop/src/main/java/com/salesmanager/shop/model/customer/ReadableCustomer.java
new file mode 100644
index 0000000..36c20bc
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/customer/ReadableCustomer.java
@@ -0,0 +1,23 @@
+package com.salesmanager.web.entity.customer;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+import com.salesmanager.web.entity.customer.attribute.ReadableCustomerAttribute;
+
+public class ReadableCustomer extends CustomerEntity implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private List<ReadableCustomerAttribute> attributes = new ArrayList<ReadableCustomerAttribute>();
+ public void setAttributes(List<ReadableCustomerAttribute> attributes) {
+ this.attributes = attributes;
+ }
+ public List<ReadableCustomerAttribute> getAttributes() {
+ return attributes;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/customer/ReadableDelivery.java b/sm-shop/src/main/java/com/salesmanager/shop/model/customer/ReadableDelivery.java
new file mode 100644
index 0000000..02fe16d
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/customer/ReadableDelivery.java
@@ -0,0 +1,10 @@
+package com.salesmanager.web.entity.customer;
+
+public class ReadableDelivery extends DeliveryEntity {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/customer/SecuredCustomer.java b/sm-shop/src/main/java/com/salesmanager/shop/model/customer/SecuredCustomer.java
new file mode 100644
index 0000000..061537b
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/customer/SecuredCustomer.java
@@ -0,0 +1,51 @@
+package com.salesmanager.web.entity.customer;
+
+import java.io.Serializable;
+
+import javax.validation.constraints.Size;
+
+import com.salesmanager.web.utils.FieldMatch;
+
+
+@FieldMatch.List({
+ @FieldMatch(first="password",second="checkPassword",message="password.notequal")
+
+})
+public class SecuredCustomer extends PersistableCustomer implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+
+
+ @Size(min=6, message="{registration.password.not.empty}")
+ private String password;
+
+ @Size(min=6, message="{registration.password.not.empty}")
+ private String checkPassword;
+
+
+
+ public String getPassword() {
+ return password;
+ }
+
+ public void setPassword(String password) {
+ this.password = password;
+ }
+
+ public String getCheckPassword()
+ {
+ return checkPassword;
+ }
+
+ public void setCheckPassword( String checkPassword )
+ {
+ this.checkPassword = checkPassword;
+ }
+
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/customer/SecuredShopPersistableCustomer.java b/sm-shop/src/main/java/com/salesmanager/shop/model/customer/SecuredShopPersistableCustomer.java
new file mode 100644
index 0000000..a1d3ff9
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/customer/SecuredShopPersistableCustomer.java
@@ -0,0 +1,24 @@
+package com.salesmanager.web.entity.customer;
+
+
+public class SecuredShopPersistableCustomer extends SecuredCustomer {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+
+ private String checkPassword;
+
+
+ public String getCheckPassword() {
+ return checkPassword;
+ }
+ public void setCheckPassword(String checkPassword) {
+ this.checkPassword = checkPassword;
+ }
+
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/Entity.java b/sm-shop/src/main/java/com/salesmanager/shop/model/Entity.java
new file mode 100644
index 0000000..b4d4d93
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/Entity.java
@@ -0,0 +1,19 @@
+package com.salesmanager.web.entity;
+
+import java.io.Serializable;
+
+public class Entity implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private Long id = 0L;
+ public void setId(Long id) {
+ this.id = id;
+ }
+ public Long getId() {
+ return id;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/order/Order.java b/sm-shop/src/main/java/com/salesmanager/shop/model/order/Order.java
new file mode 100644
index 0000000..de170b3
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/order/Order.java
@@ -0,0 +1,14 @@
+package com.salesmanager.web.entity.order;
+
+import java.io.Serializable;
+
+import com.salesmanager.web.entity.Entity;
+
+public class Order extends Entity implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/order/OrderEntity.java b/sm-shop/src/main/java/com/salesmanager/shop/model/order/OrderEntity.java
new file mode 100644
index 0000000..f7ac720
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/order/OrderEntity.java
@@ -0,0 +1,99 @@
+package com.salesmanager.web.entity.order;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+import com.salesmanager.core.business.order.model.orderstatus.OrderStatus;
+import com.salesmanager.core.business.order.model.payment.CreditCard;
+import com.salesmanager.core.business.payments.model.PaymentType;
+
+public class OrderEntity extends Order implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private List<OrderTotal> totals;
+
+ private PaymentType paymentType;
+ private String paymentModule;
+ private String shippingModule;
+ private List<OrderStatus> previousOrderStatus;
+ private OrderStatus orderStatus;
+ private CreditCard creditCard;
+ private Date datePurchased;
+ private String currency;
+ private boolean customerAgreed;
+ private boolean confirmedAddress;
+
+ public void setTotals(List<OrderTotal> totals) {
+ this.totals = totals;
+ }
+ public List<OrderTotal> getTotals() {
+ return totals;
+ }
+ public PaymentType getPaymentType() {
+ return paymentType;
+ }
+ public void setPaymentType(PaymentType paymentType) {
+ this.paymentType = paymentType;
+ }
+ public String getPaymentModule() {
+ return paymentModule;
+ }
+ public void setPaymentModule(String paymentModule) {
+ this.paymentModule = paymentModule;
+ }
+ public String getShippingModule() {
+ return shippingModule;
+ }
+ public void setShippingModule(String shippingModule) {
+ this.shippingModule = shippingModule;
+ }
+
+ public CreditCard getCreditCard() {
+ return creditCard;
+ }
+ public void setCreditCard(CreditCard creditCard) {
+ this.creditCard = creditCard;
+ }
+ public Date getDatePurchased() {
+ return datePurchased;
+ }
+ public void setDatePurchased(Date datePurchased) {
+ this.datePurchased = datePurchased;
+ }
+ public void setPreviousOrderStatus(List<OrderStatus> previousOrderStatus) {
+ this.previousOrderStatus = previousOrderStatus;
+ }
+ public List<OrderStatus> getPreviousOrderStatus() {
+ return previousOrderStatus;
+ }
+ public void setOrderStatus(OrderStatus orderStatus) {
+ this.orderStatus = orderStatus;
+ }
+ public OrderStatus getOrderStatus() {
+ return orderStatus;
+ }
+ public String getCurrency() {
+ return currency;
+ }
+ public void setCurrency(String currency) {
+ this.currency = currency;
+ }
+ public boolean isCustomerAgreed() {
+ return customerAgreed;
+ }
+ public void setCustomerAgreed(boolean customerAgreed) {
+ this.customerAgreed = customerAgreed;
+ }
+ public boolean isConfirmedAddress() {
+ return confirmedAddress;
+ }
+ public void setConfirmedAddress(boolean confirmedAddress) {
+ this.confirmedAddress = confirmedAddress;
+ }
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/order/OrderProduct.java b/sm-shop/src/main/java/com/salesmanager/shop/model/order/OrderProduct.java
new file mode 100644
index 0000000..1a77abe
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/order/OrderProduct.java
@@ -0,0 +1,14 @@
+package com.salesmanager.web.entity.order;
+
+import java.io.Serializable;
+
+import com.salesmanager.web.entity.Entity;
+
+public class OrderProduct extends Entity implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/order/OrderProductEntity.java b/sm-shop/src/main/java/com/salesmanager/shop/model/order/OrderProductEntity.java
new file mode 100644
index 0000000..2bd7fd7
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/order/OrderProductEntity.java
@@ -0,0 +1,35 @@
+package com.salesmanager.web.entity.order;
+
+import java.io.Serializable;
+
+import com.salesmanager.web.entity.catalog.product.ReadableProduct;
+
+public class OrderProductEntity extends OrderProduct implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private int orderedQuantity;
+ private ReadableProduct product;
+
+
+
+
+ public void setOrderedQuantity(int orderedQuantity) {
+ this.orderedQuantity = orderedQuantity;
+ }
+ public int getOrderedQuantity() {
+ return orderedQuantity;
+ }
+ public ReadableProduct getProduct() {
+ return product;
+ }
+ public void setProduct(ReadableProduct product) {
+ this.product = product;
+ }
+
+
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/order/OrderTotal.java b/sm-shop/src/main/java/com/salesmanager/shop/model/order/OrderTotal.java
new file mode 100644
index 0000000..0a0ec6a
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/order/OrderTotal.java
@@ -0,0 +1,51 @@
+package com.salesmanager.web.entity.order;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+import com.salesmanager.web.entity.Entity;
+
+public class OrderTotal extends Entity implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private String title;
+ private String code;
+ private int order;
+ private String module;
+ private BigDecimal value;
+ public String getTitle() {
+ return title;
+ }
+ public void setTitle(String title) {
+ this.title = title;
+ }
+ public String getCode() {
+ return code;
+ }
+ public void setCode(String code) {
+ this.code = code;
+ }
+ public int getOrder() {
+ return order;
+ }
+ public void setOrder(int order) {
+ this.order = order;
+ }
+ public String getModule() {
+ return module;
+ }
+ public void setModule(String module) {
+ this.module = module;
+ }
+ public BigDecimal getValue() {
+ return value;
+ }
+ public void setValue(BigDecimal value) {
+ this.value = value;
+ }
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/order/PersistableOrder.java b/sm-shop/src/main/java/com/salesmanager/shop/model/order/PersistableOrder.java
new file mode 100644
index 0000000..7bcc26e
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/order/PersistableOrder.java
@@ -0,0 +1,40 @@
+package com.salesmanager.web.entity.order;
+
+import java.io.Serializable;
+import java.util.List;
+
+import com.salesmanager.web.entity.customer.PersistableCustomer;
+
+public class PersistableOrder extends OrderEntity implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private PersistableCustomer customer;//might already exist if id > 0, otherwise persist
+ private List<PersistableOrderProduct> orderProductItems;
+ private boolean shipToBillingAdress = true;
+
+
+ public void setOrderProductItems(List<PersistableOrderProduct> orderProductItems) {
+ this.orderProductItems = orderProductItems;
+ }
+ public List<PersistableOrderProduct> getOrderProductItems() {
+ return orderProductItems;
+ }
+ public void setCustomer(PersistableCustomer customer) {
+ this.customer = customer;
+ }
+ public PersistableCustomer getCustomer() {
+ return customer;
+ }
+ public boolean isShipToBillingAdress() {
+ return shipToBillingAdress;
+ }
+ public void setShipToBillingAdress(boolean shipToBillingAdress) {
+ this.shipToBillingAdress = shipToBillingAdress;
+ }
+
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/order/PersistableOrderProduct.java b/sm-shop/src/main/java/com/salesmanager/shop/model/order/PersistableOrderProduct.java
new file mode 100644
index 0000000..af015fc
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/order/PersistableOrderProduct.java
@@ -0,0 +1,37 @@
+package com.salesmanager.web.entity.order;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.List;
+
+import com.salesmanager.web.entity.catalog.product.attribute.ProductAttribute;
+
+public class PersistableOrderProduct extends OrderProductEntity implements
+ Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private BigDecimal price;//specify final price
+ private List<ProductAttribute> attributes;//may have attributes
+
+
+
+ public void setAttributes(List<ProductAttribute> attributes) {
+ this.attributes = attributes;
+ }
+
+ public List<ProductAttribute> getAttributes() {
+ return attributes;
+ }
+
+ public BigDecimal getPrice() {
+ return price;
+ }
+
+ public void setPrice(BigDecimal price) {
+ this.price = price;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/order/ReadableOrder.java b/sm-shop/src/main/java/com/salesmanager/shop/model/order/ReadableOrder.java
new file mode 100644
index 0000000..6eba97e
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/order/ReadableOrder.java
@@ -0,0 +1,83 @@
+package com.salesmanager.web.entity.order;
+
+import java.io.Serializable;
+import java.util.List;
+
+import com.salesmanager.core.business.reference.currency.model.Currency;
+import com.salesmanager.web.entity.customer.Address;
+import com.salesmanager.web.entity.customer.ReadableCustomer;
+import com.salesmanager.web.entity.customer.ReadableDelivery;
+
+public class ReadableOrder extends OrderEntity implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private ReadableCustomer customer;
+ private List<ReadableOrderProduct> products;
+ private Currency currencyModel;
+
+ private Address billing;
+ private ReadableDelivery delivery;
+
+
+
+ public void setCustomer(ReadableCustomer customer) {
+ this.customer = customer;
+ }
+ public ReadableCustomer getCustomer() {
+ return customer;
+ }
+ public OrderTotal getTotal() {
+ return total;
+ }
+ public void setTotal(OrderTotal total) {
+ this.total = total;
+ }
+ public OrderTotal getTax() {
+ return tax;
+ }
+ public void setTax(OrderTotal tax) {
+ this.tax = tax;
+ }
+ public OrderTotal getShipping() {
+ return shipping;
+ }
+ public void setShipping(OrderTotal shipping) {
+ this.shipping = shipping;
+ }
+
+ public List<ReadableOrderProduct> getProducts() {
+ return products;
+ }
+ public void setProducts(List<ReadableOrderProduct> products) {
+ this.products = products;
+ }
+
+ public Currency getCurrencyModel() {
+ return currencyModel;
+ }
+ public void setCurrencyModel(Currency currencyModel) {
+ this.currencyModel = currencyModel;
+ }
+
+ public Address getBilling() {
+ return billing;
+ }
+ public void setBilling(Address billing) {
+ this.billing = billing;
+ }
+
+ public Address getDelivery() {
+ return delivery;
+ }
+ public void setDelivery(ReadableDelivery delivery) {
+ this.delivery = delivery;
+ }
+
+ private OrderTotal total;
+ private OrderTotal tax;
+ private OrderTotal shipping;
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/order/ReadableOrderList.java b/sm-shop/src/main/java/com/salesmanager/shop/model/order/ReadableOrderList.java
new file mode 100644
index 0000000..b11034e
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/order/ReadableOrderList.java
@@ -0,0 +1,32 @@
+package com.salesmanager.web.entity.order;
+
+import java.io.Serializable;
+import java.util.List;
+
+import com.salesmanager.web.entity.ServiceEntity;
+
+public class ReadableOrderList extends ServiceEntity implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private int total;
+ private List<ReadableOrder> orders;
+
+
+
+ public int getTotal() {
+ return total;
+ }
+ public void setTotal(int total) {
+ this.total = total;
+ }
+ public List<ReadableOrder> getOrders() {
+ return orders;
+ }
+ public void setOrders(List<ReadableOrder> orders) {
+ this.orders = orders;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/order/ReadableOrderProduct.java b/sm-shop/src/main/java/com/salesmanager/shop/model/order/ReadableOrderProduct.java
new file mode 100644
index 0000000..3175eac
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/order/ReadableOrderProduct.java
@@ -0,0 +1,59 @@
+package com.salesmanager.web.entity.order;
+
+import java.io.Serializable;
+import java.util.List;
+
+public class ReadableOrderProduct extends OrderProductEntity implements
+ Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private String productName;
+ private String price;
+ private String subTotal;
+
+ private List<ReadableOrderProductAttribute> attributes = null;
+
+ private String sku;
+ private String image;
+ public String getProductName() {
+ return productName;
+ }
+ public void setProductName(String productName) {
+ this.productName = productName;
+ }
+ public String getSku() {
+ return sku;
+ }
+ public void setSku(String sku) {
+ this.sku = sku;
+ }
+ public String getImage() {
+ return image;
+ }
+ public void setImage(String image) {
+ this.image = image;
+ }
+ public String getPrice() {
+ return price;
+ }
+ public void setPrice(String price) {
+ this.price = price;
+ }
+ public String getSubTotal() {
+ return subTotal;
+ }
+ public void setSubTotal(String subTotal) {
+ this.subTotal = subTotal;
+ }
+ public List<ReadableOrderProductAttribute> getAttributes() {
+ return attributes;
+ }
+ public void setAttributes(List<ReadableOrderProductAttribute> attributes) {
+ this.attributes = attributes;
+ }
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/order/ReadableOrderProductAttribute.java b/sm-shop/src/main/java/com/salesmanager/shop/model/order/ReadableOrderProductAttribute.java
new file mode 100644
index 0000000..b61f488
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/order/ReadableOrderProductAttribute.java
@@ -0,0 +1,36 @@
+package com.salesmanager.web.entity.order;
+
+import java.io.Serializable;
+
+import com.salesmanager.web.entity.Entity;
+
+public class ReadableOrderProductAttribute extends Entity implements Serializable {
+
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private String attributeName;
+ private String attributePrice;
+ private String attributeValue;
+ public String getAttributeName() {
+ return attributeName;
+ }
+ public void setAttributeName(String attributeName) {
+ this.attributeName = attributeName;
+ }
+ public String getAttributePrice() {
+ return attributePrice;
+ }
+ public void setAttributePrice(String attributePrice) {
+ this.attributePrice = attributePrice;
+ }
+ public String getAttributeValue() {
+ return attributeValue;
+ }
+ public void setAttributeValue(String attributeValue) {
+ this.attributeValue = attributeValue;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/order/ReadableOrderProductDownload.java b/sm-shop/src/main/java/com/salesmanager/shop/model/order/ReadableOrderProductDownload.java
new file mode 100644
index 0000000..64da1ab
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/order/ReadableOrderProductDownload.java
@@ -0,0 +1,61 @@
+package com.salesmanager.web.entity.order;
+
+import java.io.Serializable;
+
+import com.salesmanager.web.entity.Entity;
+
+public class ReadableOrderProductDownload extends Entity implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+ private long orderId;
+
+ private String productName;
+ private String downloadUrl;
+
+ private String fileName;
+
+ private int downloadExpiryDays = 0;
+ private int downloadCount = 0;
+ public int getDownloadExpiryDays() {
+ return downloadExpiryDays;
+ }
+ public void setDownloadExpiryDays(int downloadExpiryDays) {
+ this.downloadExpiryDays = downloadExpiryDays;
+ }
+ public int getDownloadCount() {
+ return downloadCount;
+ }
+ public void setDownloadCount(int downloadCount) {
+ this.downloadCount = downloadCount;
+ }
+ public String getProductName() {
+ return productName;
+ }
+ public void setProductName(String productName) {
+ this.productName = productName;
+ }
+ public String getDownloadUrl() {
+ return downloadUrl;
+ }
+ public void setDownloadUrl(String downloadUrl) {
+ this.downloadUrl = downloadUrl;
+ }
+ public long getOrderId() {
+ return orderId;
+ }
+ public void setOrderId(long orderId) {
+ this.orderId = orderId;
+ }
+ public String getFileName() {
+ return fileName;
+ }
+ public void setFileName(String fileName) {
+ this.fileName = fileName;
+ }
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/order/ReadableOrderTotal.java b/sm-shop/src/main/java/com/salesmanager/shop/model/order/ReadableOrderTotal.java
new file mode 100644
index 0000000..75839c3
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/order/ReadableOrderTotal.java
@@ -0,0 +1,19 @@
+package com.salesmanager.web.entity.order;
+
+import java.io.Serializable;
+
+public class ReadableOrderTotal extends OrderTotal implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private String total;
+ public String getTotal() {
+ return total;
+ }
+ public void setTotal(String total) {
+ this.total = total;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/order/ReadableShippingSummary.java b/sm-shop/src/main/java/com/salesmanager/shop/model/order/ReadableShippingSummary.java
new file mode 100644
index 0000000..09c5a78
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/order/ReadableShippingSummary.java
@@ -0,0 +1,113 @@
+package com.salesmanager.web.entity.order;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import com.salesmanager.core.business.shipping.model.ShippingOption;
+import com.salesmanager.web.entity.customer.Address;
+import com.salesmanager.web.entity.customer.ReadableDelivery;
+
+public class ReadableShippingSummary implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private BigDecimal shipping;
+ private BigDecimal handling;
+ private String shippingModule;
+ private String shippingOption;
+ private boolean freeShipping;
+ private boolean taxOnShipping;
+ private String shippingText;
+ private String handlingText;
+ private ReadableDelivery delivery;
+
+
+ private ShippingOption selectedShippingOption = null;//Default selected option
+ private List<ShippingOption> shippingOptions = null;
+
+ /** additional information that comes from the quote **/
+ private Map<String,String> quoteInformations = new HashMap<String,String>();
+
+
+ public BigDecimal getShipping() {
+ return shipping;
+ }
+ public void setShipping(BigDecimal shipping) {
+ this.shipping = shipping;
+ }
+ public BigDecimal getHandling() {
+ return handling;
+ }
+ public void setHandling(BigDecimal handling) {
+ this.handling = handling;
+ }
+ public String getShippingModule() {
+ return shippingModule;
+ }
+ public void setShippingModule(String shippingModule) {
+ this.shippingModule = shippingModule;
+ }
+ public String getShippingOption() {
+ return shippingOption;
+ }
+ public void setShippingOption(String shippingOption) {
+ this.shippingOption = shippingOption;
+ }
+ public boolean isFreeShipping() {
+ return freeShipping;
+ }
+ public void setFreeShipping(boolean freeShipping) {
+ this.freeShipping = freeShipping;
+ }
+ public boolean isTaxOnShipping() {
+ return taxOnShipping;
+ }
+ public void setTaxOnShipping(boolean taxOnShipping) {
+ this.taxOnShipping = taxOnShipping;
+ }
+ public String getShippingText() {
+ return shippingText;
+ }
+ public void setShippingText(String shippingText) {
+ this.shippingText = shippingText;
+ }
+ public String getHandlingText() {
+ return handlingText;
+ }
+ public void setHandlingText(String handlingText) {
+ this.handlingText = handlingText;
+ }
+ public static long getSerialversionuid() {
+ return serialVersionUID;
+ }
+ public List<ShippingOption> getShippingOptions() {
+ return shippingOptions;
+ }
+ public void setShippingOptions(List<ShippingOption> shippingOptions) {
+ this.shippingOptions = shippingOptions;
+ }
+ public ShippingOption getSelectedShippingOption() {
+ return selectedShippingOption;
+ }
+ public void setSelectedShippingOption(ShippingOption selectedShippingOption) {
+ this.selectedShippingOption = selectedShippingOption;
+ }
+ public Map<String,String> getQuoteInformations() {
+ return quoteInformations;
+ }
+ public void setQuoteInformations(Map<String,String> quoteInformations) {
+ this.quoteInformations = quoteInformations;
+ }
+ public Address getDelivery() {
+ return delivery;
+ }
+ public void setDelivery(ReadableDelivery delivery) {
+ this.delivery = delivery;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/order/ReadableShopOrder.java b/sm-shop/src/main/java/com/salesmanager/shop/model/order/ReadableShopOrder.java
new file mode 100644
index 0000000..3cb13c6
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/order/ReadableShopOrder.java
@@ -0,0 +1,45 @@
+package com.salesmanager.web.entity.order;
+
+import java.io.Serializable;
+import java.util.List;
+
+public class ReadableShopOrder extends ReadableOrder implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+ private ReadableShippingSummary shippingSummary;
+
+ private String errorMessage = null;//global error message
+ private List<ReadableOrderTotal> subTotals;//order calculation
+ private String grandTotal;//grand total - order calculation
+
+
+ public String getErrorMessage() {
+ return errorMessage;
+ }
+ public void setErrorMessage(String errorMessage) {
+ this.errorMessage = errorMessage;
+ }
+ public String getGrandTotal() {
+ return grandTotal;
+ }
+ public void setGrandTotal(String grandTotal) {
+ this.grandTotal = grandTotal;
+ }
+ public List<ReadableOrderTotal> getSubTotals() {
+ return subTotals;
+ }
+ public void setSubTotals(List<ReadableOrderTotal> subTotals) {
+ this.subTotals = subTotals;
+ }
+ public ReadableShippingSummary getShippingSummary() {
+ return shippingSummary;
+ }
+ public void setShippingSummary(ReadableShippingSummary shippingSummary) {
+ this.shippingSummary = shippingSummary;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/order/ShopOrder.java b/sm-shop/src/main/java/com/salesmanager/shop/model/order/ShopOrder.java
new file mode 100644
index 0000000..e80bd1c
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/order/ShopOrder.java
@@ -0,0 +1,93 @@
+package com.salesmanager.web.entity.order;
+
+import java.io.Serializable;
+import java.util.List;
+import java.util.Map;
+
+import com.salesmanager.core.business.order.model.OrderTotalSummary;
+import com.salesmanager.core.business.shipping.model.ShippingOption;
+import com.salesmanager.core.business.shipping.model.ShippingSummary;
+import com.salesmanager.core.business.shoppingcart.model.ShoppingCartItem;
+
+/**
+ * Orders saved on the website
+ * @author Carl Samson
+ *
+ */
+public class ShopOrder extends PersistableOrder implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private List<ShoppingCartItem> shoppingCartItems;//overrides parent API list of shoppingcartitem
+
+ private OrderTotalSummary orderTotalSummary;//The order total displayed to the end user. That object will be used when committing the order
+
+
+ private ShippingSummary shippingSummary;
+ private ShippingOption selectedShippingOption = null;//Default selected option
+
+ private String defaultPaymentMethodCode = null;
+
+
+ private String paymentMethodType = null;//user selected payment type
+ private Map<String,String> payment;//user payment information
+
+ private String errorMessage = null;
+
+
+ public void setShoppingCartItems(List<ShoppingCartItem> shoppingCartItems) {
+ this.shoppingCartItems = shoppingCartItems;
+ }
+ public List<ShoppingCartItem> getShoppingCartItems() {
+ return shoppingCartItems;
+ }
+
+ public void setOrderTotalSummary(OrderTotalSummary orderTotalSummary) {
+ this.orderTotalSummary = orderTotalSummary;
+ }
+ public OrderTotalSummary getOrderTotalSummary() {
+ return orderTotalSummary;
+ }
+
+ public ShippingSummary getShippingSummary() {
+ return shippingSummary;
+ }
+ public void setShippingSummary(ShippingSummary shippingSummary) {
+ this.shippingSummary = shippingSummary;
+ }
+ public ShippingOption getSelectedShippingOption() {
+ return selectedShippingOption;
+ }
+ public void setSelectedShippingOption(ShippingOption selectedShippingOption) {
+ this.selectedShippingOption = selectedShippingOption;
+ }
+ public String getErrorMessage() {
+ return errorMessage;
+ }
+ public void setErrorMessage(String errorMessage) {
+ this.errorMessage = errorMessage;
+ }
+ public String getPaymentMethodType() {
+ return paymentMethodType;
+ }
+ public void setPaymentMethodType(String paymentMethodType) {
+ this.paymentMethodType = paymentMethodType;
+ }
+ public Map<String,String> getPayment() {
+ return payment;
+ }
+ public void setPayment(Map<String,String> payment) {
+ this.payment = payment;
+ }
+ public String getDefaultPaymentMethodCode() {
+ return defaultPaymentMethodCode;
+ }
+ public void setDefaultPaymentMethodCode(String defaultPaymentMethodCode) {
+ this.defaultPaymentMethodCode = defaultPaymentMethodCode;
+ }
+
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/ServiceEntity.java b/sm-shop/src/main/java/com/salesmanager/shop/model/ServiceEntity.java
new file mode 100644
index 0000000..86aba5d
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/ServiceEntity.java
@@ -0,0 +1,21 @@
+package com.salesmanager.web.entity;
+
+public abstract class ServiceEntity {
+
+ private int status = 0;
+ private String message = null;
+
+ public int getStatus() {
+ return status;
+ }
+ public void setStatus(int status) {
+ this.status = status;
+ }
+ public String getMessage() {
+ return message;
+ }
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/shop/Breadcrumb.java b/sm-shop/src/main/java/com/salesmanager/shop/model/shop/Breadcrumb.java
new file mode 100644
index 0000000..4fd9f5f
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/shop/Breadcrumb.java
@@ -0,0 +1,44 @@
+package com.salesmanager.web.entity.shop;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+import com.salesmanager.core.business.reference.language.model.Language;
+
+public class Breadcrumb implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private BreadcrumbItemType itemType;
+ private Language language;
+ private String urlRefContent = null;
+ private List<BreadcrumbItem> breadCrumbs = new ArrayList<BreadcrumbItem>();
+ public Language getLanguage() {
+ return language;
+ }
+ public void setLanguage(Language language) {
+ this.language = language;
+ }
+ public List<BreadcrumbItem> getBreadCrumbs() {
+ return breadCrumbs;
+ }
+ public void setBreadCrumbs(List<BreadcrumbItem> breadCrumbs) {
+ this.breadCrumbs = breadCrumbs;
+ }
+ public void setItemType(BreadcrumbItemType itemType) {
+ this.itemType = itemType;
+ }
+ public BreadcrumbItemType getItemType() {
+ return itemType;
+ }
+ public String getUrlRefContent() {
+ return urlRefContent;
+ }
+ public void setUrlRefContent(String urlRefContent) {
+ this.urlRefContent = urlRefContent;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/shop/BreadcrumbItem.java b/sm-shop/src/main/java/com/salesmanager/shop/model/shop/BreadcrumbItem.java
new file mode 100644
index 0000000..a2b57a2
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/shop/BreadcrumbItem.java
@@ -0,0 +1,40 @@
+package com.salesmanager.web.entity.shop;
+
+import java.io.Serializable;
+
+public class BreadcrumbItem implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private Long id;
+ private String label;
+ private String url;
+ private BreadcrumbItemType itemType;
+ public Long getId() {
+ return id;
+ }
+ public void setId(Long id) {
+ this.id = id;
+ }
+ public String getLabel() {
+ return label;
+ }
+ public void setLabel(String label) {
+ this.label = label;
+ }
+ public String getUrl() {
+ return url;
+ }
+ public void setUrl(String url) {
+ this.url = url;
+ }
+ public BreadcrumbItemType getItemType() {
+ return itemType;
+ }
+ public void setItemType(BreadcrumbItemType itemType) {
+ this.itemType = itemType;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/shop/BreadcrumbItemType.java b/sm-shop/src/main/java/com/salesmanager/shop/model/shop/BreadcrumbItemType.java
new file mode 100644
index 0000000..217244d
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/shop/BreadcrumbItemType.java
@@ -0,0 +1,7 @@
+package com.salesmanager.web.entity.shop;
+
+public enum BreadcrumbItemType {
+
+ CATEGORY, PRODUCT, HOME, PAGE
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/shop/ContactForm.java b/sm-shop/src/main/java/com/salesmanager/shop/model/shop/ContactForm.java
new file mode 100644
index 0000000..e8e21b7
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/shop/ContactForm.java
@@ -0,0 +1,45 @@
+package com.salesmanager.web.entity.shop;
+
+import org.hibernate.validator.constraints.Email;
+import org.hibernate.validator.constraints.NotEmpty;
+
+public class ContactForm {
+
+ @NotEmpty
+ private String name;
+ @NotEmpty
+ private String subject;
+ @Email
+ private String email;
+ @NotEmpty
+ private String comment;
+
+
+ public String getName() {
+ return name;
+ }
+ public void setName(String name) {
+ this.name = name;
+ }
+ public String getEmail() {
+ return email;
+ }
+ public void setEmail(String email) {
+ this.email = email;
+ }
+ public String getComment() {
+ return comment;
+ }
+ public void setComment(String comment) {
+ this.comment = comment;
+ }
+
+ public String getSubject() {
+ return subject;
+ }
+ public void setSubject(String subject) {
+ this.subject = subject;
+ }
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/shop/MerchantStoreEntity.java b/sm-shop/src/main/java/com/salesmanager/shop/model/shop/MerchantStoreEntity.java
new file mode 100644
index 0000000..64447d9
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/shop/MerchantStoreEntity.java
@@ -0,0 +1,49 @@
+package com.salesmanager.web.entity.shop;
+
+import java.io.Serializable;
+
+public class MerchantStoreEntity implements Serializable {
+
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private int id;
+ private String code;
+ private String name;
+ private String defaultLanguage;
+
+ public int getId() {
+ return id;
+ }
+
+ public void setId(int id) {
+ this.id = id;
+ }
+
+ public String getCode() {
+ return code;
+ }
+
+ public void setCode(String code) {
+ this.code = code;
+ }
+
+ public String getDefaultLanguage() {
+ return defaultLanguage;
+ }
+
+ public void setDefaultLanguage(String defaultLanguage) {
+ this.defaultLanguage = defaultLanguage;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/shop/PageInformation.java b/sm-shop/src/main/java/com/salesmanager/shop/model/shop/PageInformation.java
new file mode 100644
index 0000000..5cc0524
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/shop/PageInformation.java
@@ -0,0 +1,40 @@
+package com.salesmanager.web.entity.shop;
+
+import java.io.Serializable;
+
+public class PageInformation implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private String pageTitle;
+ private String pageDescription;
+ private String pageKeywords;
+ private String pageUrl;
+ public String getPageTitle() {
+ return pageTitle;
+ }
+ public void setPageTitle(String pageTitle) {
+ this.pageTitle = pageTitle;
+ }
+ public String getPageDescription() {
+ return pageDescription;
+ }
+ public void setPageDescription(String pageDescription) {
+ this.pageDescription = pageDescription;
+ }
+ public String getPageKeywords() {
+ return pageKeywords;
+ }
+ public void setPageKeywords(String pageKeywords) {
+ this.pageKeywords = pageKeywords;
+ }
+ public void setPageUrl(String pageUrl) {
+ this.pageUrl = pageUrl;
+ }
+ public String getPageUrl() {
+ return pageUrl;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/shop/ReadableMerchantStore.java b/sm-shop/src/main/java/com/salesmanager/shop/model/shop/ReadableMerchantStore.java
new file mode 100644
index 0000000..4dd59fa
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/shop/ReadableMerchantStore.java
@@ -0,0 +1,31 @@
+package com.salesmanager.web.entity.shop;
+
+import java.io.Serializable;
+import java.util.List;
+
+public class ReadableMerchantStore extends MerchantStoreEntity implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private List<String> supportedLanguages;
+ private String currentUserLanguage;
+
+ public List<String> getSupportedLanguages() {
+ return supportedLanguages;
+ }
+
+ public void setSupportedLanguages(List<String> supportedLanguages) {
+ this.supportedLanguages = supportedLanguages;
+ }
+
+ public String getCurrentUserLanguage() {
+ return currentUserLanguage;
+ }
+
+ public void setCurrentUserLanguage(String currentUserLanguage) {
+ this.currentUserLanguage = currentUserLanguage;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/ShopEntity.java b/sm-shop/src/main/java/com/salesmanager/shop/model/ShopEntity.java
new file mode 100644
index 0000000..85eb7ac
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/ShopEntity.java
@@ -0,0 +1,21 @@
+package com.salesmanager.web.entity;
+
+import java.io.Serializable;
+
+public abstract class ShopEntity extends Entity implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private String language;
+
+ public void setLanguage(String language) {
+ this.language = language;
+ }
+ public String getLanguage() {
+ return language;
+ }
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/shoppingcart/ShoppingCartAttribute.java b/sm-shop/src/main/java/com/salesmanager/shop/model/shoppingcart/ShoppingCartAttribute.java
new file mode 100644
index 0000000..c4b249b
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/shoppingcart/ShoppingCartAttribute.java
@@ -0,0 +1,50 @@
+package com.salesmanager.web.entity.shoppingcart;
+
+import java.io.Serializable;
+
+import com.salesmanager.web.entity.ShopEntity;
+
+public class ShoppingCartAttribute extends ShopEntity implements Serializable {
+
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private long optionId;
+ private long optionValueId;
+ private long attributeId;
+ private String optionName;
+ private String optionValue;
+ public long getOptionId() {
+ return optionId;
+ }
+ public void setOptionId(long optionId) {
+ this.optionId = optionId;
+ }
+ public long getOptionValueId() {
+ return optionValueId;
+ }
+ public void setOptionValueId(long optionValueId) {
+ this.optionValueId = optionValueId;
+ }
+ public String getOptionName() {
+ return optionName;
+ }
+ public void setOptionName(String optionName) {
+ this.optionName = optionName;
+ }
+ public String getOptionValue() {
+ return optionValue;
+ }
+ public void setOptionValue(String optionValue) {
+ this.optionValue = optionValue;
+ }
+ public long getAttributeId() {
+ return attributeId;
+ }
+ public void setAttributeId(long attributeId) {
+ this.attributeId = attributeId;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/shoppingcart/ShoppingCartData.java b/sm-shop/src/main/java/com/salesmanager/shop/model/shoppingcart/ShoppingCartData.java
new file mode 100644
index 0000000..6b7023e
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/shoppingcart/ShoppingCartData.java
@@ -0,0 +1,82 @@
+package com.salesmanager.web.entity.shoppingcart;
+
+import java.io.Serializable;
+import java.util.List;
+
+import org.springframework.context.annotation.Scope;
+import org.springframework.stereotype.Component;
+
+import com.salesmanager.web.entity.ShopEntity;
+import com.salesmanager.web.entity.order.OrderTotal;
+
+@Component
+@Scope(value = "prototype")
+public class ShoppingCartData extends ShopEntity implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private String message;
+ private String code;
+ private int quantity;
+ private String total;
+ private String subTotal;
+
+ private List<OrderTotal> totals;//calculated from OrderTotalSummary
+ private List<ShoppingCartItem> shoppingCartItems;
+ private List<ShoppingCartItem> unavailables;
+
+
+ public String getMessage() {
+ return message;
+ }
+ public void setMessage(String message) {
+ this.message = message;
+ }
+ public String getCode() {
+ return code;
+ }
+ public void setCode(String code) {
+ this.code = code;
+ }
+ public int getQuantity() {
+ return quantity;
+ }
+ public void setQuantity(int quantity) {
+ this.quantity = quantity;
+ }
+ public String getTotal() {
+ return total;
+ }
+ public void setTotal(String total) {
+ this.total = total;
+ }
+ public List<ShoppingCartItem> getShoppingCartItems() {
+ return shoppingCartItems;
+ }
+ public void setShoppingCartItems(List<ShoppingCartItem> shoppingCartItems) {
+ this.shoppingCartItems = shoppingCartItems;
+ }
+ public String getSubTotal() {
+ return subTotal;
+ }
+ public void setSubTotal(String subTotal) {
+ this.subTotal = subTotal;
+ }
+ public List<OrderTotal> getTotals() {
+ return totals;
+ }
+ public void setTotals(List<OrderTotal> totals) {
+ this.totals = totals;
+ }
+ public List<ShoppingCartItem> getUnavailables() {
+ return unavailables;
+ }
+ public void setUnavailables(List<ShoppingCartItem> unavailables) {
+ this.unavailables = unavailables;
+ }
+
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/model/shoppingcart/ShoppingCartItem.java b/sm-shop/src/main/java/com/salesmanager/shop/model/shoppingcart/ShoppingCartItem.java
new file mode 100644
index 0000000..1c99f5c
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/model/shoppingcart/ShoppingCartItem.java
@@ -0,0 +1,99 @@
+package com.salesmanager.web.entity.shoppingcart;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.List;
+
+import com.salesmanager.web.entity.ShopEntity;
+
+public class ShoppingCartItem extends ShopEntity implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private String name;
+ private String price;
+ private String image;
+ private BigDecimal productPrice;
+ private int quantity;
+ private long productId;
+ private String productCode;
+ private String code;//shopping cart code
+ private boolean productVirtual;
+
+ private String subTotal;
+
+ private List<ShoppingCartAttribute> shoppingCartAttributes;
+
+ public String getName() {
+ return name;
+ }
+ public void setName(String name) {
+ this.name = name;
+ }
+ public String getPrice() {
+ return price;
+ }
+ public void setPrice(String price) {
+ this.price = price;
+ }
+ public int getQuantity() {
+ return quantity;
+ }
+ public void setQuantity(int quantity) {
+ this.quantity = quantity;
+ }
+
+
+ public String getCode() {
+ return code;
+ }
+ public void setCode(String code) {
+ this.code = code;
+ }
+ public List<ShoppingCartAttribute> getShoppingCartAttributes() {
+ return shoppingCartAttributes;
+ }
+ public void setShoppingCartAttributes(List<ShoppingCartAttribute> shoppingCartAttributes) {
+ this.shoppingCartAttributes = shoppingCartAttributes;
+ }
+ public void setProductPrice(BigDecimal productPrice) {
+ this.productPrice = productPrice;
+ }
+ public BigDecimal getProductPrice() {
+ return productPrice;
+ }
+ public void setProductId(long productId) {
+ this.productId = productId;
+ }
+ public long getProductId() {
+ return productId;
+ }
+ public void setProductCode(String productCode) {
+ this.productCode = productCode;
+ }
+ public String getProductCode() {
+ return productCode;
+ }
+ public void setImage(String image) {
+ this.image = image;
+ }
+ public String getImage() {
+ return image;
+ }
+ public void setSubTotal(String subTotal) {
+ this.subTotal = subTotal;
+ }
+ public String getSubTotal() {
+ return subTotal;
+ }
+ public boolean isProductVirtual() {
+ return productVirtual;
+ }
+ public void setProductVirtual(boolean productVirtual) {
+ this.productVirtual = productVirtual;
+ }
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/populator/catalog/PersistableCategoryPopulator.java b/sm-shop/src/main/java/com/salesmanager/shop/populator/catalog/PersistableCategoryPopulator.java
new file mode 100644
index 0000000..0d9ff13
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/populator/catalog/PersistableCategoryPopulator.java
@@ -0,0 +1,145 @@
+package com.salesmanager.web.populator.catalog;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang.Validate;
+import org.apache.commons.lang3.StringUtils;
+
+import com.salesmanager.core.business.catalog.category.model.Category;
+import com.salesmanager.core.business.catalog.category.service.CategoryService;
+import com.salesmanager.core.business.generic.exception.ConversionException;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.business.reference.language.service.LanguageService;
+import com.salesmanager.core.utils.AbstractDataPopulator;
+import com.salesmanager.web.entity.catalog.category.CategoryDescription;
+import com.salesmanager.web.entity.catalog.category.PersistableCategory;
+
+public class PersistableCategoryPopulator extends
+ AbstractDataPopulator<PersistableCategory, Category> {
+
+
+ private CategoryService categoryService;
+ private LanguageService languageService;
+
+
+ public void setCategoryService(CategoryService categoryService) {
+ this.categoryService = categoryService;
+ }
+
+ public CategoryService getCategoryService() {
+ return categoryService;
+ }
+
+ public void setLanguageService(LanguageService languageService) {
+ this.languageService = languageService;
+ }
+
+ public LanguageService getLanguageService() {
+ return languageService;
+ }
+
+
+ @Override
+ public Category populate(PersistableCategory source, Category target,
+ MerchantStore store, Language language)
+ throws ConversionException {
+
+ try {
+
+
+ Validate.notNull(categoryService, "Requires to set CategoryService");
+ Validate.notNull(languageService, "Requires to set LanguageService");
+
+ target.setMerchantStore(store);
+ target.setCode(source.getCode());
+ target.setSortOrder(source.getSortOrder());
+ target.setVisible(source.isVisible());
+
+ //get parent
+
+ if(source.getParent()==null) {
+
+ target.setParent(null);
+ target.setLineage("/");
+ target.setDepth(0);
+
+ } else {
+ Category parent = null;
+ if(!StringUtils.isBlank(source.getParent().getCode())) {
+ parent = categoryService.getByCode(store.getCode(), source.getParent().getCode());
+ } else if(source.getParent().getId()!=null) {
+ parent = categoryService.getById(source.getParent().getId());
+ } else {
+ throw new ConversionException("Category parent needs at least an id or a code for reference");
+ }
+ if(parent !=null && parent.getMerchantStore().getId().intValue()!=store.getId().intValue()) {
+ throw new ConversionException("Store id does not belong to specified parent id");
+ }
+
+ if(parent!=null) {
+ target.setParent(parent);
+
+ String lineage = parent.getLineage();
+ int depth = parent.getDepth();
+
+ target.setDepth(depth+1);
+ target.setLineage(new StringBuilder().append(lineage).append(parent.getId()).append("/").toString());
+ }
+
+ }
+
+
+ if(!CollectionUtils.isEmpty(source.getChildren())) {
+
+ for(PersistableCategory cat : source.getChildren()) {
+
+ Category persistCategory = this.populate(cat, new Category(), store, language);
+ target.getCategories().add(persistCategory);
+
+ }
+
+ }
+
+
+ if(!CollectionUtils.isEmpty(source.getDescriptions())) {
+ List<com.salesmanager.core.business.catalog.category.model.CategoryDescription> descriptions = new ArrayList<com.salesmanager.core.business.catalog.category.model.CategoryDescription>();
+ for(CategoryDescription description : source.getDescriptions()) {
+ com.salesmanager.core.business.catalog.category.model.CategoryDescription desc = new com.salesmanager.core.business.catalog.category.model.CategoryDescription();
+ desc.setCategory(target);
+ desc.setCategoryHighlight(description.getHighlights());
+ desc.setDescription(description.getDescription());
+ desc.setName(description.getName());
+ desc.setMetatagDescription(description.getMetaDescription());
+ desc.setMetatagTitle(description.getTitle());
+ desc.setSeUrl(description.getFriendlyUrl());
+ Language lang = languageService.getByCode(description.getLanguage());
+ if(lang==null) {
+ throw new ConversionException("Language is null for code " + description.getLanguage() + " use language ISO code [en, fr ...]");
+ }
+ desc.setLanguage(lang);
+ descriptions.add(desc);
+ }
+ target.setDescriptions(descriptions);
+ }
+
+
+ return target;
+
+
+ } catch(Exception e) {
+ throw new ConversionException(e);
+ }
+
+ }
+
+
+ @Override
+ protected Category createTarget() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/populator/catalog/PersistableProductOptionPopulator.java b/sm-shop/src/main/java/com/salesmanager/shop/populator/catalog/PersistableProductOptionPopulator.java
new file mode 100644
index 0000000..032978e
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/populator/catalog/PersistableProductOptionPopulator.java
@@ -0,0 +1,75 @@
+package com.salesmanager.web.populator.catalog;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang.Validate;
+
+import com.salesmanager.core.business.catalog.product.model.attribute.ProductOption;
+import com.salesmanager.core.business.generic.exception.ConversionException;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.business.reference.language.service.LanguageService;
+import com.salesmanager.core.utils.AbstractDataPopulator;
+import com.salesmanager.web.entity.catalog.product.attribute.PersistableProductOption;
+import com.salesmanager.web.entity.catalog.product.attribute.ProductOptionDescription;
+
+public class PersistableProductOptionPopulator extends
+ AbstractDataPopulator<PersistableProductOption, ProductOption> {
+
+ private LanguageService languageService;
+
+ public LanguageService getLanguageService() {
+ return languageService;
+ }
+
+ public void setLanguageService(LanguageService languageService) {
+ this.languageService = languageService;
+ }
+
+ @Override
+ public ProductOption populate(PersistableProductOption source,
+ ProductOption target, MerchantStore store, Language language)
+ throws ConversionException {
+ Validate.notNull(languageService, "Requires to set LanguageService");
+
+
+ try {
+
+
+ target.setMerchantStore(store);
+ target.setProductOptionSortOrder(source.getOrder());
+ target.setCode(source.getCode());
+
+ if(!CollectionUtils.isEmpty(source.getDescriptions())) {
+ Set<com.salesmanager.core.business.catalog.product.model.attribute.ProductOptionDescription> descriptions = new HashSet<com.salesmanager.core.business.catalog.product.model.attribute.ProductOptionDescription>();
+ for(ProductOptionDescription desc : source.getDescriptions()) {
+ com.salesmanager.core.business.catalog.product.model.attribute.ProductOptionDescription description = new com.salesmanager.core.business.catalog.product.model.attribute.ProductOptionDescription();
+ Language lang = languageService.getByCode(desc.getLanguage());
+ if(lang==null) {
+ throw new ConversionException("Language is null for code " + description.getLanguage() + " use language ISO code [en, fr ...]");
+ }
+ description.setLanguage(lang);
+ description.setName(desc.getName());
+ description.setTitle(desc.getTitle());
+ description.setProductOption(target);
+ descriptions.add(description);
+ }
+ target.setDescriptions(descriptions);
+ }
+
+ } catch (Exception e) {
+ throw new ConversionException(e);
+ }
+
+
+ return target;
+ }
+
+ @Override
+ protected ProductOption createTarget() {
+ return null;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/populator/catalog/PersistableProductOptionValuePopulator.java b/sm-shop/src/main/java/com/salesmanager/shop/populator/catalog/PersistableProductOptionValuePopulator.java
new file mode 100644
index 0000000..c262001
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/populator/catalog/PersistableProductOptionValuePopulator.java
@@ -0,0 +1,83 @@
+package com.salesmanager.web.populator.catalog;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang.Validate;
+
+import com.salesmanager.core.business.catalog.product.model.attribute.ProductOptionValue;
+import com.salesmanager.core.business.generic.exception.ConversionException;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.business.reference.language.service.LanguageService;
+import com.salesmanager.core.utils.AbstractDataPopulator;
+import com.salesmanager.web.entity.catalog.product.attribute.PersistableProductOptionValue;
+import com.salesmanager.web.entity.catalog.product.attribute.ProductOptionValueDescription;
+
+/**
+ * Converts a PersistableProductOptionValue to
+ * a ProductOptionValue model object
+ * @author Carl Samson
+ *
+ */
+public class PersistableProductOptionValuePopulator extends
+ AbstractDataPopulator<PersistableProductOptionValue, ProductOptionValue> {
+
+
+ private LanguageService languageService;
+
+ public LanguageService getLanguageService() {
+ return languageService;
+ }
+
+ public void setLanguageService(LanguageService languageService) {
+ this.languageService = languageService;
+ }
+
+ @Override
+ public ProductOptionValue populate(PersistableProductOptionValue source,
+ ProductOptionValue target, MerchantStore store, Language language)
+ throws ConversionException {
+
+ Validate.notNull(languageService, "Requires to set LanguageService");
+
+
+ try {
+
+
+ target.setMerchantStore(store);
+ target.setProductOptionValueSortOrder(source.getOrder());
+ target.setCode(source.getCode());
+
+ if(!CollectionUtils.isEmpty(source.getDescriptions())) {
+ Set<com.salesmanager.core.business.catalog.product.model.attribute.ProductOptionValueDescription> descriptions = new HashSet<com.salesmanager.core.business.catalog.product.model.attribute.ProductOptionValueDescription>();
+ for(ProductOptionValueDescription desc : source.getDescriptions()) {
+ com.salesmanager.core.business.catalog.product.model.attribute.ProductOptionValueDescription description = new com.salesmanager.core.business.catalog.product.model.attribute.ProductOptionValueDescription();
+ Language lang = languageService.getByCode(desc.getLanguage());
+ if(lang==null) {
+ throw new ConversionException("Language is null for code " + description.getLanguage() + " use language ISO code [en, fr ...]");
+ }
+ description.setLanguage(lang);
+ description.setName(desc.getName());
+ description.setTitle(desc.getTitle());
+ description.setProductOptionValue(target);
+ descriptions.add(description);
+ }
+ target.setDescriptions(descriptions);
+ }
+
+ } catch (Exception e) {
+ throw new ConversionException(e);
+ }
+
+
+ return target;
+ }
+
+ @Override
+ protected ProductOptionValue createTarget() {
+ return null;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/populator/catalog/PersistableProductPopulator.java b/sm-shop/src/main/java/com/salesmanager/shop/populator/catalog/PersistableProductPopulator.java
new file mode 100644
index 0000000..1c72689
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/populator/catalog/PersistableProductPopulator.java
@@ -0,0 +1,354 @@
+package com.salesmanager.web.populator.catalog;
+
+import java.io.ByteArrayInputStream;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang.Validate;
+import org.apache.commons.lang3.StringUtils;
+
+import com.salesmanager.core.business.catalog.category.model.Category;
+import com.salesmanager.core.business.catalog.category.service.CategoryService;
+import com.salesmanager.core.business.catalog.product.model.Product;
+import com.salesmanager.core.business.catalog.product.model.attribute.ProductAttribute;
+import com.salesmanager.core.business.catalog.product.model.attribute.ProductOption;
+import com.salesmanager.core.business.catalog.product.model.attribute.ProductOptionValue;
+import com.salesmanager.core.business.catalog.product.model.availability.ProductAvailability;
+import com.salesmanager.core.business.catalog.product.model.description.ProductDescription;
+import com.salesmanager.core.business.catalog.product.model.image.ProductImage;
+import com.salesmanager.core.business.catalog.product.model.manufacturer.Manufacturer;
+import com.salesmanager.core.business.catalog.product.model.price.ProductPrice;
+import com.salesmanager.core.business.catalog.product.model.price.ProductPriceDescription;
+import com.salesmanager.core.business.catalog.product.service.attribute.ProductOptionService;
+import com.salesmanager.core.business.catalog.product.service.attribute.ProductOptionValueService;
+import com.salesmanager.core.business.catalog.product.service.manufacturer.ManufacturerService;
+import com.salesmanager.core.business.generic.exception.ConversionException;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.business.reference.language.service.LanguageService;
+import com.salesmanager.core.business.tax.service.TaxClassService;
+import com.salesmanager.core.utils.AbstractDataPopulator;
+import com.salesmanager.web.entity.catalog.product.PersistableImage;
+import com.salesmanager.web.entity.catalog.product.PersistableProduct;
+import com.salesmanager.web.entity.catalog.product.ProductPriceEntity;
+import com.salesmanager.web.utils.DateUtil;
+
+public class PersistableProductPopulator extends
+ AbstractDataPopulator<PersistableProduct, Product> {
+
+
+ private CategoryService categoryService;
+ private ManufacturerService manufacturerService;
+ private TaxClassService taxClassService;
+ private LanguageService languageService;
+
+ private ProductOptionService productOptionService;
+ private ProductOptionValueService productOptionValueService;
+
+
+ @Override
+ public Product populate(PersistableProduct source,
+ Product target, MerchantStore store, Language language)
+ throws ConversionException {
+
+ Validate.notNull(manufacturerService, "Requires to set ManufacturerService");
+ Validate.notNull(languageService, "Requires to set LanguageService");
+ Validate.notNull(categoryService, "Requires to set CategoryService");
+ Validate.notNull(taxClassService, "Requires to set TaxClassService");
+ Validate.notNull(productOptionService, "Requires to set ProductOptionService");
+ Validate.notNull(productOptionValueService, "Requires to set ProductOptionValueService");
+
+ try {
+
+ target.setSku(source.getSku());
+ target.setAvailable(source.isAvailable());
+ target.setPreOrder(source.isPreOrder());
+ target.setRefSku(source.getRefSku());
+
+ if(!StringUtils.isBlank(source.getDateAvailable())) {
+ target.setDateAvailable(DateUtil.getDate(source.getDateAvailable()));
+ }
+
+ if(source.getManufacturer()!=null) {
+
+ Manufacturer manuf = null;
+ if(!StringUtils.isBlank(source.getManufacturer().getCode())) {
+ manuf = manufacturerService.getByCode(store, source.getManufacturer().getCode());
+ } else {
+ Validate.notNull(source.getManufacturer().getId(), "Requires to set manufacturer id");
+ manuf = manufacturerService.getById(source.getManufacturer().getId());
+ }
+
+ if(manuf==null) {
+ throw new ConversionException("Invalid manufacturer id");
+ }
+ if(manuf!=null) {
+ if(manuf.getMerchantStore().getId().intValue()!=store.getId().intValue()) {
+ throw new ConversionException("Invalid manufacturer id");
+ }
+ target.setManufacturer(manuf);
+
+ }
+ }
+
+ target.setMerchantStore(store);
+
+ List<Language> languages = new ArrayList<Language>();
+ Set<ProductDescription> descriptions = new HashSet<ProductDescription>();
+ if(!CollectionUtils.isEmpty(source.getDescriptions())) {
+ for(com.salesmanager.web.entity.catalog.product.ProductDescription description : source.getDescriptions()) {
+
+ ProductDescription productDescription = new ProductDescription();
+ productDescription.setProduct(target);
+ productDescription.setDescription(description.getDescription());
+ productDescription.setName(description.getName());
+ productDescription.setSeUrl(description.getFriendlyUrl());
+ productDescription.setMetatagKeywords(description.getKeyWords());
+ productDescription.setMetatagDescription(description.getMetaDescription());
+ productDescription.setTitle(description.getTitle());
+
+ Language lang = languageService.getByCode(description.getLanguage());
+ if(lang==null) {
+ throw new ConversionException("Language code " + description.getLanguage() + " is invalid, use ISO code (en, fr ...)");
+ }
+
+ languages.add(lang);
+ productDescription.setLanguage(lang);
+ descriptions.add(productDescription);
+ }
+ }
+
+ if(descriptions.size()>0) {
+ target.setDescriptions(descriptions);
+ }
+
+ //target.setType(source.getType());//not implemented yet
+ target.setProductHeight(source.getProductHeight());
+ target.setProductLength(source.getProductLength());
+ target.setProductWeight(source.getProductWeight());
+ target.setProductWidth(source.getProductWidth());
+ target.setSortOrder(source.getSortOrder());
+ target.setProductVirtual(source.isProductVirtual());
+ target.setProductShipeable(source.isProductShipeable());
+ if(source.getRating() != null) {
+ target.setProductReviewAvg(new BigDecimal(source.getRating()));
+ }
+ target.setProductReviewCount(source.getRatingCount());
+
+
+ if(CollectionUtils.isNotEmpty(source.getProductPrices())) {
+
+ ProductAvailability productAvailability = new ProductAvailability();
+
+ productAvailability.setProductQuantity(source.getQuantity());
+ productAvailability.setProductQuantityOrderMin(1);
+ productAvailability.setProductQuantityOrderMax(1);
+
+ for(ProductPriceEntity priceEntity : source.getProductPrices()) {
+
+ ProductPrice price = new ProductPrice();
+ price.setDefaultPrice(priceEntity.isDefaultPrice());
+ price.setProductPriceAmount(priceEntity.getOriginalPrice());
+ price.setCode(priceEntity.getCode());
+ price.setProductPriceSpecialAmount(priceEntity.getDiscountedPrice());
+ if(priceEntity.getDiscountStartDate()!=null) {
+ Date startDate = DateUtil.getDate(priceEntity.getDiscountStartDate());
+ price.setProductPriceSpecialStartDate(startDate);
+ }
+ if(priceEntity.getDiscountEndDate()!=null) {
+ Date endDate = DateUtil.getDate(priceEntity.getDiscountEndDate());
+ price.setProductPriceSpecialEndDate(endDate);
+ }
+ productAvailability.getPrices().add(price);
+ target.getAvailabilities().add(productAvailability);
+ for(Language lang : languages) {
+ ProductPriceDescription ppd = new ProductPriceDescription();
+ ppd.setProductPrice(price);
+ ppd.setLanguage(lang);
+ ppd.setName(ProductPriceDescription.DEFAULT_PRICE_DESCRIPTION);
+ price.getDescriptions().add(ppd);
+ }
+ }
+
+ } else {
+
+ ProductAvailability productAvailability = new ProductAvailability();
+
+ productAvailability.setProductQuantity(source.getQuantity());
+ productAvailability.setProductQuantityOrderMin(1);
+ productAvailability.setProductQuantityOrderMax(1);
+
+ ProductPrice price = new ProductPrice();
+ price.setDefaultPrice(true);
+ price.setProductPriceAmount(source.getPrice());
+ price.setCode(ProductPriceEntity.DEFAULT_PRICE_CODE);
+ price.setProductAvailability(productAvailability);
+ productAvailability.getPrices().add(price);
+ target.getAvailabilities().add(productAvailability);
+ for(Language lang : languages) {
+ ProductPriceDescription ppd = new ProductPriceDescription();
+ ppd.setProductPrice(price);
+ ppd.setLanguage(lang);
+ ppd.setName(ProductPriceDescription.DEFAULT_PRICE_DESCRIPTION);
+ price.getDescriptions().add(ppd);
+ }
+
+
+ }
+
+
+ //image
+ if(source.getImages()!=null) {
+ for(PersistableImage img : source.getImages()) {
+ ByteArrayInputStream in = new ByteArrayInputStream(img.getBytes());
+ ProductImage productImage = new ProductImage();
+ productImage.setProduct(target);
+ productImage.setProductImage(img.getImageName());
+ productImage.setImage(in);
+ target.getImages().add(productImage);
+ }
+ }
+
+ //attributes
+ if(source.getAttributes()!=null) {
+ for(com.salesmanager.web.entity.catalog.product.attribute.ProductAttributeEntity attr : source.getAttributes()) {
+
+ ProductOption productOption = null;
+
+ if(!StringUtils.isBlank(attr.getOption().getCode())) {
+ productOption = productOptionService.getByCode(store, attr.getOption().getCode());
+ } else {
+ Validate.notNull(attr.getOption().getId(),"Product option id is null");
+ productOption = productOptionService.getById(attr.getOption().getId());
+ }
+
+ if(productOption==null) {
+ throw new ConversionException("Product option id " + attr.getOption().getId() + " does not exist");
+ }
+
+ ProductOptionValue productOptionValue = null;
+
+ if(!StringUtils.isBlank(attr.getOptionValue().getCode())) {
+ productOptionValue = productOptionValueService.getByCode(store, attr.getOptionValue().getCode());
+ } else {
+ productOptionValue = productOptionValueService.getById(attr.getOptionValue().getId());
+ }
+
+ if(productOptionValue==null) {
+ throw new ConversionException("Product option value id " + attr.getOptionValue().getId() + " does not exist");
+ }
+
+ if(productOption.getMerchantStore().getId().intValue()!=store.getId().intValue()) {
+ throw new ConversionException("Invalid product option id ");
+ }
+
+ if(productOptionValue.getMerchantStore().getId().intValue()!=store.getId().intValue()) {
+ throw new ConversionException("Invalid product option value id ");
+ }
+
+ ProductAttribute attribute = new ProductAttribute();
+ attribute.setProduct(target);
+ attribute.setProductOption(productOption);
+ attribute.setProductOptionValue(productOptionValue);
+ attribute.setProductAttributePrice(attr.getProductAttributePrice());
+ attribute.setProductAttributeWeight(attr.getProductAttributeWeight());
+ attribute.setProductAttributePrice(attr.getProductAttributePrice());
+ target.getAttributes().add(attribute);
+
+ }
+ }
+
+
+ //categories
+ if(!CollectionUtils.isEmpty(source.getCategories())) {
+ for(com.salesmanager.web.entity.catalog.category.Category categ : source.getCategories()) {
+
+ Category c = null;
+ if(!StringUtils.isBlank(categ.getCode())) {
+ c = categoryService.getByCode(store, categ.getCode());
+ } else {
+ Validate.notNull(categ.getId(), "Category id nust not be null");
+ c = categoryService.getById(categ.getId());
+ }
+
+ if(c==null) {
+ throw new ConversionException("Category id " + categ.getId() + " does not exist");
+ }
+ if(c.getMerchantStore().getId().intValue()!=store.getId().intValue()) {
+ throw new ConversionException("Invalid category id");
+ }
+ target.getCategories().add(c);
+ }
+ }
+ return target;
+
+ } catch (Exception e) {
+ throw new ConversionException(e);
+ }
+ }
+
+
+
+ public void setCategoryService(CategoryService categoryService) {
+ this.categoryService = categoryService;
+ }
+
+ public CategoryService getCategoryService() {
+ return categoryService;
+ }
+
+ public void setManufacturerService(ManufacturerService manufacturerService) {
+ this.manufacturerService = manufacturerService;
+ }
+
+ public ManufacturerService getManufacturerService() {
+ return manufacturerService;
+ }
+
+ public void setTaxClassService(TaxClassService taxClassService) {
+ this.taxClassService = taxClassService;
+ }
+
+ public TaxClassService getTaxClassService() {
+ return taxClassService;
+ }
+
+
+ public LanguageService getLanguageService() {
+ return languageService;
+ }
+
+ public void setLanguageService(LanguageService languageService) {
+ this.languageService = languageService;
+ }
+
+ public ProductOptionService getProductOptionService() {
+ return productOptionService;
+ }
+
+ public void setProductOptionService(ProductOptionService productOptionService) {
+ this.productOptionService = productOptionService;
+ }
+
+ public ProductOptionValueService getProductOptionValueService() {
+ return productOptionValueService;
+ }
+
+ public void setProductOptionValueService(
+ ProductOptionValueService productOptionValueService) {
+ this.productOptionValueService = productOptionValueService;
+ }
+
+
+ @Override
+ protected Product createTarget() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/populator/catalog/PersistableProductReviewPopulator.java b/sm-shop/src/main/java/com/salesmanager/shop/populator/catalog/PersistableProductReviewPopulator.java
new file mode 100644
index 0000000..dd92f60
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/populator/catalog/PersistableProductReviewPopulator.java
@@ -0,0 +1,133 @@
+package com.salesmanager.web.populator.catalog;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import org.apache.commons.lang.Validate;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import com.salesmanager.core.business.catalog.product.model.Product;
+import com.salesmanager.core.business.catalog.product.model.review.ProductReview;
+import com.salesmanager.core.business.catalog.product.model.review.ProductReviewDescription;
+import com.salesmanager.core.business.catalog.product.service.ProductService;
+import com.salesmanager.core.business.customer.model.Customer;
+import com.salesmanager.core.business.customer.service.CustomerService;
+import com.salesmanager.core.business.generic.exception.ConversionException;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.business.reference.language.service.LanguageService;
+import com.salesmanager.core.utils.AbstractDataPopulator;
+import com.salesmanager.web.entity.catalog.product.PersistableProductReview;
+import com.shopizer.search.utils.DateUtil;
+
+public class PersistableProductReviewPopulator extends
+ AbstractDataPopulator<PersistableProductReview, ProductReview> {
+
+
+
+ @Inject
+ private CustomerService customerService;
+
+ @Inject
+ private ProductService productService;
+
+ @Inject
+ private LanguageService languageService;
+
+
+
+ public LanguageService getLanguageService() {
+ return languageService;
+ }
+
+ public void setLanguageService(LanguageService languageService) {
+ this.languageService = languageService;
+ }
+
+ @Override
+ public ProductReview populate(PersistableProductReview source,
+ ProductReview target, MerchantStore store, Language language)
+ throws ConversionException {
+
+
+ Validate.notNull(customerService,"customerService cannot be null");
+ Validate.notNull(productService,"productService cannot be null");
+ Validate.notNull(languageService,"languageService cannot be null");
+
+ try {
+
+ if(target==null) {
+ target = new ProductReview();
+ }
+
+ Customer customer = customerService.getById(source.getCustomerId());
+
+ //check if customer belongs to store
+ if(customer ==null || customer.getMerchantStore().getId().intValue()!=store.getId().intValue()) {
+ throw new ConversionException("Invalid customer id for the given store");
+ }
+
+ target.setReviewDate(DateUtil.formatDate(source.getDate()));
+ target.setCustomer(customer);
+ target.setReviewRating(source.getRating());
+
+ Product product = productService.getById(source.getProductId());
+
+ //check if product belongs to store
+ if(product ==null || product.getMerchantStore().getId().intValue()!=store.getId().intValue()) {
+ throw new ConversionException("Invalid product id for the given store");
+ }
+
+ target.setProduct(product);
+
+ Language lang = languageService.getByCode(language.getCode());
+ if(lang ==null) {
+ throw new ConversionException("Invalid language code, use iso codes (en, fr ...)");
+ }
+
+ ProductReviewDescription description = new ProductReviewDescription();
+ description.setDescription(source.getDescription());
+ description.setLanguage(lang);
+ description.setName("-");
+ description.setProductReview(target);
+
+ Set<ProductReviewDescription> descriptions = new HashSet<ProductReviewDescription>();
+ descriptions.add(description);
+
+ target.setDescriptions(descriptions);
+
+
+
+
+
+ return target;
+
+ } catch (Exception e) {
+ throw new ConversionException("Cannot populate ProductReview", e);
+ }
+
+ }
+
+ @Override
+ protected ProductReview createTarget() {
+ return null;
+ }
+
+ public CustomerService getCustomerService() {
+ return customerService;
+ }
+
+ public void setCustomerService(CustomerService customerService) {
+ this.customerService = customerService;
+ }
+
+ public ProductService getProductService() {
+ return productService;
+ }
+
+ public void setProductService(ProductService productService) {
+ this.productService = productService;
+ }
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/populator/catalog/ReadableCategoryPopulator.java b/sm-shop/src/main/java/com/salesmanager/shop/populator/catalog/ReadableCategoryPopulator.java
new file mode 100644
index 0000000..4ea2903
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/populator/catalog/ReadableCategoryPopulator.java
@@ -0,0 +1,71 @@
+package com.salesmanager.web.populator.catalog;
+
+import com.salesmanager.core.business.catalog.category.model.Category;
+import com.salesmanager.core.business.catalog.category.model.CategoryDescription;
+import com.salesmanager.core.business.generic.exception.ConversionException;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.utils.AbstractDataPopulator;
+import com.salesmanager.web.entity.catalog.category.ReadableCategory;
+
+public class ReadableCategoryPopulator extends
+ AbstractDataPopulator<Category, ReadableCategory> {
+
+ @Override
+ public ReadableCategory populate(Category source, ReadableCategory target,
+ MerchantStore store, Language language) throws ConversionException {
+
+
+ target.setLineage(source.getLineage());
+ if(source.getDescriptions()!=null && source.getDescriptions().size()>0) {
+
+ CategoryDescription description = source.getDescription();
+ if(source.getDescriptions().size()>1) {
+ for(CategoryDescription desc : source.getDescriptions()) {
+ if(desc.getLanguage().getCode().equals(language.getCode())) {
+ description = desc;
+ break;
+ }
+ }
+ }
+
+
+
+ if(description!=null) {
+ com.salesmanager.web.entity.catalog.category.CategoryDescription desc = new com.salesmanager.web.entity.catalog.category.CategoryDescription();
+ desc.setFriendlyUrl(description.getSeUrl());
+ desc.setName(description.getName());
+ desc.setDescription(description.getName());
+ desc.setKeyWords(description.getMetatagKeywords());
+ desc.setHighlights(description.getCategoryHighlight());
+ desc.setTitle(description.getMetatagTitle());
+ desc.setMetaDescription(description.getMetatagDescription());
+
+ target.setDescription(desc);
+ }
+
+ }
+
+ if(source.getParent()!=null) {
+ com.salesmanager.web.entity.catalog.category.Category parent = new com.salesmanager.web.entity.catalog.category.Category();
+ parent.setCode(source.getParent().getCode());
+ parent.setId(source.getParent().getId());
+ target.setParent(parent);
+ }
+
+ target.setCode(source.getCode());
+ target.setId(source.getId());
+ target.setDepth(source.getDepth());
+ target.setSortOrder(source.getSortOrder());
+ target.setVisible(source.isVisible());
+
+ return target;
+
+ }
+
+ @Override
+ protected ReadableCategory createTarget() {
+ return null;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/populator/catalog/ReadableFinalPricePopulator.java b/sm-shop/src/main/java/com/salesmanager/shop/populator/catalog/ReadableFinalPricePopulator.java
new file mode 100644
index 0000000..c62b0b1
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/populator/catalog/ReadableFinalPricePopulator.java
@@ -0,0 +1,58 @@
+package com.salesmanager.web.populator.catalog;
+
+import org.apache.commons.lang.Validate;
+
+import com.salesmanager.core.business.catalog.product.model.price.FinalPrice;
+import com.salesmanager.core.business.catalog.product.service.PricingService;
+import com.salesmanager.core.business.generic.exception.ConversionException;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.utils.AbstractDataPopulator;
+import com.salesmanager.web.entity.catalog.product.ReadableProductPrice;
+
+public class ReadableFinalPricePopulator extends
+ AbstractDataPopulator<FinalPrice, ReadableProductPrice> {
+
+
+ private PricingService pricingService;
+
+ public PricingService getPricingService() {
+ return pricingService;
+ }
+
+ public void setPricingService(PricingService pricingService) {
+ this.pricingService = pricingService;
+ }
+
+ @Override
+ public ReadableProductPrice populate(FinalPrice source,
+ ReadableProductPrice target, MerchantStore store, Language language)
+ throws ConversionException {
+ Validate.notNull(pricingService,"pricingService must be set");
+
+ try {
+
+ target.setOriginalPrice(pricingService.getDisplayAmount(source.getOriginalPrice(), store));
+ if(source.isDiscounted()) {
+ target.setDiscounted(true);
+ target.setFinalPrice(pricingService.getDisplayAmount(source.getDiscountedPrice(), store));
+ } else {
+ target.setFinalPrice(pricingService.getDisplayAmount(source.getFinalPrice(), store));
+ }
+
+ } catch(Exception e) {
+ throw new ConversionException("Exception while converting to ReadableProductPrice",e);
+ }
+
+
+
+ return target;
+ }
+
+ @Override
+ protected ReadableProductPrice createTarget() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/populator/catalog/ReadableProductPopulator.java b/sm-shop/src/main/java/com/salesmanager/shop/populator/catalog/ReadableProductPopulator.java
new file mode 100644
index 0000000..b5f02c1
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/populator/catalog/ReadableProductPopulator.java
@@ -0,0 +1,214 @@
+package com.salesmanager.web.populator.catalog;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Set;
+
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang.Validate;
+import org.apache.commons.lang3.StringUtils;
+
+import com.salesmanager.core.business.catalog.product.model.Product;
+import com.salesmanager.core.business.catalog.category.model.Category;
+import com.salesmanager.core.business.catalog.product.model.availability.ProductAvailability;
+import com.salesmanager.core.business.catalog.product.model.description.ProductDescription;
+import com.salesmanager.core.business.catalog.product.model.image.ProductImage;
+import com.salesmanager.core.business.catalog.product.model.manufacturer.ManufacturerDescription;
+import com.salesmanager.core.business.catalog.product.model.price.FinalPrice;
+import com.salesmanager.core.business.catalog.product.service.PricingService;
+import com.salesmanager.core.business.generic.exception.ConversionException;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.constants.Constants;
+import com.salesmanager.core.utils.AbstractDataPopulator;
+import com.salesmanager.web.entity.catalog.ReadableImage;
+import com.salesmanager.web.entity.catalog.manufacturer.ReadableManufacturer;
+import com.salesmanager.web.entity.catalog.product.ReadableProduct;
+import com.salesmanager.web.utils.ImageFilePath;
+
+public class ReadableProductPopulator extends
+ AbstractDataPopulator<Product, ReadableProduct> {
+
+ private PricingService pricingService;
+
+ private ImageFilePath imageUtils;
+
+ public ImageFilePath getimageUtils() {
+ return imageUtils;
+ }
+
+
+
+
+ public void setimageUtils(ImageFilePath imageUtils) {
+ this.imageUtils = imageUtils;
+ }
+
+
+
+
+ public PricingService getPricingService() {
+ return pricingService;
+ }
+
+
+
+
+ public void setPricingService(PricingService pricingService) {
+ this.pricingService = pricingService;
+ }
+
+
+
+
+ @Override
+ public ReadableProduct populate(Product source,
+ ReadableProduct target, MerchantStore store, Language language)
+ throws ConversionException {
+ Validate.notNull(pricingService, "Requires to set PricingService");
+ Validate.notNull(imageUtils, "Requires to set imageUtils");
+
+ try {
+
+
+ ProductDescription description = source.getProductDescription();
+
+ target.setId(source.getId());
+ target.setAvailable(source.isAvailable());
+ target.setProductHeight(source.getProductHeight());
+ target.setProductLength(source.getProductLength());
+ target.setProductWeight(source.getProductWeight());
+ target.setProductWidth(source.getProductWidth());
+ target.setPreOrder(source.isPreOrder());
+ target.setRefSku(source.getRefSku());
+ target.setSortOrder(source.getSortOrder());
+
+ if(source.getProductReviewAvg()!=null) {
+ double avg = source.getProductReviewAvg().doubleValue();
+ double rating = Math.round(avg * 2) / 2.0f;
+ target.setRating(rating);
+ }
+ target.setProductVirtual(source.getProductVirtual());
+ if(source.getProductReviewCount()!=null) {
+ target.setRatingCount(source.getProductReviewCount().intValue());
+ }
+ if(description!=null) {
+ com.salesmanager.web.entity.catalog.product.ProductDescription tragetDescription = new com.salesmanager.web.entity.catalog.product.ProductDescription();
+ tragetDescription.setFriendlyUrl(description.getSeUrl());
+ tragetDescription.setName(description.getName());
+ if(!StringUtils.isBlank(description.getMetatagTitle())) {
+ tragetDescription.setTitle(description.getMetatagTitle());
+ } else {
+ tragetDescription.setTitle(description.getName());
+ }
+ tragetDescription.setMetaDescription(description.getMetatagDescription());
+ tragetDescription.setDescription(description.getDescription());
+ tragetDescription.setHighlights(description.getProductHighlight());
+ target.setDescription(tragetDescription);
+ }
+
+ if(source.getManufacturer()!=null) {
+ ManufacturerDescription manufacturer = source.getManufacturer().getDescriptions().iterator().next();
+ ReadableManufacturer manufacturerEntity = new ReadableManufacturer();
+ com.salesmanager.web.entity.catalog.manufacturer.ManufacturerDescription d = new com.salesmanager.web.entity.catalog.manufacturer.ManufacturerDescription();
+ d.setName(manufacturer.getName());
+ manufacturerEntity.setDescription(d);
+ manufacturerEntity.setId(manufacturer.getId());
+ manufacturerEntity.setOrder(source.getManufacturer().getOrder());
+ manufacturerEntity.setCode(source.getManufacturer().getCode());
+ target.setManufacturer(manufacturerEntity);
+ }
+
+ ProductImage image = source.getProductImage();
+ if(image!=null) {
+ ReadableImage rimg = new ReadableImage();
+ rimg.setImageName(image.getProductImage());
+ String imagePath = imageUtils.buildProductimageUtils(store, source.getSku(), image.getProductImage());
+ rimg.setImageUrl(imagePath);
+ rimg.setId(image.getId());
+ target.setImage(rimg);
+
+ //other images
+ Set<ProductImage> images = source.getImages();
+ if(images!=null && images.size()>0) {
+ List<ReadableImage> imageList = new ArrayList<ReadableImage>();
+ for(ProductImage img : images) {
+ ReadableImage prdImage = new ReadableImage();
+ prdImage.setImageName(img.getProductImage());
+ String imgPath = imageUtils.buildProductimageUtils(store, source.getSku(), img.getProductImage());
+ prdImage.setImageUrl(imgPath);
+ prdImage.setId(img.getId());
+ prdImage.setImageType(img.getImageType());
+ if(img.getProductImageUrl()!=null){
+ prdImage.setExternalUrl(img.getProductImageUrl());
+ }
+ if(img.getImageType()==1 && img.getProductImageUrl()!=null) {//video
+ prdImage.setVideoUrl(img.getProductImageUrl());
+ }
+ imageList.add(prdImage);
+ }
+ target
+ .setImages(imageList);
+ }
+ }
+
+ //remove products from invisible category -> set visible = false
+ Set<Category> categories = source.getCategories();
+ boolean isVisible = true;
+ if(!CollectionUtils.isEmpty(categories)) {
+ for(Category c : categories) {
+ if(c.isVisible()) {
+ isVisible = true;
+ break;
+ } else {
+ isVisible = false;
+ }
+ }
+ }
+
+ target.setVisible(isVisible);
+
+
+ target.setSku(source.getSku());
+ //target.setLanguage(language.getCode());
+
+ FinalPrice price = pricingService.calculateProductPrice(source);
+
+ target.setFinalPrice(pricingService.getDisplayAmount(price.getFinalPrice(), store));
+ target.setPrice(price.getFinalPrice());
+
+ if(price.isDiscounted()) {
+ target.setDiscounted(true);
+ target.setOriginalPrice(pricingService.getDisplayAmount(price.getOriginalPrice(), store));
+ }
+
+ //availability
+ for(ProductAvailability availability : source.getAvailabilities()) {
+ if(availability.getRegion().equals(Constants.ALL_REGIONS)) {//TODO REL 2.1 accept a region
+ target.setQuantity(availability.getProductQuantity());
+ target.setQuantityOrderMaximum(availability.getProductQuantityOrderMax());
+ target.setQuantityOrderMinimum(availability.getProductQuantityOrderMin());
+ if(availability.getProductQuantity().intValue() > 0 && target.isAvailable()) {
+ target.setCanBePurchased(true);
+ }
+ }
+ }
+
+
+ return target;
+
+ } catch (Exception e) {
+ throw new ConversionException(e);
+ }
+ }
+
+
+
+
+ @Override
+ protected ReadableProduct createTarget() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/populator/catalog/ReadableProductPricePopulator.java b/sm-shop/src/main/java/com/salesmanager/shop/populator/catalog/ReadableProductPricePopulator.java
new file mode 100644
index 0000000..1327452
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/populator/catalog/ReadableProductPricePopulator.java
@@ -0,0 +1,63 @@
+package com.salesmanager.web.populator.catalog;
+
+import org.apache.commons.lang.Validate;
+
+import com.salesmanager.core.business.catalog.product.model.price.FinalPrice;
+import com.salesmanager.core.business.catalog.product.model.price.ProductPrice;
+import com.salesmanager.core.business.catalog.product.service.PricingService;
+import com.salesmanager.core.business.generic.exception.ConversionException;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.utils.AbstractDataPopulator;
+import com.salesmanager.web.entity.catalog.product.ReadableProductPrice;
+
+public class ReadableProductPricePopulator extends
+ AbstractDataPopulator<ProductPrice, ReadableProductPrice> {
+
+
+ private PricingService pricingService;
+
+ public PricingService getPricingService() {
+ return pricingService;
+ }
+
+ public void setPricingService(PricingService pricingService) {
+ this.pricingService = pricingService;
+ }
+
+ @Override
+ public ReadableProductPrice populate(ProductPrice source,
+ ReadableProductPrice target, MerchantStore store, Language language)
+ throws ConversionException {
+ Validate.notNull(pricingService,"pricingService must be set");
+ Validate.notNull(source.getProductAvailability(),"productPrice.availability cannot be null");
+ Validate.notNull(source.getProductAvailability().getProduct(),"productPrice.availability.product cannot be null");
+
+ try {
+
+ FinalPrice finalPrice = pricingService.calculateProductPrice(source.getProductAvailability().getProduct());
+
+ target.setOriginalPrice(pricingService.getDisplayAmount(source.getProductPriceAmount(), store));
+ if(finalPrice.isDiscounted()) {
+ target.setDiscounted(true);
+ target.setFinalPrice(pricingService.getDisplayAmount(source.getProductPriceSpecialAmount(), store));
+ } else {
+ target.setFinalPrice(pricingService.getDisplayAmount(finalPrice.getOriginalPrice(), store));
+ }
+
+ } catch(Exception e) {
+ throw new ConversionException("Exception while converting to ReadableProductPrice",e);
+ }
+
+
+
+ return target;
+ }
+
+ @Override
+ protected ReadableProductPrice createTarget() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/populator/catalog/ReadableProductReviewPopulator.java b/sm-shop/src/main/java/com/salesmanager/shop/populator/catalog/ReadableProductReviewPopulator.java
new file mode 100644
index 0000000..66a91e8
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/populator/catalog/ReadableProductReviewPopulator.java
@@ -0,0 +1,60 @@
+package com.salesmanager.web.populator.catalog;
+
+import java.util.Set;
+
+
+import com.salesmanager.core.business.catalog.product.model.review.ProductReview;
+import com.salesmanager.core.business.catalog.product.model.review.ProductReviewDescription;
+import com.salesmanager.core.business.generic.exception.ConversionException;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.utils.AbstractDataPopulator;
+import com.salesmanager.web.entity.catalog.product.ReadableProductReview;
+import com.salesmanager.web.entity.customer.ReadableCustomer;
+import com.salesmanager.web.populator.customer.ReadableCustomerPopulator;
+import com.salesmanager.web.utils.DateUtil;
+
+public class ReadableProductReviewPopulator extends
+ AbstractDataPopulator<ProductReview, ReadableProductReview> {
+
+ @Override
+ public ReadableProductReview populate(ProductReview source,
+ ReadableProductReview target, MerchantStore store, Language language)
+ throws ConversionException {
+
+
+ try {
+ ReadableCustomerPopulator populator = new ReadableCustomerPopulator();
+ ReadableCustomer customer = new ReadableCustomer();
+ populator.populate(source.getCustomer(), customer, store, language);
+
+ target.setDate(DateUtil.formatDate(source.getReviewDate()));
+ target.setCustomer(customer);
+ target.setRating(source.getReviewRating());
+ target.setProductId(source.getProduct().getId());
+
+ Set<ProductReviewDescription> descriptions = source.getDescriptions();
+ if(descriptions!=null) {
+ for(ProductReviewDescription description : descriptions) {
+ target.setDescription(description.getDescription());
+ target.setLanguage(description.getLanguage().getCode());
+ break;
+ }
+ }
+
+ return target;
+
+ } catch (Exception e) {
+ throw new ConversionException("Cannot populate ProductReview", e);
+ }
+
+
+
+ }
+
+ @Override
+ protected ReadableProductReview createTarget() {
+ return null;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/populator/customer/CustomerBillingAddressPopulator.java b/sm-shop/src/main/java/com/salesmanager/shop/populator/customer/CustomerBillingAddressPopulator.java
new file mode 100644
index 0000000..cb5a538
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/populator/customer/CustomerBillingAddressPopulator.java
@@ -0,0 +1,52 @@
+/**
+ *
+ */
+package com.salesmanager.web.populator.customer;
+
+import com.salesmanager.core.business.customer.model.Customer;
+import com.salesmanager.core.business.generic.exception.ConversionException;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.utils.AbstractDataPopulator;
+import com.salesmanager.web.entity.customer.Address;
+
+/**
+ * @author Admin
+ *
+ */
+public class CustomerBillingAddressPopulator extends AbstractDataPopulator<Customer, Address>
+{
+
+ @Override
+ public Address populate( Customer source, Address target, MerchantStore store, Language language )
+ throws ConversionException
+ {
+
+ target.setCity(source.getBilling().getCity());
+ target.setCompany(source.getBilling().getCompany());
+ target.setFirstName(source.getBilling().getFirstName());
+ target.setLastName(source.getBilling().getLastName());
+ target.setPostalCode(source.getBilling().getPostalCode());
+ target.setPhone(source.getBilling().getTelephone());
+ if(source.getBilling().getTelephone()==null) {
+ target.setPhone(source.getBilling().getTelephone());
+ }
+ target.setAddress(source.getBilling().getAddress());
+ if(source.getBilling().getCountry()!=null) {
+ target.setCountry(source.getBilling().getCountry().getIsoCode());
+ }
+ if(source.getBilling().getZone()!=null) {
+ target.setZone(source.getBilling().getZone().getCode());
+ }
+ target.setStateProvince(source.getBilling().getState());
+
+ return target;
+ }
+
+ @Override
+ protected Address createTarget()
+ {
+ return new Address();
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/populator/customer/CustomerDeliveryAddressPopulator.java b/sm-shop/src/main/java/com/salesmanager/shop/populator/customer/CustomerDeliveryAddressPopulator.java
new file mode 100644
index 0000000..ac16570
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/populator/customer/CustomerDeliveryAddressPopulator.java
@@ -0,0 +1,78 @@
+/**
+ *
+ */
+package com.salesmanager.web.populator.customer;
+
+import org.apache.commons.lang.StringUtils;
+
+import com.salesmanager.core.business.customer.model.Customer;
+import com.salesmanager.core.business.generic.exception.ConversionException;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.utils.AbstractDataPopulator;
+import com.salesmanager.web.entity.customer.Address;
+
+/**
+ * @author Admin
+ *
+ */
+public class CustomerDeliveryAddressPopulator extends AbstractDataPopulator<Customer, Address>
+{
+
+ @Override
+ public Address populate( Customer source, Address target, MerchantStore store, Language language )
+ throws ConversionException
+ {
+
+ if(source.getDelivery()!=null){
+ if(StringUtils.isNotBlank( source.getDelivery().getCity() )){
+ target.setCity(source.getDelivery().getCity());
+ }
+
+ if(StringUtils.isNotBlank( source.getDelivery().getCompany() )){
+ target.setCompany(source.getDelivery().getCompany());
+ }
+
+ if(StringUtils.isNotBlank( source.getDelivery().getAddress() )){
+ target.setAddress(source.getDelivery().getAddress());
+ }
+
+ if(StringUtils.isNotBlank( source.getDelivery().getFirstName() )){
+ target.setFirstName(source.getDelivery().getFirstName());
+ }
+
+ if(StringUtils.isNotBlank( source.getDelivery().getLastName() )){
+ target.setLastName(source.getDelivery().getLastName());
+ }
+
+ if(StringUtils.isNotBlank( source.getDelivery().getPostalCode() )){
+ target.setPostalCode(source.getDelivery().getPostalCode());
+ }
+
+ if(StringUtils.isNotBlank( source.getDelivery().getTelephone() )){
+ target.setPhone(source.getDelivery().getTelephone());
+ }
+
+ target.setStateProvince(source.getDelivery().getState());
+
+ if(source.getDelivery().getTelephone()==null) {
+ target.setPhone(source.getDelivery().getTelephone());
+ }
+ target.setAddress(source.getDelivery().getAddress());
+ if(source.getDelivery().getCountry()!=null) {
+ target.setCountry(source.getDelivery().getCountry().getIsoCode());
+ }
+ if(source.getDelivery().getZone()!=null) {
+ target.setZone(source.getDelivery().getZone().getCode());
+ }
+ }
+ return target;
+ }
+
+ @Override
+ protected Address createTarget()
+ {
+ return new Address();
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/populator/customer/CustomerEntityPopulator.java b/sm-shop/src/main/java/com/salesmanager/shop/populator/customer/CustomerEntityPopulator.java
new file mode 100644
index 0000000..a3c8f5b
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/populator/customer/CustomerEntityPopulator.java
@@ -0,0 +1,108 @@
+/**
+ *
+ */
+package com.salesmanager.web.populator.customer;
+
+import org.apache.commons.lang.StringUtils;
+
+import com.salesmanager.core.business.customer.model.Customer;
+import com.salesmanager.core.business.generic.exception.ConversionException;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.utils.AbstractDataPopulator;
+import com.salesmanager.web.entity.customer.Address;
+import com.salesmanager.web.entity.customer.CustomerEntity;
+
+/**
+ * <p>
+ * CustomerEntityPopulator will help to populate {@link CustomerEntity} from {@link Customer} CustomerEntity will be
+ * used to show data on the UI side.
+ * </p>
+ *
+ * @author Umesh Awasthi
+ * @version 1.2
+ */
+public class CustomerEntityPopulator
+ extends AbstractDataPopulator<Customer, CustomerEntity>
+{
+
+ @Override
+ public CustomerEntity populate( final Customer source, final CustomerEntity target,
+ final MerchantStore merchantStore, final Language language )
+ throws ConversionException
+ {
+ try
+ {
+
+
+ target.setId( source.getId() );
+ if(StringUtils.isNotBlank( source.getEmailAddress() )){
+ target.setEmailAddress( source.getEmailAddress() );
+ }
+
+
+
+ if ( source.getBilling() != null )
+ {
+ Address address = new Address();
+ address.setCity( source.getBilling().getCity() );
+ address.setAddress(source.getBilling().getAddress());
+ address.setCompany( source.getBilling().getCompany() );
+ address.setFirstName( source.getBilling().getFirstName() );
+ address.setLastName( source.getBilling().getLastName() );
+ address.setPostalCode( source.getBilling().getPostalCode() );
+ address.setPhone( source.getBilling().getTelephone() );
+ if ( source.getBilling().getCountry() != null )
+ {
+ address.setCountry( source.getBilling().getCountry().getIsoCode() );
+ }
+ if ( source.getBilling().getZone() != null )
+ {
+ address.setZone( source.getBilling().getZone().getCode() );
+ }
+
+ address.setStateProvince(source.getBilling().getState());
+
+ target.setBilling( address );
+ }
+
+ if ( source.getDelivery() != null )
+ {
+ Address address = new Address();
+ address.setCity( source.getDelivery().getCity() );
+ address.setAddress(source.getDelivery().getAddress());
+ address.setCompany( source.getDelivery().getCompany() );
+ address.setFirstName( source.getDelivery().getFirstName() );
+ address.setLastName( source.getDelivery().getLastName() );
+ address.setPostalCode( source.getDelivery().getPostalCode() );
+ address.setPhone( source.getDelivery().getTelephone() );
+ if ( source.getDelivery().getCountry() != null )
+ {
+ address.setCountry( source.getDelivery().getCountry().getIsoCode() );
+ }
+ if ( source.getDelivery().getZone() != null )
+ {
+ address.setZone( source.getDelivery().getZone().getCode() );
+ }
+
+ address.setStateProvince(source.getDelivery().getState());
+
+ target.setDelivery( address );
+ }
+
+ }
+ catch ( Exception e )
+ {
+ throw new ConversionException( e );
+ }
+
+ return target;
+ }
+
+ @Override
+ protected CustomerEntity createTarget()
+ {
+ return new CustomerEntity();
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/populator/customer/CustomerOptionPopulator.java b/sm-shop/src/main/java/com/salesmanager/shop/populator/customer/CustomerOptionPopulator.java
new file mode 100644
index 0000000..609d491
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/populator/customer/CustomerOptionPopulator.java
@@ -0,0 +1,68 @@
+package com.salesmanager.web.populator.customer;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import com.salesmanager.core.business.customer.model.attribute.CustomerOptionSet;
+import com.salesmanager.core.business.generic.exception.ConversionException;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.utils.AbstractDataPopulator;
+import com.salesmanager.web.admin.entity.customer.attribute.CustomerOption;
+import com.salesmanager.web.admin.entity.customer.attribute.CustomerOptionValue;
+
+public class CustomerOptionPopulator extends
+ AbstractDataPopulator<com.salesmanager.core.business.customer.model.attribute.CustomerOption, com.salesmanager.web.admin.entity.customer.attribute.CustomerOption> {
+
+
+ private CustomerOptionSet optionSet;
+
+ public CustomerOptionSet getOptionSet() {
+ return optionSet;
+ }
+
+ public void setOptionSet(CustomerOptionSet optionSet) {
+ this.optionSet = optionSet;
+ }
+
+ @Override
+ public CustomerOption populate(
+ com.salesmanager.core.business.customer.model.attribute.CustomerOption source,
+ CustomerOption target, MerchantStore store, Language language) throws ConversionException {
+
+
+ CustomerOption customerOption = target;
+ if(customerOption==null) {
+ customerOption = new CustomerOption();
+ }
+
+ customerOption.setId(source.getId());
+ customerOption.setType(source.getCustomerOptionType());
+ customerOption.setName(source.getDescriptionsSettoList().get(0).getName());
+
+ List<CustomerOptionValue> values = customerOption.getAvailableValues();
+ if(values==null) {
+ values = new ArrayList<CustomerOptionValue>();
+ customerOption.setAvailableValues(values);
+ }
+
+ com.salesmanager.core.business.customer.model.attribute.CustomerOptionValue optionValue = optionSet.getCustomerOptionValue();
+ CustomerOptionValue custOptValue = new CustomerOptionValue();
+ custOptValue.setId(optionValue.getId());
+ custOptValue.setLanguage(language.getCode());
+ custOptValue.setName(optionValue.getDescriptionsSettoList().get(0).getName());
+ values.add(custOptValue);
+
+ return customerOption;
+
+ }
+
+ @Override
+ protected CustomerOption createTarget()
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/populator/customer/CustomerPopulator.java b/sm-shop/src/main/java/com/salesmanager/shop/populator/customer/CustomerPopulator.java
new file mode 100644
index 0000000..0103182
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/populator/customer/CustomerPopulator.java
@@ -0,0 +1,272 @@
+package com.salesmanager.web.populator.customer;
+
+import java.util.Map;
+
+import org.apache.commons.lang.Validate;
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.salesmanager.core.business.common.model.Billing;
+import com.salesmanager.core.business.common.model.Delivery;
+import com.salesmanager.core.business.customer.model.Customer;
+import com.salesmanager.core.business.customer.model.attribute.CustomerAttribute;
+import com.salesmanager.core.business.customer.model.attribute.CustomerOption;
+import com.salesmanager.core.business.customer.model.attribute.CustomerOptionValue;
+import com.salesmanager.core.business.customer.service.attribute.CustomerOptionService;
+import com.salesmanager.core.business.customer.service.attribute.CustomerOptionValueService;
+import com.salesmanager.core.business.generic.exception.ConversionException;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.country.model.Country;
+import com.salesmanager.core.business.reference.country.service.CountryService;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.business.reference.language.service.LanguageService;
+import com.salesmanager.core.business.reference.zone.model.Zone;
+import com.salesmanager.core.business.reference.zone.service.ZoneService;
+import com.salesmanager.core.utils.AbstractDataPopulator;
+import com.salesmanager.web.entity.customer.Address;
+import com.salesmanager.web.entity.customer.PersistableCustomer;
+import com.salesmanager.web.entity.customer.attribute.PersistableCustomerAttribute;
+
+public class CustomerPopulator extends
+ AbstractDataPopulator<PersistableCustomer, Customer> {
+
+ protected static final Logger LOG=LoggerFactory.getLogger( CustomerPopulator.class );
+ private CountryService countryService;
+ private ZoneService zoneService;
+ private LanguageService languageService;
+
+ private CustomerOptionService customerOptionService;
+ private CustomerOptionValueService customerOptionValueService;
+
+
+ /**
+ * Creates a Customer entity ready to be saved
+ */
+ @Override
+ public Customer populate(PersistableCustomer source, Customer target,
+ MerchantStore store, Language language) throws ConversionException {
+
+ Validate.notNull(customerOptionService, "Requires to set CustomerOptionService");
+ Validate.notNull(customerOptionValueService, "Requires to set CustomerOptionValueService");
+ Validate.notNull(zoneService, "Requires to set ZoneService");
+ Validate.notNull(countryService, "Requires to set CountryService");
+ Validate.notNull(languageService, "Requires to set LanguageService");
+
+ try {
+
+ if(source.getId() !=null && source.getId()>0){
+ target.setId( source.getId() );
+ }
+
+
+ if(!StringUtils.isBlank(source.getEncodedPassword())) {
+ target.setPassword(source.getEncodedPassword());
+ target.setAnonymous(false);
+ }
+
+ target.setEmailAddress(source.getEmailAddress());
+ target.setNick(source.getUserName());
+ if(source.getGender()!=null && target.getGender()==null) {
+ target.setGender( com.salesmanager.core.business.customer.model.CustomerGender.valueOf( source.getGender() ) );
+ }
+ if(target.getGender()==null) {
+ target.setGender( com.salesmanager.core.business.customer.model.CustomerGender.M);
+ }
+
+ Map<String,Country> countries = countryService.getCountriesMap(language);
+ Map<String,Zone> zones = zoneService.getZones(language);
+
+ target.setMerchantStore( store );
+
+ Address sourceBilling = source.getBilling();
+ if(sourceBilling!=null) {
+ Billing billing = new Billing();
+ billing.setAddress(sourceBilling.getAddress());
+ billing.setCity(sourceBilling.getCity());
+ billing.setCompany(sourceBilling.getCompany());
+ //billing.setCountry(country);
+ billing.setFirstName(sourceBilling.getFirstName());
+ billing.setLastName(sourceBilling.getLastName());
+ billing.setTelephone(sourceBilling.getPhone());
+ billing.setPostalCode(sourceBilling.getPostalCode());
+ billing.setState(sourceBilling.getStateProvince());
+ Country billingCountry = null;
+ if(!StringUtils.isBlank(sourceBilling.getCountry())) {
+ billingCountry = countries.get(sourceBilling.getCountry());
+ if(billingCountry==null) {
+ throw new ConversionException("Unsuported country code " + sourceBilling.getCountry());
+ }
+ billing.setCountry(billingCountry);
+ }
+
+ if(billingCountry!=null && !StringUtils.isBlank(sourceBilling.getZone())) {
+ Zone zone = zoneService.getByCode(sourceBilling.getZone());
+ if(zone==null) {
+ throw new ConversionException("Unsuported zone code " + sourceBilling.getZone());
+ }
+ Zone zoneDescription = zones.get(zone.getCode());
+ billing.setZone(zoneDescription);
+ }
+ target.setBilling(billing);
+
+ }
+ if(target.getBilling() ==null && source.getBilling()!=null){
+ LOG.info( "Setting default values for billing" );
+ Billing billing = new Billing();
+ Country billingCountry = null;
+ if(StringUtils.isNotBlank( source.getBilling().getCountry() )) {
+ billingCountry = countries.get(source.getBilling().getCountry());
+ if(billingCountry==null) {
+ throw new ConversionException("Unsuported country code " + sourceBilling.getCountry());
+ }
+ billing.setCountry(billingCountry);
+ target.setBilling( billing );
+ }
+ }
+ Address sourceShipping = source.getDelivery();
+ if(sourceShipping!=null) {
+ Delivery delivery = new Delivery();
+ delivery.setAddress(sourceShipping.getAddress());
+ delivery.setCity(sourceShipping.getCity());
+ delivery.setCompany(sourceShipping.getCompany());
+ delivery.setFirstName(sourceShipping.getFirstName());
+ delivery.setLastName(sourceShipping.getLastName());
+ delivery.setTelephone(sourceShipping.getPhone());
+ delivery.setPostalCode(sourceShipping.getPostalCode());
+ delivery.setState(sourceShipping.getStateProvince());
+ Country deliveryCountry = null;
+
+
+
+ if(!StringUtils.isBlank(sourceShipping.getCountry())) {
+ deliveryCountry = countries.get(sourceShipping.getCountry());
+ if(deliveryCountry==null) {
+ throw new ConversionException("Unsuported country code " + sourceShipping.getCountry());
+ }
+ delivery.setCountry(deliveryCountry);
+ }
+
+ if(deliveryCountry!=null && !StringUtils.isBlank(sourceShipping.getZone())) {
+ Zone zone = zoneService.getByCode(sourceShipping.getZone());
+ if(zone==null) {
+ throw new ConversionException("Unsuported zone code " + sourceShipping.getZone());
+ }
+ Zone zoneDescription = zones.get(zone.getCode());
+ delivery.setZone(zoneDescription);
+ }
+ target.setDelivery(delivery);
+ }
+
+ if(target.getDelivery() ==null && source.getDelivery()!=null){
+ LOG.info( "Setting default value for delivery" );
+ Delivery delivery = new Delivery();
+ Country deliveryCountry = null;
+ if(StringUtils.isNotBlank( source.getDelivery().getCountry() )) {
+ deliveryCountry = countries.get(source.getDelivery().getCountry());
+ if(deliveryCountry==null) {
+ throw new ConversionException("Unsuported country code " + sourceShipping.getCountry());
+ }
+ delivery.setCountry(deliveryCountry);
+ target.setDelivery( delivery );
+ }
+ }
+
+ if(source.getAttributes()!=null) {
+ for(PersistableCustomerAttribute attr : source.getAttributes()) {
+
+ CustomerOption customerOption = customerOptionService.getById(attr.getCustomerOption().getId());
+ if(customerOption==null) {
+ throw new ConversionException("Customer option id " + attr.getCustomerOption().getId() + " does not exist");
+ }
+
+ CustomerOptionValue customerOptionValue = customerOptionValueService.getById(attr.getCustomerOptionValue().getId());
+ if(customerOptionValue==null) {
+ throw new ConversionException("Customer option value id " + attr.getCustomerOptionValue().getId() + " does not exist");
+ }
+
+ if(customerOption.getMerchantStore().getId().intValue()!=store.getId().intValue()) {
+ throw new ConversionException("Invalid customer option id ");
+ }
+
+ if(customerOptionValue.getMerchantStore().getId().intValue()!=store.getId().intValue()) {
+ throw new ConversionException("Invalid customer option value id ");
+ }
+
+ CustomerAttribute attribute = new CustomerAttribute();
+ attribute.setCustomer(target);
+ attribute.setCustomerOption(customerOption);
+ attribute.setCustomerOptionValue(customerOptionValue);
+ attribute.setTextValue(attr.getTextValue());
+
+ target.getAttributes().add(attribute);
+
+ }
+ }
+
+ if(target.getDefaultLanguage()==null) {
+ Language lang = languageService.getByCode(source.getLanguage());
+ if(lang==null) {
+ lang = store.getDefaultLanguage();
+ }
+
+ target.setDefaultLanguage(lang);
+ }
+
+
+ } catch (Exception e) {
+ throw new ConversionException(e);
+ }
+
+
+
+
+ return target;
+ }
+
+ @Override
+ protected Customer createTarget() {
+ return new Customer();
+ }
+
+ public void setCustomerOptionService(CustomerOptionService customerOptionService) {
+ this.customerOptionService = customerOptionService;
+ }
+
+ public CustomerOptionService getCustomerOptionService() {
+ return customerOptionService;
+ }
+
+ public void setCustomerOptionValueService(CustomerOptionValueService customerOptionValueService) {
+ this.customerOptionValueService = customerOptionValueService;
+ }
+
+ public CustomerOptionValueService getCustomerOptionValueService() {
+ return customerOptionValueService;
+ }
+
+ public CountryService getCountryService() {
+ return countryService;
+ }
+
+ public void setCountryService(CountryService countryService) {
+ this.countryService = countryService;
+ }
+
+ public ZoneService getZoneService() {
+ return zoneService;
+ }
+
+ public void setZoneService(ZoneService zoneService) {
+ this.zoneService = zoneService;
+ }
+
+ public LanguageService getLanguageService() {
+ return languageService;
+ }
+
+ public void setLanguageService(LanguageService languageService) {
+ this.languageService = languageService;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/populator/customer/PersistableCustomerBillingAddressPopulator.java b/sm-shop/src/main/java/com/salesmanager/shop/populator/customer/PersistableCustomerBillingAddressPopulator.java
new file mode 100644
index 0000000..ee21133
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/populator/customer/PersistableCustomerBillingAddressPopulator.java
@@ -0,0 +1,62 @@
+package com.salesmanager.web.populator.customer;
+
+import org.apache.commons.lang.StringUtils;
+
+import com.salesmanager.core.business.customer.model.Customer;
+import com.salesmanager.core.business.generic.exception.ConversionException;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.utils.AbstractDataPopulator;
+import com.salesmanager.web.entity.customer.Address;
+
+public class PersistableCustomerBillingAddressPopulator extends AbstractDataPopulator<Address, Customer>
+{
+
+ @Override
+ public Customer populate( Address source, Customer target, MerchantStore store, Language language )
+ throws ConversionException
+ {
+
+
+ target.getBilling().setFirstName( source.getFirstName() );
+ target.getBilling().setLastName( source.getLastName() );
+
+ // lets fill optional data now
+
+ if(StringUtils.isNotBlank( source.getAddress())){
+ target.getBilling().setAddress( source.getAddress() );
+ }
+
+ if(StringUtils.isNotBlank( source.getCity())){
+ target.getBilling().setCity( source.getCity() );
+ }
+
+ if(StringUtils.isNotBlank( source.getCompany())){
+ target.getBilling().setCompany( source.getCompany() );
+ }
+
+ if(StringUtils.isNotBlank( source.getPhone())){
+ target.getBilling().setTelephone( source.getPhone());
+ }
+
+ if(StringUtils.isNotBlank( source.getPostalCode())){
+ target.getBilling().setPostalCode( source.getPostalCode());
+ }
+
+ if(StringUtils.isNotBlank( source.getStateProvince())){
+ target.getBilling().setState(source.getStateProvince());
+ }
+
+ return target;
+
+ }
+
+ @Override
+ protected Customer createTarget()
+ {
+ return null;
+ }
+
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/populator/customer/PersistableCustomerOptionPopulator.java b/sm-shop/src/main/java/com/salesmanager/shop/populator/customer/PersistableCustomerOptionPopulator.java
new file mode 100644
index 0000000..2455834
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/populator/customer/PersistableCustomerOptionPopulator.java
@@ -0,0 +1,82 @@
+package com.salesmanager.web.populator.customer;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang.Validate;
+import org.apache.commons.lang3.StringUtils;
+
+import com.salesmanager.core.business.customer.model.attribute.CustomerOption;
+import com.salesmanager.core.business.generic.exception.ConversionException;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.business.reference.language.service.LanguageService;
+import com.salesmanager.core.utils.AbstractDataPopulator;
+import com.salesmanager.web.entity.customer.attribute.CustomerOptionDescription;
+import com.salesmanager.web.entity.customer.attribute.PersistableCustomerOption;
+
+public class PersistableCustomerOptionPopulator extends
+ AbstractDataPopulator<PersistableCustomerOption, CustomerOption> {
+
+
+ private LanguageService languageService;
+
+ @Override
+ public CustomerOption populate(PersistableCustomerOption source,
+ CustomerOption target, MerchantStore store, Language language)
+ throws ConversionException {
+
+
+ Validate.notNull(languageService, "Requires to set LanguageService");
+
+
+ try {
+
+ target.setCode(source.getCode());
+ target.setMerchantStore(store);
+ target.setSortOrder(source.getOrder());
+ if(!StringUtils.isBlank(source.getType())) {
+ target.setCustomerOptionType(source.getType());
+ } else {
+ target.setCustomerOptionType("TEXT");
+ }
+ target.setPublicOption(true);
+
+ if(!CollectionUtils.isEmpty(source.getDescriptions())) {
+ Set<com.salesmanager.core.business.customer.model.attribute.CustomerOptionDescription> descriptions = new HashSet<com.salesmanager.core.business.customer.model.attribute.CustomerOptionDescription>();
+ for(CustomerOptionDescription desc : source.getDescriptions()) {
+ com.salesmanager.core.business.customer.model.attribute.CustomerOptionDescription description = new com.salesmanager.core.business.customer.model.attribute.CustomerOptionDescription();
+ Language lang = languageService.getByCode(desc.getLanguage());
+ if(lang==null) {
+ throw new ConversionException("Language is null for code " + description.getLanguage() + " use language ISO code [en, fr ...]");
+ }
+ description.setLanguage(lang);
+ description.setName(desc.getName());
+ description.setTitle(desc.getTitle());
+ description.setCustomerOption(target);
+ descriptions.add(description);
+ }
+ target.setDescriptions(descriptions);
+ }
+
+ } catch (Exception e) {
+ throw new ConversionException(e);
+ }
+ return target;
+ }
+
+ @Override
+ protected CustomerOption createTarget() {
+ return null;
+ }
+
+ public void setLanguageService(LanguageService languageService) {
+ this.languageService = languageService;
+ }
+
+ public LanguageService getLanguageService() {
+ return languageService;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/populator/customer/PersistableCustomerOptionValuePopulator.java b/sm-shop/src/main/java/com/salesmanager/shop/populator/customer/PersistableCustomerOptionValuePopulator.java
new file mode 100644
index 0000000..221115b
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/populator/customer/PersistableCustomerOptionValuePopulator.java
@@ -0,0 +1,75 @@
+package com.salesmanager.web.populator.customer;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang.Validate;
+
+import com.salesmanager.core.business.customer.model.attribute.CustomerOptionValue;
+import com.salesmanager.core.business.generic.exception.ConversionException;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.business.reference.language.service.LanguageService;
+import com.salesmanager.core.utils.AbstractDataPopulator;
+import com.salesmanager.web.entity.customer.attribute.CustomerOptionValueDescription;
+import com.salesmanager.web.entity.customer.attribute.PersistableCustomerOptionValue;
+
+public class PersistableCustomerOptionValuePopulator extends
+ AbstractDataPopulator<PersistableCustomerOptionValue, CustomerOptionValue> {
+
+
+ private LanguageService languageService;
+
+ @Override
+ public CustomerOptionValue populate(PersistableCustomerOptionValue source,
+ CustomerOptionValue target, MerchantStore store, Language language)
+ throws ConversionException {
+
+
+ Validate.notNull(languageService, "Requires to set LanguageService");
+
+
+ try {
+
+ target.setCode(source.getCode());
+ target.setMerchantStore(store);
+ target.setSortOrder(source.getOrder());
+
+ if(!CollectionUtils.isEmpty(source.getDescriptions())) {
+ Set<com.salesmanager.core.business.customer.model.attribute.CustomerOptionValueDescription> descriptions = new HashSet<com.salesmanager.core.business.customer.model.attribute.CustomerOptionValueDescription>();
+ for(CustomerOptionValueDescription desc : source.getDescriptions()) {
+ com.salesmanager.core.business.customer.model.attribute.CustomerOptionValueDescription description = new com.salesmanager.core.business.customer.model.attribute.CustomerOptionValueDescription();
+ Language lang = languageService.getByCode(desc.getLanguage());
+ if(lang==null) {
+ throw new ConversionException("Language is null for code " + description.getLanguage() + " use language ISO code [en, fr ...]");
+ }
+ description.setLanguage(lang);
+ description.setName(desc.getName());
+ description.setTitle(desc.getTitle());
+ description.setCustomerOptionValue(target);
+ descriptions.add(description);
+ }
+ target.setDescriptions(descriptions);
+ }
+
+ } catch (Exception e) {
+ throw new ConversionException(e);
+ }
+ return target;
+ }
+
+ @Override
+ protected CustomerOptionValue createTarget() {
+ return null;
+ }
+
+ public void setLanguageService(LanguageService languageService) {
+ this.languageService = languageService;
+ }
+
+ public LanguageService getLanguageService() {
+ return languageService;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/populator/customer/PersistableCustomerPopulator.java b/sm-shop/src/main/java/com/salesmanager/shop/populator/customer/PersistableCustomerPopulator.java
new file mode 100644
index 0000000..c1d9d77
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/populator/customer/PersistableCustomerPopulator.java
@@ -0,0 +1,96 @@
+package com.salesmanager.web.populator.customer;
+
+import com.salesmanager.core.business.customer.model.Customer;
+import com.salesmanager.core.business.generic.exception.ConversionException;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.utils.AbstractDataPopulator;
+import com.salesmanager.web.entity.customer.Address;
+import com.salesmanager.web.entity.customer.PersistableCustomer;
+
+public class PersistableCustomerPopulator extends
+ AbstractDataPopulator<Customer, PersistableCustomer> {
+
+ @Override
+ public PersistableCustomer populate(Customer source,
+ PersistableCustomer target, MerchantStore store, Language language)
+ throws ConversionException {
+
+
+ try {
+
+
+ if(source.getBilling()!=null) {
+ Address address = new Address();
+ address.setCity(source.getBilling().getCity());
+ address.setCompany(source.getBilling().getCompany());
+ address.setFirstName(source.getBilling().getFirstName());
+ address.setLastName(source.getBilling().getLastName());
+ address.setPostalCode(source.getBilling().getPostalCode());
+ address.setPhone(source.getBilling().getTelephone());
+ if(source.getBilling().getTelephone()==null) {
+ address.setPhone(source.getBilling().getTelephone());
+ }
+ address.setAddress(source.getBilling().getAddress());
+ if(source.getBilling().getCountry()!=null) {
+ address.setCountry(source.getBilling().getCountry().getIsoCode());
+ }
+ if(source.getBilling().getZone()!=null) {
+ address.setZone(source.getBilling().getZone().getCode());
+ }
+
+ target.setBilling(address);
+ }
+
+ if(source.getDelivery()!=null) {
+ Address address = new Address();
+ address.setAddress(source.getDelivery().getAddress());
+ address.setCity(source.getDelivery().getCity());
+ address.setCompany(source.getDelivery().getCompany());
+ address.setFirstName(source.getDelivery().getFirstName());
+ address.setLastName(source.getDelivery().getLastName());
+ address.setPostalCode(source.getDelivery().getPostalCode());
+ address.setPhone(source.getDelivery().getTelephone());
+ if(source.getDelivery().getCountry()!=null) {
+ address.setCountry(source.getDelivery().getCountry().getIsoCode());
+ }
+ if(source.getDelivery().getZone()!=null) {
+ address.setZone(source.getDelivery().getZone().getCode());
+ }
+
+ target.setDelivery(address);
+ }
+
+ target.setId(source.getId());
+ target.setEmailAddress(source.getEmailAddress());
+ if(source.getGender()!=null) {
+ target.setGender(source.getGender().name());
+ }
+ if(source.getDefaultLanguage()!=null) {
+ target.setLanguage(source.getDefaultLanguage().getCode());
+ }
+ target.setUserName(source.getNick());
+ target.setStoreCode(store.getCode());
+ if(source.getDefaultLanguage()!=null) {
+ target.setLanguage(source.getDefaultLanguage().getCode());
+ } else {
+ target.setLanguage(store.getDefaultLanguage().getCode());
+ }
+
+
+
+ } catch (Exception e) {
+ throw new ConversionException(e);
+ }
+
+ return target;
+
+ }
+
+ @Override
+ protected PersistableCustomer createTarget() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/populator/customer/PersistableCustomerShippingAddressPopulator.java b/sm-shop/src/main/java/com/salesmanager/shop/populator/customer/PersistableCustomerShippingAddressPopulator.java
new file mode 100644
index 0000000..5c8c081
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/populator/customer/PersistableCustomerShippingAddressPopulator.java
@@ -0,0 +1,97 @@
+package com.salesmanager.web.populator.customer;
+
+import org.apache.commons.lang.StringUtils;
+
+import com.salesmanager.core.business.common.model.Delivery;
+import com.salesmanager.core.business.customer.model.Customer;
+import com.salesmanager.core.business.generic.exception.ConversionException;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.utils.AbstractDataPopulator;
+import com.salesmanager.web.entity.customer.Address;
+
+public class PersistableCustomerShippingAddressPopulator extends AbstractDataPopulator<Address, Customer>
+{
+
+ @Override
+ public Customer populate( Address source, Customer target, MerchantStore store, Language language )
+ throws ConversionException
+ {
+
+
+ if( target.getDelivery() == null){
+
+ Delivery delivery=new Delivery();
+ delivery.setFirstName( source.getFirstName()) ;
+ delivery.setLastName( source.getLastName() );
+
+ if(StringUtils.isNotBlank( source.getAddress())){
+ delivery.setAddress( source.getAddress() );
+ }
+
+ if(StringUtils.isNotBlank( source.getCity())){
+ delivery.setCity( source.getCity() );
+ }
+
+ if(StringUtils.isNotBlank( source.getCompany())){
+ delivery.setCompany( source.getCompany() );
+ }
+
+ if(StringUtils.isNotBlank( source.getPhone())){
+ delivery.setTelephone( source.getPhone());
+ }
+
+ if(StringUtils.isNotBlank( source.getPostalCode())){
+ delivery.setPostalCode( source.getPostalCode());
+ }
+
+ if(StringUtils.isNotBlank( source.getStateProvince())){
+ delivery.setPostalCode( source.getStateProvince());
+ }
+
+ target.setDelivery( delivery );
+ }
+ else{
+ target.getDelivery().setFirstName( source.getFirstName() );
+ target.getDelivery().setLastName( source.getLastName() );
+
+ // lets fill optional data now
+
+ if(StringUtils.isNotBlank( source.getAddress())){
+ target.getDelivery().setAddress( source.getAddress() );
+ }
+
+ if(StringUtils.isNotBlank( source.getCity())){
+ target.getDelivery().setCity( source.getCity() );
+ }
+
+ if(StringUtils.isNotBlank( source.getCompany())){
+ target.getDelivery().setCompany( source.getCompany() );
+ }
+
+ if(StringUtils.isNotBlank( source.getPhone())){
+ target.getDelivery().setTelephone( source.getPhone());
+ }
+
+ if(StringUtils.isNotBlank( source.getPostalCode())){
+ target.getDelivery().setPostalCode( source.getPostalCode());
+ }
+
+ if(StringUtils.isNotBlank( source.getStateProvince())){
+ target.getDelivery().setPostalCode( source.getStateProvince());
+ }
+ }
+
+ return target;
+
+ }
+
+ @Override
+ protected Customer createTarget()
+ {
+ return null;
+ }
+
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/populator/customer/ReadableCustomerDeliveryAddressPopulator.java b/sm-shop/src/main/java/com/salesmanager/shop/populator/customer/ReadableCustomerDeliveryAddressPopulator.java
new file mode 100644
index 0000000..dbee394
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/populator/customer/ReadableCustomerDeliveryAddressPopulator.java
@@ -0,0 +1,145 @@
+/**
+ *
+ */
+package com.salesmanager.web.populator.customer;
+
+import java.util.Map;
+
+import org.apache.commons.lang.StringUtils;
+
+import com.salesmanager.core.business.common.model.Delivery;
+import com.salesmanager.core.business.generic.exception.ConversionException;
+import com.salesmanager.core.business.generic.exception.ServiceException;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.country.model.Country;
+import com.salesmanager.core.business.reference.country.service.CountryService;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.business.reference.zone.model.Zone;
+import com.salesmanager.core.business.reference.zone.service.ZoneService;
+import com.salesmanager.core.utils.AbstractDataPopulator;
+import com.salesmanager.web.entity.customer.ReadableDelivery;
+
+/**
+ * @author Carl Samson
+ *
+ */
+public class ReadableCustomerDeliveryAddressPopulator extends AbstractDataPopulator<Delivery, ReadableDelivery>
+{
+
+
+ private CountryService countryService;
+ private ZoneService zoneService;
+
+ @Override
+ public ReadableDelivery populate( Delivery source, ReadableDelivery target, MerchantStore store, Language language )
+ throws ConversionException
+ {
+
+
+ if(countryService==null) {
+ throw new ConversionException("countryService must be set");
+ }
+
+ if(zoneService==null) {
+ throw new ConversionException("zoneService must be set");
+ }
+
+
+ target.setLatitude(source.getLatitude());
+ target.setLongitude(source.getLongitude());
+
+
+ if(StringUtils.isNotBlank( source.getCity() )){
+ target.setCity(source.getCity());
+ }
+
+ if(StringUtils.isNotBlank( source.getCompany() )){
+ target.setCompany(source.getCompany());
+ }
+
+ if(StringUtils.isNotBlank( source.getAddress() )){
+ target.setAddress(source.getAddress());
+ }
+
+ if(StringUtils.isNotBlank( source.getFirstName() )){
+ target.setFirstName(source.getFirstName());
+ }
+
+ if(StringUtils.isNotBlank( source.getLastName() )){
+ target.setLastName(source.getLastName());
+ }
+
+ if(StringUtils.isNotBlank( source.getPostalCode() )){
+ target.setPostalCode(source.getPostalCode());
+ }
+
+ if(StringUtils.isNotBlank( source.getTelephone() )){
+ target.setPhone(source.getTelephone());
+ }
+
+ target.setStateProvince(source.getState());
+
+ if(source.getTelephone()==null) {
+ target.setPhone(source.getTelephone());
+ }
+ target.setAddress(source.getAddress());
+ if(source.getCountry()!=null) {
+ target.setCountry(source.getCountry().getIsoCode());
+
+ //resolve country name
+ try {
+ Map<String,Country> countries = countryService.getCountriesMap(language);
+ Country c =countries.get(source.getCountry().getIsoCode());
+ if(c!=null) {
+ target.setCountryName(c.getName());
+ }
+ } catch (ServiceException e) {
+ // TODO Auto-generated catch block
+ throw new ConversionException(e);
+ }
+ }
+ if(source.getZone()!=null) {
+ target.setZone(source.getZone().getCode());
+
+ //resolve zone name
+ try {
+ Map<String,Zone> zones = zoneService.getZones(language);
+ Zone z = zones.get(source.getZone().getCode());
+ if(z!=null) {
+ target.setProvinceName(z.getName());
+ }
+ } catch (ServiceException e) {
+ // TODO Auto-generated catch block
+ throw new ConversionException(e);
+ }
+ }
+
+
+
+ return target;
+ }
+
+ @Override
+ protected ReadableDelivery createTarget() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public CountryService getCountryService() {
+ return countryService;
+ }
+
+ public void setCountryService(CountryService countryService) {
+ this.countryService = countryService;
+ }
+
+ public ZoneService getZoneService() {
+ return zoneService;
+ }
+
+ public void setZoneService(ZoneService zoneService) {
+ this.zoneService = zoneService;
+ }
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/populator/customer/ReadableCustomerPopulator.java b/sm-shop/src/main/java/com/salesmanager/shop/populator/customer/ReadableCustomerPopulator.java
new file mode 100644
index 0000000..3ffed6e
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/populator/customer/ReadableCustomerPopulator.java
@@ -0,0 +1,114 @@
+package com.salesmanager.web.populator.customer;
+
+import com.salesmanager.core.business.customer.model.Customer;
+import com.salesmanager.core.business.customer.model.attribute.CustomerAttribute;
+import com.salesmanager.core.business.generic.exception.ConversionException;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.utils.AbstractDataPopulator;
+import com.salesmanager.web.entity.customer.Address;
+import com.salesmanager.web.entity.customer.ReadableCustomer;
+import com.salesmanager.web.entity.customer.attribute.CustomerOptionDescription;
+import com.salesmanager.web.entity.customer.attribute.CustomerOptionValueDescription;
+import com.salesmanager.web.entity.customer.attribute.ReadableCustomerAttribute;
+import com.salesmanager.web.entity.customer.attribute.ReadableCustomerOption;
+import com.salesmanager.web.entity.customer.attribute.ReadableCustomerOptionValue;
+
+public class ReadableCustomerPopulator extends
+ AbstractDataPopulator<Customer, ReadableCustomer> {
+
+
+
+ @Override
+ public ReadableCustomer populate(Customer source, ReadableCustomer target,
+ MerchantStore store, Language language) throws ConversionException {
+
+ try {
+
+ if(source.getId()!=null && source.getId()>0) {
+ target.setId(source.getId());
+ }
+ target.setEmailAddress(source.getEmailAddress());
+ if(source.getBilling()!=null) {
+ Address address = new Address();
+ address.setAddress(source.getBilling().getAddress());
+ address.setCity(source.getBilling().getCity());
+ address.setCompany(source.getBilling().getCompany());
+ address.setFirstName(source.getBilling().getFirstName());
+ address.setLastName(source.getBilling().getLastName());
+ address.setPostalCode(source.getBilling().getPostalCode());
+ address.setPhone(source.getBilling().getTelephone());
+ if(source.getBilling().getCountry()!=null) {
+ address.setCountry(source.getBilling().getCountry().getIsoCode());
+ }
+ if(source.getBilling().getZone()!=null) {
+ address.setZone(source.getBilling().getZone().getCode());
+ }
+
+ target.setFirstName(address.getFirstName());
+ target.setLastName(address.getLastName());
+
+ target.setBilling(address);
+ }
+
+ if(source.getDelivery()!=null) {
+ Address address = new Address();
+ address.setCity(source.getDelivery().getCity());
+ address.setAddress(source.getDelivery().getAddress());
+ address.setCompany(source.getDelivery().getCompany());
+ address.setFirstName(source.getDelivery().getFirstName());
+ address.setLastName(source.getDelivery().getLastName());
+ address.setPostalCode(source.getDelivery().getPostalCode());
+ address.setPhone(source.getDelivery().getTelephone());
+ if(source.getDelivery().getCountry()!=null) {
+ address.setCountry(source.getDelivery().getCountry().getIsoCode());
+ }
+ if(source.getDelivery().getZone()!=null) {
+ address.setZone(source.getDelivery().getZone().getCode());
+ }
+
+ target.setDelivery(address);
+ }
+
+ if(source.getAttributes()!=null) {
+ for(CustomerAttribute attribute : source.getAttributes()) {
+ ReadableCustomerAttribute readableAttribute = new ReadableCustomerAttribute();
+ readableAttribute.setId(attribute.getId());
+ ReadableCustomerOption option = new ReadableCustomerOption();
+ option.setId(attribute.getCustomerOption().getId());
+ option.setCode(attribute.getCustomerOption().getCode());
+
+ CustomerOptionDescription d = new CustomerOptionDescription();
+ d.setDescription(attribute.getCustomerOption().getDescriptionsSettoList().get(0).getDescription());
+ d.setName(attribute.getCustomerOption().getDescriptionsSettoList().get(0).getName());
+ option.setDescription(d);
+
+ readableAttribute.setCustomerOption(option);
+
+ ReadableCustomerOptionValue optionValue = new ReadableCustomerOptionValue();
+ optionValue.setId(attribute.getCustomerOptionValue().getId());
+ CustomerOptionValueDescription vd = new CustomerOptionValueDescription();
+ vd.setDescription(attribute.getCustomerOptionValue().getDescriptionsSettoList().get(0).getDescription());
+ vd.setName(attribute.getCustomerOptionValue().getDescriptionsSettoList().get(0).getName());
+ optionValue.setCode(attribute.getCustomerOptionValue().getCode());
+ optionValue.setDescription(vd);
+
+
+ readableAttribute.setCustomerOptionValue(optionValue);
+ target.getAttributes().add(readableAttribute);
+ }
+ }
+
+ } catch (Exception e) {
+ throw new ConversionException(e);
+ }
+
+ return target;
+ }
+
+ @Override
+ protected ReadableCustomer createTarget() {
+ return null;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/populator/manufacturer/PersistableManufacturerPopulator.java b/sm-shop/src/main/java/com/salesmanager/shop/populator/manufacturer/PersistableManufacturerPopulator.java
new file mode 100644
index 0000000..8735d6b
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/populator/manufacturer/PersistableManufacturerPopulator.java
@@ -0,0 +1,85 @@
+
+package com.salesmanager.web.populator.manufacturer;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang.Validate;
+
+import com.salesmanager.core.business.catalog.product.model.manufacturer.Manufacturer;
+import com.salesmanager.core.business.generic.exception.ConversionException;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.business.reference.language.service.LanguageService;
+import com.salesmanager.core.utils.AbstractDataPopulator;
+import com.salesmanager.web.entity.catalog.manufacturer.ManufacturerDescription;
+import com.salesmanager.web.entity.catalog.manufacturer.PersistableManufacturer;
+
+
+/**
+ * @author Carl Samson
+ *
+ */
+
+
+public class PersistableManufacturerPopulator extends AbstractDataPopulator<PersistableManufacturer, Manufacturer>
+{
+
+
+ private LanguageService languageService;
+
+ @Override
+ public Manufacturer populate(PersistableManufacturer source,
+ Manufacturer target, MerchantStore store, Language language)
+ throws ConversionException {
+
+ Validate.notNull(languageService, "Requires to set LanguageService");
+
+ try {
+
+ target.setMerchantStore(store);
+ target.setCode(source.getCode());
+
+
+ if(!CollectionUtils.isEmpty(source.getDescriptions())) {
+ Set<com.salesmanager.core.business.catalog.product.model.manufacturer.ManufacturerDescription> descriptions = new HashSet<com.salesmanager.core.business.catalog.product.model.manufacturer.ManufacturerDescription>();
+ for(ManufacturerDescription description : source.getDescriptions()) {
+ com.salesmanager.core.business.catalog.product.model.manufacturer.ManufacturerDescription desc = new com.salesmanager.core.business.catalog.product.model.manufacturer.ManufacturerDescription();
+ desc.setManufacturer(target);
+ desc.setDescription(description.getDescription());
+ desc.setName(description.getName());
+ Language lang = languageService.getByCode(description.getLanguage());
+ if(lang==null) {
+ throw new ConversionException("Language is null for code " + description.getLanguage() + " use language ISO code [en, fr ...]");
+ }
+ desc.setLanguage(lang);
+ descriptions.add(desc);
+ }
+ target.setDescriptions(descriptions);
+ }
+
+ } catch (Exception e) {
+ throw new ConversionException(e);
+ }
+
+
+ return target;
+ }
+
+ @Override
+ protected Manufacturer createTarget() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public void setLanguageService(LanguageService languageService) {
+ this.languageService = languageService;
+ }
+
+ public LanguageService getLanguageService() {
+ return languageService;
+ }
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/populator/manufacturer/ReadableManufacturerPopulator.java b/sm-shop/src/main/java/com/salesmanager/shop/populator/manufacturer/ReadableManufacturerPopulator.java
new file mode 100644
index 0000000..c5770c3
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/populator/manufacturer/ReadableManufacturerPopulator.java
@@ -0,0 +1,55 @@
+package com.salesmanager.web.populator.manufacturer;
+
+import java.util.Set;
+
+import com.salesmanager.core.business.catalog.product.model.manufacturer.ManufacturerDescription;
+import com.salesmanager.core.business.generic.exception.ConversionException;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.utils.AbstractDataPopulator;
+import com.salesmanager.web.entity.catalog.manufacturer.ReadableManufacturer;
+
+public class ReadableManufacturerPopulator extends AbstractDataPopulator<com.salesmanager.core.business.catalog.product.model.manufacturer.Manufacturer,ReadableManufacturer>
+{
+
+
+
+
+ @Override
+ public ReadableManufacturer populate(
+ com.salesmanager.core.business.catalog.product.model.manufacturer.Manufacturer source,
+ ReadableManufacturer target, MerchantStore store, Language language) throws ConversionException {
+ target.setId(source.getId());
+ if(source.getDescriptions()!=null && source.getDescriptions().size()>0) {
+
+ Set<ManufacturerDescription> descriptions = source.getDescriptions();
+ ManufacturerDescription description = null;
+ for(ManufacturerDescription desc : descriptions) {
+ if(desc.getLanguage().getCode().equals(language.getCode())) {
+ description = desc;
+ break;
+ }
+ }
+
+ target.setOrder(source.getOrder());
+ target.setId(source.getId());
+ target.setCode(source.getCode());
+
+ if (description != null) {
+ com.salesmanager.web.entity.catalog.manufacturer.ManufacturerDescription d = new com.salesmanager.web.entity.catalog.manufacturer.ManufacturerDescription();
+ d.setName(description.getName());
+ d.setDescription(description.getDescription());
+ target.setDescription(d);
+ }
+
+ }
+
+ return target;
+ }
+
+ @Override
+ protected ReadableManufacturer createTarget()
+ {
+ return null;
+ }
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/populator/order/OrderProductPopulator.java b/sm-shop/src/main/java/com/salesmanager/shop/populator/order/OrderProductPopulator.java
new file mode 100644
index 0000000..c978eef
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/populator/order/OrderProductPopulator.java
@@ -0,0 +1,191 @@
+package com.salesmanager.web.populator.order;
+
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang.Validate;
+
+import com.salesmanager.core.business.catalog.product.model.Product;
+import com.salesmanager.core.business.catalog.product.model.attribute.ProductAttribute;
+import com.salesmanager.core.business.catalog.product.model.file.DigitalProduct;
+import com.salesmanager.core.business.catalog.product.model.price.FinalPrice;
+import com.salesmanager.core.business.catalog.product.model.price.ProductPrice;
+import com.salesmanager.core.business.catalog.product.service.ProductService;
+import com.salesmanager.core.business.catalog.product.service.attribute.ProductAttributeService;
+import com.salesmanager.core.business.catalog.product.service.file.DigitalProductService;
+import com.salesmanager.core.business.generic.exception.ConversionException;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.order.model.orderproduct.OrderProduct;
+import com.salesmanager.core.business.order.model.orderproduct.OrderProductAttribute;
+import com.salesmanager.core.business.order.model.orderproduct.OrderProductDownload;
+import com.salesmanager.core.business.order.model.orderproduct.OrderProductPrice;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.business.shoppingcart.model.ShoppingCartAttributeItem;
+import com.salesmanager.core.business.shoppingcart.model.ShoppingCartItem;
+import com.salesmanager.core.utils.AbstractDataPopulator;
+import com.salesmanager.web.constants.ApplicationConstants;
+
+public class OrderProductPopulator extends
+ AbstractDataPopulator<ShoppingCartItem, OrderProduct> {
+
+ private ProductService productService;
+ private DigitalProductService digitalProductService;
+ private ProductAttributeService productAttributeService;
+
+
+ public ProductAttributeService getProductAttributeService() {
+ return productAttributeService;
+ }
+
+ public void setProductAttributeService(
+ ProductAttributeService productAttributeService) {
+ this.productAttributeService = productAttributeService;
+ }
+
+ public DigitalProductService getDigitalProductService() {
+ return digitalProductService;
+ }
+
+ public void setDigitalProductService(DigitalProductService digitalProductService) {
+ this.digitalProductService = digitalProductService;
+ }
+
+ /**
+ * Converts a ShoppingCartItem carried in the ShoppingCart to an OrderProduct
+ * that will be saved in the system
+ */
+ @Override
+ public OrderProduct populate(ShoppingCartItem source, OrderProduct target,
+ MerchantStore store, Language language) throws ConversionException {
+
+ Validate.notNull(productService,"productService must be set");
+ Validate.notNull(digitalProductService,"digitalProductService must be set");
+ Validate.notNull(productAttributeService,"productAttributeService must be set");
+
+
+ try {
+ Product modelProduct = productService.getById(source.getProductId());
+ if(modelProduct==null) {
+ throw new ConversionException("Cannot get product with id (productId) " + source.getProductId());
+ }
+
+ if(modelProduct.getMerchantStore().getId().intValue()!=store.getId().intValue()) {
+ throw new ConversionException("Invalid product id " + source.getProductId());
+ }
+
+ DigitalProduct digitalProduct = digitalProductService.getByProduct(store, modelProduct);
+
+ if(digitalProduct!=null) {
+ OrderProductDownload orderProductDownload = new OrderProductDownload();
+ orderProductDownload.setOrderProductFilename(digitalProduct.getProductFileName());
+ orderProductDownload.setOrderProduct(target);
+ orderProductDownload.setDownloadCount(0);
+ orderProductDownload.setMaxdays(ApplicationConstants.MAX_DOWNLOAD_DAYS);
+ target.getDownloads().add(orderProductDownload);
+ }
+
+ target.setOneTimeCharge(source.getItemPrice());
+ target.setProductName(source.getProduct().getDescriptions().iterator().next().getName());
+ target.setProductQuantity(source.getQuantity());
+ target.setSku(source.getProduct().getSku());
+
+ FinalPrice finalPrice = source.getFinalPrice();
+ if(finalPrice==null) {
+ throw new ConversionException("Object final price not populated in shoppingCartItem (source)");
+ }
+ //Default price
+ OrderProductPrice orderProductPrice = orderProductPrice(finalPrice);
+ orderProductPrice.setOrderProduct(target);
+
+ Set<OrderProductPrice> prices = new HashSet<OrderProductPrice>();
+ prices.add(orderProductPrice);
+
+ //Other prices
+ List<FinalPrice> otherPrices = finalPrice.getAdditionalPrices();
+ if(otherPrices!=null) {
+ for(FinalPrice otherPrice : otherPrices) {
+ OrderProductPrice other = orderProductPrice(otherPrice);
+ other.setOrderProduct(target);
+ prices.add(other);
+ }
+ }
+
+ target.setPrices(prices);
+
+ //OrderProductAttribute
+ Set<ShoppingCartAttributeItem> attributeItems = source.getAttributes();
+ if(!CollectionUtils.isEmpty(attributeItems)) {
+ Set<OrderProductAttribute> attributes = new HashSet<OrderProductAttribute>();
+ for(ShoppingCartAttributeItem attribute : attributeItems) {
+ OrderProductAttribute orderProductAttribute = new OrderProductAttribute();
+ orderProductAttribute.setOrderProduct(target);
+ Long id = attribute.getProductAttributeId();
+ ProductAttribute attr = productAttributeService.getById(id);
+ if(attr==null) {
+ throw new ConversionException("Attribute id " + id + " does not exists");
+ }
+
+ if(attr.getProduct().getMerchantStore().getId().intValue()!=store.getId().intValue()) {
+ throw new ConversionException("Attribute id " + id + " invalid for this store");
+ }
+
+ orderProductAttribute.setProductAttributeIsFree(attr.getProductAttributeIsFree());
+ orderProductAttribute.setProductAttributeName(attr.getProductOption().getDescriptionsSettoList().get(0).getName());
+ orderProductAttribute.setProductAttributeValueName(attr.getProductOptionValue().getDescriptionsSettoList().get(0).getName());
+ orderProductAttribute.setProductAttributePrice(attr.getProductAttributePrice());
+ orderProductAttribute.setProductAttributeWeight(attr.getProductAttributeWeight());
+ orderProductAttribute.setProductOptionId(attr.getProductOption().getId());
+ orderProductAttribute.setProductOptionValueId(attr.getProductOptionValue().getId());
+ attributes.add(orderProductAttribute);
+ }
+ target.setOrderAttributes(attributes);
+ }
+
+
+ } catch (Exception e) {
+ throw new ConversionException(e);
+ }
+
+
+ return target;
+ }
+
+ @Override
+ protected OrderProduct createTarget() {
+ return null;
+ }
+
+ public void setProductService(ProductService productService) {
+ this.productService = productService;
+ }
+
+ public ProductService getProductService() {
+ return productService;
+ }
+
+ private OrderProductPrice orderProductPrice(FinalPrice price) {
+
+ OrderProductPrice orderProductPrice = new OrderProductPrice();
+
+ ProductPrice productPrice = price.getProductPrice();
+
+ orderProductPrice.setDefaultPrice(productPrice.isDefaultPrice());
+
+ orderProductPrice.setProductPrice(price.getFinalPrice());
+ orderProductPrice.setProductPriceCode(productPrice.getCode());
+ if(productPrice.getDescriptions()!=null && productPrice.getDescriptions().size()>0) {
+ orderProductPrice.setProductPriceName(productPrice.getDescriptions().iterator().next().getName());
+ }
+ if(price.isDiscounted()) {
+ orderProductPrice.setProductPriceSpecial(productPrice.getProductPriceSpecialAmount());
+ orderProductPrice.setProductPriceSpecialStartDate(productPrice.getProductPriceSpecialStartDate());
+ orderProductPrice.setProductPriceSpecialEndDate(productPrice.getProductPriceSpecialEndDate());
+ }
+
+ return orderProductPrice;
+ }
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/populator/order/PersistableOrderPopulator.java b/sm-shop/src/main/java/com/salesmanager/shop/populator/order/PersistableOrderPopulator.java
new file mode 100644
index 0000000..874d1f9
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/populator/order/PersistableOrderPopulator.java
@@ -0,0 +1,227 @@
+package com.salesmanager.web.populator.order;
+
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang.Validate;
+
+import com.salesmanager.core.business.catalog.product.service.ProductService;
+import com.salesmanager.core.business.catalog.product.service.attribute.ProductAttributeService;
+import com.salesmanager.core.business.catalog.product.service.file.DigitalProductService;
+import com.salesmanager.core.business.customer.model.Customer;
+import com.salesmanager.core.business.customer.service.CustomerService;
+import com.salesmanager.core.business.generic.exception.ConversionException;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.order.model.Order;
+import com.salesmanager.core.business.order.model.orderproduct.OrderProduct;
+import com.salesmanager.core.business.order.model.orderstatus.OrderStatus;
+import com.salesmanager.core.business.order.model.orderstatus.OrderStatusHistory;
+import com.salesmanager.core.business.order.model.payment.CreditCard;
+import com.salesmanager.core.business.reference.country.model.Country;
+import com.salesmanager.core.business.reference.country.service.CountryService;
+import com.salesmanager.core.business.reference.currency.model.Currency;
+import com.salesmanager.core.business.reference.currency.service.CurrencyService;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.business.reference.zone.model.Zone;
+import com.salesmanager.core.business.reference.zone.service.ZoneService;
+import com.salesmanager.core.utils.AbstractDataPopulator;
+import com.salesmanager.core.utils.CreditCardUtils;
+import com.salesmanager.web.entity.customer.PersistableCustomer;
+import com.salesmanager.web.entity.order.OrderTotal;
+import com.salesmanager.web.entity.order.PersistableOrder;
+import com.salesmanager.web.entity.order.PersistableOrderProduct;
+import com.salesmanager.web.utils.LocaleUtils;
+
+public class PersistableOrderPopulator extends
+ AbstractDataPopulator<PersistableOrder, Order> {
+
+ private CustomerService customerService;
+ private CountryService countryService;
+ private CurrencyService currencyService;
+
+
+ private ZoneService zoneService;
+ private ProductService productService;
+ private DigitalProductService digitalProductService;
+ private ProductAttributeService productAttributeService;
+
+ @Override
+ public Order populate(PersistableOrder source, Order target,
+ MerchantStore store, Language language) throws ConversionException {
+
+
+ Validate.notNull(productService,"productService must be set");
+ Validate.notNull(digitalProductService,"digitalProductService must be set");
+ Validate.notNull(productAttributeService,"productAttributeService must be set");
+ Validate.notNull(customerService,"customerService must be set");
+ Validate.notNull(countryService,"countryService must be set");
+ Validate.notNull(zoneService,"zoneService must be set");
+ Validate.notNull(currencyService,"currencyService must be set");
+
+ try {
+
+
+ Map<String,Country> countriesMap = countryService.getCountriesMap(language);
+ Map<String,Zone> zonesMap = zoneService.getZones(language);
+ /** customer **/
+ PersistableCustomer customer = source.getCustomer();
+ if(customer!=null) {
+ if(customer.getId()!=null && customer.getId()>0) {
+ Customer modelCustomer = customerService.getById(customer.getId());
+ if(modelCustomer==null) {
+ throw new ConversionException("Customer id " + customer.getId() + " does not exists");
+ }
+ if(modelCustomer.getMerchantStore().getId().intValue()!=store.getId().intValue()) {
+ throw new ConversionException("Customer id " + customer.getId() + " does not exists for store " + store.getCode());
+ }
+ target.setCustomerId(modelCustomer.getId());
+ target.setBilling(modelCustomer.getBilling());
+ target.setDelivery(modelCustomer.getDelivery());
+ target.setCustomerEmailAddress(source.getCustomer().getEmailAddress());
+
+
+
+ }
+ }
+
+ target.setLocale(LocaleUtils.getLocale(store));
+
+ CreditCard creditCard = source.getCreditCard();
+ if(creditCard!=null) {
+ String maskedNumber = CreditCardUtils.maskCardNumber(creditCard.getCcNumber());
+ creditCard.setCcNumber(maskedNumber);
+ target.setCreditCard(creditCard);
+ }
+
+ Currency currency = null;
+ try {
+ currency = currencyService.getByCode(source.getCurrency());
+ } catch(Exception e) {
+ throw new ConversionException("Currency not found for code " + source.getCurrency());
+ }
+
+ if(currency==null) {
+ throw new ConversionException("Currency not found for code " + source.getCurrency());
+ }
+
+ target.setCurrency(currency);
+ target.setDatePurchased(source.getDatePurchased());
+ //target.setCurrency(store.getCurrency());
+ target.setCurrencyValue(new BigDecimal(0));
+ target.setMerchant(store);
+ target.setStatus(source.getOrderStatus());
+ target.setPaymentModuleCode(source.getPaymentModule());
+ target.setPaymentType(source.getPaymentType());
+ target.setShippingModuleCode(source.getShippingModule());
+ target.setCustomerAgreement(source.isCustomerAgreed());
+ target.setConfirmedAddress(source.isConfirmedAddress());
+ if(source.getPreviousOrderStatus()!=null) {
+ List<OrderStatus> orderStatusList = source.getPreviousOrderStatus();
+ for(OrderStatus status : orderStatusList) {
+ OrderStatusHistory statusHistory = new OrderStatusHistory();
+ statusHistory.setStatus(status);
+ statusHistory.setOrder(target);
+ target.getOrderHistory().add(statusHistory);
+ }
+ }
+
+ List<PersistableOrderProduct> products = source.getOrderProductItems();
+ if(CollectionUtils.isEmpty(products)) {
+ throw new ConversionException("Requires at least 1 PersistableOrderProduct");
+ }
+ PersistableOrderProductPopulator orderProductPopulator = new PersistableOrderProductPopulator();
+ orderProductPopulator.setProductAttributeService(productAttributeService);
+ orderProductPopulator.setProductService(productService);
+ orderProductPopulator.setDigitalProductService(digitalProductService);
+
+ for(PersistableOrderProduct orderProduct : products) {
+ OrderProduct modelOrderProduct = new OrderProduct();
+ orderProductPopulator.populate(orderProduct, modelOrderProduct, store, language);
+ target.getOrderProducts().add(modelOrderProduct);
+ }
+
+ List<OrderTotal> orderTotals = source.getTotals();
+ if(CollectionUtils.isNotEmpty(orderTotals)) {
+ for(OrderTotal total : orderTotals) {
+ com.salesmanager.core.business.order.model.OrderTotal totalModel = new com.salesmanager.core.business.order.model.OrderTotal();
+ totalModel.setModule(total.getModule());
+ totalModel.setOrder(target);
+ totalModel.setOrderTotalCode(total.getCode());
+ totalModel.setTitle(total.getTitle());
+ totalModel.setValue(total.getValue());
+ target.getOrderTotal().add(totalModel);
+ }
+ }
+
+ } catch (Exception e) {
+ throw new ConversionException(e);
+ }
+
+
+ return target;
+ }
+
+ @Override
+ protected Order createTarget() {
+ return null;
+ }
+
+ public void setProductService(ProductService productService) {
+ this.productService = productService;
+ }
+
+ public ProductService getProductService() {
+ return productService;
+ }
+
+ public void setDigitalProductService(DigitalProductService digitalProductService) {
+ this.digitalProductService = digitalProductService;
+ }
+
+ public DigitalProductService getDigitalProductService() {
+ return digitalProductService;
+ }
+
+ public void setProductAttributeService(ProductAttributeService productAttributeService) {
+ this.productAttributeService = productAttributeService;
+ }
+
+ public ProductAttributeService getProductAttributeService() {
+ return productAttributeService;
+ }
+
+ public CustomerService getCustomerService() {
+ return customerService;
+ }
+
+ public void setCustomerService(CustomerService customerService) {
+ this.customerService = customerService;
+ }
+
+ public CountryService getCountryService() {
+ return countryService;
+ }
+
+ public void setCountryService(CountryService countryService) {
+ this.countryService = countryService;
+ }
+
+ public CurrencyService getCurrencyService() {
+ return currencyService;
+ }
+
+ public void setCurrencyService(CurrencyService currencyService) {
+ this.currencyService = currencyService;
+ }
+
+ public ZoneService getZoneService() {
+ return zoneService;
+ }
+
+ public void setZoneService(ZoneService zoneService) {
+ this.zoneService = zoneService;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/populator/order/PersistableOrderProductPopulator.java b/sm-shop/src/main/java/com/salesmanager/shop/populator/order/PersistableOrderProductPopulator.java
new file mode 100644
index 0000000..48331c8
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/populator/order/PersistableOrderProductPopulator.java
@@ -0,0 +1,167 @@
+package com.salesmanager.web.populator.order;
+
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang.Validate;
+
+import com.salesmanager.core.business.catalog.product.model.Product;
+import com.salesmanager.core.business.catalog.product.model.file.DigitalProduct;
+import com.salesmanager.core.business.catalog.product.service.ProductService;
+import com.salesmanager.core.business.catalog.product.service.attribute.ProductAttributeService;
+import com.salesmanager.core.business.catalog.product.service.file.DigitalProductService;
+import com.salesmanager.core.business.generic.exception.ConversionException;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.order.model.orderproduct.OrderProduct;
+import com.salesmanager.core.business.order.model.orderproduct.OrderProductAttribute;
+import com.salesmanager.core.business.order.model.orderproduct.OrderProductDownload;
+import com.salesmanager.core.business.order.model.orderproduct.OrderProductPrice;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.utils.AbstractDataPopulator;
+import com.salesmanager.web.constants.ApplicationConstants;
+import com.salesmanager.web.entity.catalog.product.attribute.ProductAttribute;
+import com.salesmanager.web.entity.order.PersistableOrderProduct;
+
+public class PersistableOrderProductPopulator extends
+ AbstractDataPopulator<PersistableOrderProduct, OrderProduct> {
+
+ private ProductService productService;
+ private DigitalProductService digitalProductService;
+ private ProductAttributeService productAttributeService;
+
+
+ public ProductAttributeService getProductAttributeService() {
+ return productAttributeService;
+ }
+
+ public void setProductAttributeService(
+ ProductAttributeService productAttributeService) {
+ this.productAttributeService = productAttributeService;
+ }
+
+ public DigitalProductService getDigitalProductService() {
+ return digitalProductService;
+ }
+
+ public void setDigitalProductService(DigitalProductService digitalProductService) {
+ this.digitalProductService = digitalProductService;
+ }
+
+ /**
+ * Converts a ShoppingCartItem carried in the ShoppingCart to an OrderProduct
+ * that will be saved in the system
+ */
+ @Override
+ public OrderProduct populate(PersistableOrderProduct source, OrderProduct target,
+ MerchantStore store, Language language) throws ConversionException {
+
+ Validate.notNull(productService,"productService must be set");
+ Validate.notNull(digitalProductService,"digitalProductService must be set");
+ Validate.notNull(productAttributeService,"productAttributeService must be set");
+
+
+ try {
+ Product modelProduct = productService.getById(source.getProduct().getId());
+ if(modelProduct==null) {
+ throw new ConversionException("Cannot get product with id (productId) " + source.getProduct().getId());
+ }
+
+ if(modelProduct.getMerchantStore().getId().intValue()!=store.getId().intValue()) {
+ throw new ConversionException("Invalid product id " + source.getProduct().getId());
+ }
+
+ DigitalProduct digitalProduct = digitalProductService.getByProduct(store, modelProduct);
+
+ if(digitalProduct!=null) {
+ OrderProductDownload orderProductDownload = new OrderProductDownload();
+ orderProductDownload.setOrderProductFilename(digitalProduct.getProductFileName());
+ orderProductDownload.setOrderProduct(target);
+ orderProductDownload.setDownloadCount(0);
+ orderProductDownload.setMaxdays(ApplicationConstants.MAX_DOWNLOAD_DAYS);
+ target.getDownloads().add(orderProductDownload);
+ }
+
+ target.setOneTimeCharge(source.getPrice());
+ target.setProductName(source.getProduct().getDescription().getName());
+ target.setProductQuantity(source.getOrderedQuantity());
+ target.setSku(source.getProduct().getSku());
+
+ OrderProductPrice orderProductPrice = new OrderProductPrice();
+ orderProductPrice.setDefaultPrice(true);
+ orderProductPrice.setProductPrice(source.getPrice());
+ orderProductPrice.setOrderProduct(target);
+
+
+
+ Set<OrderProductPrice> prices = new HashSet<OrderProductPrice>();
+ prices.add(orderProductPrice);
+
+ /** DO NOT SUPPORT MUTIPLE PRICES **/
+/* //Other prices
+ List<FinalPrice> otherPrices = finalPrice.getAdditionalPrices();
+ if(otherPrices!=null) {
+ for(FinalPrice otherPrice : otherPrices) {
+ OrderProductPrice other = orderProductPrice(otherPrice);
+ other.setOrderProduct(target);
+ prices.add(other);
+ }
+ }*/
+
+ target.setPrices(prices);
+
+ //OrderProductAttribute
+ List<ProductAttribute> attributeItems = source.getAttributes();
+ if(!CollectionUtils.isEmpty(attributeItems)) {
+ Set<OrderProductAttribute> attributes = new HashSet<OrderProductAttribute>();
+ for(ProductAttribute attribute : attributeItems) {
+ OrderProductAttribute orderProductAttribute = new OrderProductAttribute();
+ orderProductAttribute.setOrderProduct(target);
+ Long id = attribute.getId();
+ com.salesmanager.core.business.catalog.product.model.attribute.ProductAttribute attr = productAttributeService.getById(id);
+ if(attr==null) {
+ throw new ConversionException("Attribute id " + id + " does not exists");
+ }
+
+ if(attr.getProduct().getMerchantStore().getId().intValue()!=store.getId().intValue()) {
+ throw new ConversionException("Attribute id " + id + " invalid for this store");
+ }
+
+ orderProductAttribute.setProductAttributeIsFree(attr.getProductAttributeIsFree());
+ orderProductAttribute.setProductAttributeName(attr.getProductOption().getDescriptionsSettoList().get(0).getName());
+ orderProductAttribute.setProductAttributeValueName(attr.getProductOptionValue().getDescriptionsSettoList().get(0).getName());
+ orderProductAttribute.setProductAttributePrice(attr.getProductAttributePrice());
+ orderProductAttribute.setProductAttributeWeight(attr.getProductAttributeWeight());
+ orderProductAttribute.setProductOptionId(attr.getProductOption().getId());
+ orderProductAttribute.setProductOptionValueId(attr.getProductOptionValue().getId());
+ attributes.add(orderProductAttribute);
+ }
+ target.setOrderAttributes(attributes);
+ }
+
+
+ } catch (Exception e) {
+ throw new ConversionException(e);
+ }
+
+
+ return target;
+ }
+
+ @Override
+ protected OrderProduct createTarget() {
+ return null;
+ }
+
+ public void setProductService(ProductService productService) {
+ this.productService = productService;
+ }
+
+ public ProductService getProductService() {
+ return productService;
+ }
+
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/populator/order/ReadableOrderPopulator.java b/sm-shop/src/main/java/com/salesmanager/shop/populator/order/ReadableOrderPopulator.java
new file mode 100644
index 0000000..83b4d1d
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/populator/order/ReadableOrderPopulator.java
@@ -0,0 +1,159 @@
+package com.salesmanager.web.populator.order;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+
+import com.salesmanager.core.business.generic.exception.ConversionException;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.order.model.Order;
+import com.salesmanager.core.business.order.model.OrderTotal;
+import com.salesmanager.core.business.order.model.OrderTotalType;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.utils.AbstractDataPopulator;
+import com.salesmanager.web.entity.customer.Address;
+import com.salesmanager.web.entity.customer.ReadableDelivery;
+import com.salesmanager.web.entity.order.ReadableOrder;
+
+public class ReadableOrderPopulator extends
+ AbstractDataPopulator<Order, ReadableOrder> {
+
+ @Override
+ public ReadableOrder populate(Order source, ReadableOrder target,
+ MerchantStore store, Language language) throws ConversionException {
+
+
+
+ target.setId(source.getId());
+ target.setDatePurchased(source.getDatePurchased());
+ target.setOrderStatus(source.getStatus());
+ target.setCurrency(source.getCurrency().getCode());
+ target.setCurrencyModel(source.getCurrency());
+ if(source.getCustomerAgreement()!=null) {
+ target.setCustomerAgreed(source.getCustomerAgreement());
+ }
+ if(source.getConfirmedAddress()!=null) {
+ target.setConfirmedAddress(source.getConfirmedAddress());
+ }
+
+ com.salesmanager.web.entity.order.OrderTotal taxTotal = null;
+ com.salesmanager.web.entity.order.OrderTotal shippingTotal = null;
+
+
+ if(source.getBilling()!=null) {
+ Address address = new Address();
+ address.setCity(source.getBilling().getCity());
+ address.setAddress(source.getBilling().getAddress());
+ address.setCompany(source.getBilling().getCompany());
+ address.setFirstName(source.getBilling().getFirstName());
+ address.setLastName(source.getBilling().getLastName());
+ address.setPostalCode(source.getBilling().getPostalCode());
+ address.setPhone(source.getBilling().getTelephone());
+ if(source.getBilling().getCountry()!=null) {
+ address.setCountry(source.getBilling().getCountry().getIsoCode());
+ }
+ if(source.getBilling().getZone()!=null) {
+ address.setZone(source.getBilling().getZone().getCode());
+ }
+
+ target.setBilling(address);
+ }
+
+ if(source.getDelivery()!=null) {
+ ReadableDelivery address = new ReadableDelivery();
+ address.setCity(source.getDelivery().getCity());
+ address.setAddress(source.getDelivery().getAddress())
+; address.setCompany(source.getDelivery().getCompany());
+ address.setFirstName(source.getDelivery().getFirstName());
+ address.setLastName(source.getDelivery().getLastName());
+ address.setPostalCode(source.getDelivery().getPostalCode());
+ address.setPhone(source.getDelivery().getTelephone());
+ if(source.getDelivery().getCountry()!=null) {
+ address.setCountry(source.getDelivery().getCountry().getIsoCode());
+ }
+ if(source.getDelivery().getZone()!=null) {
+ address.setZone(source.getDelivery().getZone().getCode());
+ }
+
+ target.setDelivery(address);
+ }
+
+ List<com.salesmanager.web.entity.order.OrderTotal> totals = new ArrayList<com.salesmanager.web.entity.order.OrderTotal>();
+ for(OrderTotal t : source.getOrderTotal()) {
+ if(t.getOrderTotalType()==null) {
+ continue;
+ }
+ if(t.getOrderTotalType().name().equals(OrderTotalType.TOTAL.name())) {
+ com.salesmanager.web.entity.order.OrderTotal totalTotal = createTotal(t);
+ target.setTotal(totalTotal);
+ totals.add(totalTotal);
+ }
+ else if(t.getOrderTotalType().name().equals(OrderTotalType.TAX.name())) {
+ com.salesmanager.web.entity.order.OrderTotal totalTotal = createTotal(t);
+ if(taxTotal==null) {
+ taxTotal = totalTotal;
+ } else {
+ BigDecimal v = taxTotal.getValue();
+ v = v.add(totalTotal.getValue());
+ taxTotal.setValue(v);
+ }
+ target.setTax(totalTotal);
+ totals.add(totalTotal);
+ }
+ else if(t.getOrderTotalType().name().equals(OrderTotalType.SHIPPING.name())) {
+ com.salesmanager.web.entity.order.OrderTotal totalTotal = createTotal(t);
+ if(shippingTotal==null) {
+ shippingTotal = totalTotal;
+ } else {
+ BigDecimal v = shippingTotal.getValue();
+ v = v.add(totalTotal.getValue());
+ shippingTotal.setValue(v);
+ }
+ target.setShipping(totalTotal);
+ totals.add(totalTotal);
+ }
+ else if(t.getOrderTotalType().name().equals(OrderTotalType.HANDLING.name())) {
+ com.salesmanager.web.entity.order.OrderTotal totalTotal = createTotal(t);
+ if(shippingTotal==null) {
+ shippingTotal = totalTotal;
+ } else {
+ BigDecimal v = shippingTotal.getValue();
+ v = v.add(totalTotal.getValue());
+ shippingTotal.setValue(v);
+ }
+ target.setShipping(totalTotal);
+ totals.add(totalTotal);
+ }
+ else if(t.getOrderTotalType().name().equals(OrderTotalType.SUBTOTAL.name())) {
+ com.salesmanager.web.entity.order.OrderTotal subTotal = createTotal(t);
+ totals.add(subTotal);
+
+ }
+ else {
+ com.salesmanager.web.entity.order.OrderTotal otherTotal = createTotal(t);
+ totals.add(otherTotal);
+ }
+ }
+
+ target.setTotals(totals);
+
+ return target;
+ }
+
+ private com.salesmanager.web.entity.order.OrderTotal createTotal(OrderTotal t) {
+ com.salesmanager.web.entity.order.OrderTotal totalTotal = new com.salesmanager.web.entity.order.OrderTotal();
+ totalTotal.setCode(t.getOrderTotalCode());
+ totalTotal.setId(t.getId());
+ totalTotal.setModule(t.getModule());
+ totalTotal.setOrder(t.getSortOrder());
+ totalTotal.setValue(t.getValue());
+ return totalTotal;
+ }
+
+ @Override
+ protected ReadableOrder createTarget() {
+
+ return null;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/populator/order/ReadableOrderProductDownloadPopulator.java b/sm-shop/src/main/java/com/salesmanager/shop/populator/order/ReadableOrderProductDownloadPopulator.java
new file mode 100644
index 0000000..8a8d0e2
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/populator/order/ReadableOrderProductDownloadPopulator.java
@@ -0,0 +1,39 @@
+package com.salesmanager.web.populator.order;
+
+import com.salesmanager.core.business.generic.exception.ConversionException;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.order.model.orderproduct.OrderProductDownload;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.utils.AbstractDataPopulator;
+import com.salesmanager.web.entity.order.ReadableOrderProductDownload;
+
+public class ReadableOrderProductDownloadPopulator extends
+ AbstractDataPopulator<OrderProductDownload, ReadableOrderProductDownload> {
+
+ @Override
+ public ReadableOrderProductDownload populate(OrderProductDownload source,
+ ReadableOrderProductDownload target, MerchantStore store,
+ Language language) throws ConversionException {
+ try {
+
+ target.setProductName(source.getOrderProduct().getProductName());
+ target.setDownloadCount(source.getDownloadCount());
+ target.setDownloadExpiryDays(source.getMaxdays());
+ target.setId(source.getId());
+ target.setFileName(source.getOrderProductFilename());
+ target.setOrderId(source.getOrderProduct().getOrder().getId());
+
+ return target;
+
+ } catch(Exception e) {
+ throw new ConversionException(e);
+ }
+ }
+
+ @Override
+ protected ReadableOrderProductDownload createTarget() {
+ return new ReadableOrderProductDownload();
+ }
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/populator/order/ReadableOrderProductPopulator.java b/sm-shop/src/main/java/com/salesmanager/shop/populator/order/ReadableOrderProductPopulator.java
new file mode 100644
index 0000000..c0d353c
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/populator/order/ReadableOrderProductPopulator.java
@@ -0,0 +1,151 @@
+package com.salesmanager.web.populator.order;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Set;
+
+import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.Validate;
+
+import com.salesmanager.core.business.catalog.product.model.Product;
+import com.salesmanager.core.business.catalog.product.model.image.ProductImage;
+import com.salesmanager.core.business.catalog.product.service.PricingService;
+import com.salesmanager.core.business.catalog.product.service.ProductService;
+import com.salesmanager.core.business.generic.exception.ConversionException;
+import com.salesmanager.core.business.generic.exception.ServiceException;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.order.model.orderproduct.OrderProduct;
+import com.salesmanager.core.business.order.model.orderproduct.OrderProductAttribute;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.utils.AbstractDataPopulator;
+import com.salesmanager.web.entity.catalog.product.ReadableProduct;
+import com.salesmanager.web.entity.order.ReadableOrderProduct;
+import com.salesmanager.web.entity.order.ReadableOrderProductAttribute;
+import com.salesmanager.web.populator.catalog.ReadableProductPopulator;
+import com.salesmanager.web.utils.ImageFilePath;
+
+public class ReadableOrderProductPopulator extends
+ AbstractDataPopulator<OrderProduct, ReadableOrderProduct> {
+
+ private ProductService productService;
+ private PricingService pricingService;
+ private ImageFilePath imageUtils;
+
+
+
+ public ImageFilePath getimageUtils() {
+ return imageUtils;
+ }
+
+ public void setimageUtils(ImageFilePath imageUtils) {
+ this.imageUtils = imageUtils;
+ }
+
+ @Override
+ public ReadableOrderProduct populate(OrderProduct source,
+ ReadableOrderProduct target, MerchantStore store, Language language)
+ throws ConversionException {
+
+ Validate.notNull(productService,"Requires ProductService");
+ Validate.notNull(pricingService,"Requires PricingService");
+ Validate.notNull(imageUtils,"Requires imageUtils");
+ target.setId(source.getId());
+ target.setOrderedQuantity(source.getProductQuantity());
+ try {
+ target.setPrice(pricingService.getDisplayAmount(source.getOneTimeCharge(), store));
+ } catch(Exception e) {
+ throw new ConversionException("Cannot convert price",e);
+ }
+ target.setProductName(source.getProductName());
+ target.setSku(source.getSku());
+
+ //subtotal = price * quantity
+ BigDecimal subTotal = source.getOneTimeCharge();
+ subTotal = subTotal.multiply(new BigDecimal(source.getProductQuantity()));
+
+ try {
+ String subTotalPrice = pricingService.getDisplayAmount(subTotal, store);
+ target.setSubTotal(subTotalPrice);
+ } catch(Exception e) {
+ throw new ConversionException("Cannot format price",e);
+ }
+
+ if(source.getOrderAttributes()!=null) {
+ List<ReadableOrderProductAttribute> attributes = new ArrayList<ReadableOrderProductAttribute>();
+ for(OrderProductAttribute attr : source.getOrderAttributes()) {
+ ReadableOrderProductAttribute readableAttribute = new ReadableOrderProductAttribute();
+ try {
+ String price = pricingService.getDisplayAmount(attr.getProductAttributePrice(), store);
+ readableAttribute.setAttributePrice(price);
+ } catch (ServiceException e) {
+ throw new ConversionException("Cannot format price",e);
+ }
+
+ readableAttribute.setAttributeName(attr.getProductAttributeName());
+ readableAttribute.setAttributeValue(attr.getProductAttributeValueName());
+ attributes.add(readableAttribute);
+ }
+ target.setAttributes(attributes);
+ }
+
+
+ String productSku = source.getSku();
+ if(!StringUtils.isBlank(productSku)) {
+ Product product = productService.getByCode(productSku, language);
+ if(product!=null) {
+
+
+
+ ReadableProductPopulator populator = new ReadableProductPopulator();
+ populator.setPricingService(pricingService);
+ populator.setimageUtils(imageUtils);
+
+ ReadableProduct productProxy = populator.populate(product, new ReadableProduct(), store, language);
+ target.setProduct(productProxy);
+
+ Set<ProductImage> images = product.getImages();
+ ProductImage defaultImage = null;
+ if(images!=null) {
+ for(ProductImage image : images) {
+ if(defaultImage==null) {
+ defaultImage = image;
+ }
+ if(image.isDefaultImage()) {
+ defaultImage = image;
+ }
+ }
+ }
+ if(defaultImage!=null) {
+ target.setImage(defaultImage.getProductImage());
+ }
+ }
+ }
+
+
+ return target;
+ }
+
+ @Override
+ protected ReadableOrderProduct createTarget() {
+
+ return null;
+ }
+
+ public ProductService getProductService() {
+ return productService;
+ }
+
+ public void setProductService(ProductService productService) {
+ this.productService = productService;
+ }
+
+ public PricingService getPricingService() {
+ return pricingService;
+ }
+
+ public void setPricingService(PricingService pricingService) {
+ this.pricingService = pricingService;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/populator/order/ReadableOrderTotalPopulator.java b/sm-shop/src/main/java/com/salesmanager/shop/populator/order/ReadableOrderTotalPopulator.java
new file mode 100644
index 0000000..eabf946
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/populator/order/ReadableOrderTotalPopulator.java
@@ -0,0 +1,78 @@
+package com.salesmanager.web.populator.order;
+
+import java.util.Locale;
+
+import org.apache.commons.lang.Validate;
+
+import com.salesmanager.core.business.catalog.product.service.PricingService;
+import com.salesmanager.core.business.generic.exception.ConversionException;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.order.model.OrderTotal;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.utils.AbstractDataPopulator;
+import com.salesmanager.web.entity.order.ReadableOrderTotal;
+import com.salesmanager.web.utils.LabelUtils;
+import com.salesmanager.web.utils.LocaleUtils;
+
+public class ReadableOrderTotalPopulator extends
+ AbstractDataPopulator<OrderTotal, ReadableOrderTotal> {
+
+
+ private PricingService pricingService;
+
+
+ private LabelUtils messages;
+
+
+
+
+ @Override
+ public ReadableOrderTotal populate(OrderTotal source,
+ ReadableOrderTotal target, MerchantStore store, Language language)
+ throws ConversionException {
+
+ Validate.notNull(pricingService,"PricingService must be set");
+ Validate.notNull(messages,"LabelUtils must be set");
+
+ Locale locale = LocaleUtils.getLocale(language);
+
+ try {
+
+ target.setCode(source.getOrderTotalCode());
+ target.setId(source.getId());
+ target.setModule(source.getModule());
+ target.setOrder(source.getSortOrder());
+ target.setTitle(messages.getMessage(source.getOrderTotalCode(), locale, source.getOrderTotalCode()));
+ target.setValue(source.getValue());
+ target.setTotal(pricingService.getDisplayAmount(source.getValue(), store));
+
+ } catch(Exception e) {
+ throw new ConversionException(e);
+ }
+
+ return target;
+
+ }
+
+ @Override
+ protected ReadableOrderTotal createTarget() {
+ return new ReadableOrderTotal();
+ }
+
+ public PricingService getPricingService() {
+ return pricingService;
+ }
+
+ public void setPricingService(PricingService pricingService) {
+ this.pricingService = pricingService;
+ }
+
+ public LabelUtils getMessages() {
+ return messages;
+ }
+
+ public void setMessages(LabelUtils messages) {
+ this.messages = messages;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/populator/order/ReadableShippingSummaryPopulator.java b/sm-shop/src/main/java/com/salesmanager/shop/populator/order/ReadableShippingSummaryPopulator.java
new file mode 100644
index 0000000..9d61443
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/populator/order/ReadableShippingSummaryPopulator.java
@@ -0,0 +1,80 @@
+package com.salesmanager.web.populator.order;
+
+import org.apache.commons.lang.Validate;
+
+import com.salesmanager.core.business.catalog.product.service.PricingService;
+import com.salesmanager.core.business.generic.exception.ConversionException;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.business.shipping.model.ShippingSummary;
+import com.salesmanager.core.utils.AbstractDataPopulator;
+import com.salesmanager.web.entity.customer.ReadableDelivery;
+import com.salesmanager.web.entity.order.ReadableShippingSummary;
+
+public class ReadableShippingSummaryPopulator extends
+ AbstractDataPopulator<ShippingSummary, ReadableShippingSummary> {
+
+ private PricingService pricingService;
+
+ @Override
+ public ReadableShippingSummary populate(ShippingSummary source,
+ ReadableShippingSummary target, MerchantStore store,
+ Language language) throws ConversionException {
+
+ Validate.notNull(pricingService,"PricingService must be set");
+
+ try {
+
+ target.setFreeShipping(source.isFreeShipping());
+ target.setHandling(source.getHandling());
+ target.setShipping(source.getShipping());
+ target.setShippingModule(source.getShippingModule());
+ target.setShippingOption(source.getShippingOption());
+ target.setTaxOnShipping(source.isTaxOnShipping());
+ target.setHandlingText(pricingService.getDisplayAmount(source.getHandling(), store));
+ target.setShippingText(pricingService.getDisplayAmount(source.getShipping(), store));
+
+ if(source.getDeliveryAddress()!=null) {
+
+ ReadableDelivery deliveryAddress = new ReadableDelivery();
+ deliveryAddress.setAddress(source.getDeliveryAddress().getAddress());
+ deliveryAddress.setPostalCode(source.getDeliveryAddress().getPostalCode());
+ deliveryAddress.setCity(source.getDeliveryAddress().getCity());
+ if(source.getDeliveryAddress().getZone()!=null) {
+ deliveryAddress.setZone(source.getDeliveryAddress().getZone().getCode());
+ }
+ if(source.getDeliveryAddress().getCountry()!=null) {
+ deliveryAddress.setCountry(source.getDeliveryAddress().getCountry().getIsoCode());
+ }
+ deliveryAddress.setLatitude(source.getDeliveryAddress().getLatitude());
+ deliveryAddress.setLongitude(source.getDeliveryAddress().getLongitude());
+ deliveryAddress.setStateProvince(source.getDeliveryAddress().getState());
+
+ target.setDelivery(deliveryAddress);
+ }
+
+
+ } catch(Exception e) {
+ throw new ConversionException(e);
+ }
+
+ return target;
+
+
+ }
+
+ @Override
+ protected ReadableShippingSummary createTarget() {
+ return new
+ ReadableShippingSummary();
+ }
+
+ public PricingService getPricingService() {
+ return pricingService;
+ }
+
+ public void setPricingService(PricingService pricingService) {
+ this.pricingService = pricingService;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/populator/order/ReadableShopOrderPopulator.java b/sm-shop/src/main/java/com/salesmanager/shop/populator/order/ReadableShopOrderPopulator.java
new file mode 100644
index 0000000..b499c77
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/populator/order/ReadableShopOrderPopulator.java
@@ -0,0 +1,117 @@
+package com.salesmanager.web.populator.order;
+
+import com.salesmanager.core.business.generic.exception.ConversionException;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.utils.AbstractDataPopulator;
+import com.salesmanager.web.entity.customer.Address;
+import com.salesmanager.web.entity.customer.PersistableCustomer;
+import com.salesmanager.web.entity.customer.ReadableCustomer;
+import com.salesmanager.web.entity.order.ReadableShopOrder;
+import com.salesmanager.web.entity.order.ShopOrder;
+
+public class ReadableShopOrderPopulator extends
+ AbstractDataPopulator<ShopOrder, ReadableShopOrder> {
+
+ @Override
+ public ReadableShopOrder populate(ShopOrder source,
+ ReadableShopOrder target, MerchantStore store, Language language)
+ throws ConversionException {
+
+ //not that much is required
+
+
+ //customer
+
+ try {
+
+ ReadableCustomer customer = new ReadableCustomer();
+ PersistableCustomer persistableCustomer = source.getCustomer();
+
+
+ customer.setEmailAddress(persistableCustomer.getEmailAddress());
+ if(persistableCustomer.getBilling()!=null) {
+ Address address = new Address();
+ address.setCity(persistableCustomer.getBilling().getCity());
+ address.setCompany(persistableCustomer.getBilling().getCompany());
+ address.setFirstName(persistableCustomer.getBilling().getFirstName());
+ address.setLastName(persistableCustomer.getBilling().getLastName());
+ address.setPostalCode(persistableCustomer.getBilling().getPostalCode());
+ address.setPhone(persistableCustomer.getBilling().getPhone());
+ if(persistableCustomer.getBilling().getCountry()!=null) {
+ address.setCountry(persistableCustomer.getBilling().getCountry());
+ }
+ if(persistableCustomer.getBilling().getZone()!=null) {
+ address.setZone(persistableCustomer.getBilling().getZone());
+ }
+
+ customer.setBilling(address);
+ }
+
+ if(persistableCustomer.getDelivery()!=null) {
+ Address address = new Address();
+ address.setCity(persistableCustomer.getDelivery().getCity());
+ address.setCompany(persistableCustomer.getDelivery().getCompany());
+ address.setFirstName(persistableCustomer.getDelivery().getFirstName());
+ address.setLastName(persistableCustomer.getDelivery().getLastName());
+ address.setPostalCode(persistableCustomer.getDelivery().getPostalCode());
+ address.setPhone(persistableCustomer.getDelivery().getPhone());
+ if(persistableCustomer.getDelivery().getCountry()!=null) {
+ address.setCountry(persistableCustomer.getDelivery().getCountry());
+ }
+ if(persistableCustomer.getDelivery().getZone()!=null) {
+ address.setZone(persistableCustomer.getDelivery().getZone());
+ }
+
+ customer.setDelivery(address);
+ }
+
+ //TODO if ship to billing enabled, set delivery = billing
+
+
+/* if(persistableCustomer.getAttributes()!=null) {
+ for(PersistableCustomerAttribute attribute : persistableCustomer.getAttributes()) {
+ ReadableCustomerAttribute readableAttribute = new ReadableCustomerAttribute();
+ readableAttribute.setId(attribute.getId());
+ ReadableCustomerOption option = new ReadableCustomerOption();
+ option.setId(attribute.getCustomerOption().getId());
+ option.setCode(attribute.getCustomerOption());
+
+ CustomerOptionDescription d = new CustomerOptionDescription();
+ d.setDescription(attribute.getCustomerOption().getDescriptionsSettoList().get(0).getDescription());
+ d.setName(attribute.getCustomerOption().getDescriptionsSettoList().get(0).getName());
+ option.setDescription(d);
+
+ readableAttribute.setCustomerOption(option);
+
+ ReadableCustomerOptionValue optionValue = new ReadableCustomerOptionValue();
+ optionValue.setId(attribute.getCustomerOptionValue().getId());
+ CustomerOptionValueDescription vd = new CustomerOptionValueDescription();
+ vd.setDescription(attribute.getCustomerOptionValue().getDescriptionsSettoList().get(0).getDescription());
+ vd.setName(attribute.getCustomerOptionValue().getDescriptionsSettoList().get(0).getName());
+ optionValue.setCode(attribute.getCustomerOptionValue().getCode());
+ optionValue.setDescription(vd);
+
+
+ readableAttribute.setCustomerOptionValue(optionValue);
+ customer.getAttributes().add(readableAttribute);
+ }
+ }*/
+
+ target.setCustomer(customer);
+
+ } catch (Exception e) {
+ throw new ConversionException(e);
+ }
+
+
+
+ return target;
+ }
+
+ @Override
+ protected ReadableShopOrder createTarget() {
+ return null;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/populator/order/ShoppingCartItemPopulator.java b/sm-shop/src/main/java/com/salesmanager/shop/populator/order/ShoppingCartItemPopulator.java
new file mode 100644
index 0000000..578bb85
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/populator/order/ShoppingCartItemPopulator.java
@@ -0,0 +1,87 @@
+package com.salesmanager.web.populator.order;
+
+import org.apache.commons.lang3.Validate;
+
+import com.salesmanager.core.business.catalog.product.model.Product;
+import com.salesmanager.core.business.catalog.product.model.attribute.ProductAttribute;
+import com.salesmanager.core.business.catalog.product.service.ProductService;
+import com.salesmanager.core.business.catalog.product.service.attribute.ProductAttributeService;
+import com.salesmanager.core.business.generic.exception.ConversionException;
+import com.salesmanager.core.business.generic.exception.ServiceException;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.business.shoppingcart.model.ShoppingCartItem;
+import com.salesmanager.core.business.shoppingcart.service.ShoppingCartService;
+import com.salesmanager.core.utils.AbstractDataPopulator;
+import com.salesmanager.web.entity.order.PersistableOrderProduct;
+
+public class ShoppingCartItemPopulator extends
+ AbstractDataPopulator<PersistableOrderProduct, ShoppingCartItem> {
+
+
+ private ProductService productService;
+ private ProductAttributeService productAttributeService;
+ private ShoppingCartService shoppingCartService;
+
+ @Override
+ public ShoppingCartItem populate(PersistableOrderProduct source,
+ ShoppingCartItem target, MerchantStore store, Language language)
+ throws ConversionException {
+ Validate.notNull(productService, "Requires to set productService");
+ Validate.notNull(productAttributeService, "Requires to set productAttributeService");
+ Validate.notNull(shoppingCartService, "Requires to set shoppingCartService");
+
+ Product product = productService.getById(source.getProduct().getId());
+ if(source.getAttributes()!=null) {
+
+ for(com.salesmanager.web.entity.catalog.product.attribute.ProductAttribute attr : source.getAttributes()) {
+ ProductAttribute attribute = productAttributeService.getById(attr.getId());
+ if(attribute==null) {
+ throw new ConversionException("ProductAttribute with id " + attr.getId() + " is null");
+ }
+ if(attribute.getProduct().getId().longValue()!=source.getProduct().getId().longValue()) {
+ throw new ConversionException("ProductAttribute with id " + attr.getId() + " is not assigned to Product id " + source.getProduct().getId());
+ }
+ product.getAttributes().add(attribute);
+ }
+ }
+
+ try {
+ return shoppingCartService.populateShoppingCartItem(product);
+ } catch (ServiceException e) {
+ throw new ConversionException(e);
+ }
+
+ }
+
+ @Override
+ protected ShoppingCartItem createTarget() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public void setProductAttributeService(ProductAttributeService productAttributeService) {
+ this.productAttributeService = productAttributeService;
+ }
+
+ public ProductAttributeService getProductAttributeService() {
+ return productAttributeService;
+ }
+
+ public void setProductService(ProductService productService) {
+ this.productService = productService;
+ }
+
+ public ProductService getProductService() {
+ return productService;
+ }
+
+ public void setShoppingCartService(ShoppingCartService shoppingCartService) {
+ this.shoppingCartService = shoppingCartService;
+ }
+
+ public ShoppingCartService getShoppingCartService() {
+ return shoppingCartService;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/populator/shoppingCart/ShoppingCartDataPopulator.java b/sm-shop/src/main/java/com/salesmanager/shop/populator/shoppingCart/ShoppingCartDataPopulator.java
new file mode 100644
index 0000000..148841c
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/populator/shoppingCart/ShoppingCartDataPopulator.java
@@ -0,0 +1,199 @@
+/**
+ *
+ */
+package com.salesmanager.web.populator.shoppingCart;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Set;
+
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.configuration.ConversionException;
+import org.apache.commons.lang.Validate;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.salesmanager.core.business.catalog.product.model.attribute.ProductOptionDescription;
+import com.salesmanager.core.business.catalog.product.model.attribute.ProductOptionValueDescription;
+import com.salesmanager.core.business.catalog.product.model.image.ProductImage;
+import com.salesmanager.core.business.catalog.product.service.PricingService;
+import com.salesmanager.core.business.generic.exception.ServiceException;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.order.model.OrderSummary;
+import com.salesmanager.core.business.order.model.OrderTotalSummary;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.business.shoppingcart.model.ShoppingCart;
+import com.salesmanager.core.business.shoppingcart.service.ShoppingCartCalculationService;
+import com.salesmanager.core.utils.AbstractDataPopulator;
+import com.salesmanager.web.entity.order.OrderTotal;
+import com.salesmanager.web.entity.shoppingcart.ShoppingCartAttribute;
+import com.salesmanager.web.entity.shoppingcart.ShoppingCartData;
+import com.salesmanager.web.entity.shoppingcart.ShoppingCartItem;
+import com.salesmanager.web.utils.ImageFilePath;
+
+
+/**
+ * @author Umesh A
+ *
+ */
+
+
+public class ShoppingCartDataPopulator extends AbstractDataPopulator<ShoppingCart,ShoppingCartData>
+{
+
+ private static final Logger LOG = LoggerFactory.getLogger(ShoppingCartDataPopulator.class);
+
+ private PricingService pricingService;
+
+ private ShoppingCartCalculationService shoppingCartCalculationService;
+
+ private ImageFilePath imageUtils;
+
+ public ImageFilePath getimageUtils() {
+ return imageUtils;
+ }
+
+
+
+
+ public void setimageUtils(ImageFilePath imageUtils) {
+ this.imageUtils = imageUtils;
+ }
+
+
+
+ @Override
+ public ShoppingCartData createTarget()
+ {
+
+ return new ShoppingCartData();
+ }
+
+
+
+ public ShoppingCartCalculationService getOrderService() {
+ return shoppingCartCalculationService;
+ }
+
+
+
+ public PricingService getPricingService() {
+ return pricingService;
+ }
+
+
+ @Override
+ public ShoppingCartData populate(final ShoppingCart shoppingCart,
+ final ShoppingCartData cart, final MerchantStore store, final Language language) {
+
+ //Validate.notNull(imageUtils, "Requires to set imageUtils");
+ int cartQuantity = 0;
+ cart.setCode(shoppingCart.getShoppingCartCode());
+ Set<com.salesmanager.core.business.shoppingcart.model.ShoppingCartItem> items = shoppingCart.getLineItems();
+ List<ShoppingCartItem> shoppingCartItemsList=Collections.emptyList();
+ try{
+ if(items!=null) {
+ shoppingCartItemsList=new ArrayList<ShoppingCartItem>();
+ for(com.salesmanager.core.business.shoppingcart.model.ShoppingCartItem item : items) {
+
+ ShoppingCartItem shoppingCartItem = new ShoppingCartItem();
+ shoppingCartItem.setCode(cart.getCode());
+ shoppingCartItem.setProductCode(item.getProduct().getSku());
+ shoppingCartItem.setProductVirtual(item.isProductVirtual());
+
+ shoppingCartItem.setProductId(item.getProductId());
+ shoppingCartItem.setId(item.getId());
+ shoppingCartItem.setName(item.getProduct().getProductDescription().getName());
+
+ shoppingCartItem.setPrice(pricingService.getDisplayAmount(item.getItemPrice(),store));
+ shoppingCartItem.setQuantity(item.getQuantity());
+
+
+ cartQuantity = cartQuantity + item.getQuantity();
+
+ shoppingCartItem.setProductPrice(item.getItemPrice());
+ shoppingCartItem.setSubTotal(pricingService.getDisplayAmount(item.getSubTotal(), store));
+ ProductImage image = item.getProduct().getProductImage();
+ if(image!=null && imageUtils!=null) {
+ String imagePath = imageUtils.buildProductimageUtils(store, item.getProduct().getSku(), image.getProductImage());
+ shoppingCartItem.setImage(imagePath);
+ }
+ Set<com.salesmanager.core.business.shoppingcart.model.ShoppingCartAttributeItem> attributes = item.getAttributes();
+ if(attributes!=null) {
+ List<ShoppingCartAttribute> cartAttributes = new ArrayList<ShoppingCartAttribute>();
+ for(com.salesmanager.core.business.shoppingcart.model.ShoppingCartAttributeItem attribute : attributes) {
+ ShoppingCartAttribute cartAttribute = new ShoppingCartAttribute();
+ cartAttribute.setId(attribute.getId());
+ cartAttribute.setAttributeId(attribute.getProductAttributeId());
+ cartAttribute.setOptionId(attribute.getProductAttribute().getProductOption().getId());
+ cartAttribute.setOptionValueId(attribute.getProductAttribute().getProductOptionValue().getId());
+ List<ProductOptionDescription> optionDescriptions = attribute.getProductAttribute().getProductOption().getDescriptionsSettoList();
+ List<ProductOptionValueDescription> optionValueDescriptions = attribute.getProductAttribute().getProductOptionValue().getDescriptionsSettoList();
+ if(!CollectionUtils.isEmpty(optionDescriptions) && !CollectionUtils.isEmpty(optionValueDescriptions)) {
+ cartAttribute.setOptionName(optionDescriptions.get(0).getName());
+ cartAttribute.setOptionValue(optionValueDescriptions.get(0).getName());
+ cartAttributes.add(cartAttribute);
+ }
+ }
+ shoppingCartItem.setShoppingCartAttributes(cartAttributes);
+ }
+ shoppingCartItemsList.add(shoppingCartItem);
+ }
+ }
+ if(CollectionUtils.isNotEmpty(shoppingCartItemsList)){
+ cart.setShoppingCartItems(shoppingCartItemsList);
+ }
+
+ OrderSummary summary = new OrderSummary();
+ List<com.salesmanager.core.business.shoppingcart.model.ShoppingCartItem> productsList = new ArrayList<com.salesmanager.core.business.shoppingcart.model.ShoppingCartItem>();
+ productsList.addAll(shoppingCart.getLineItems());
+ summary.setProducts(productsList);
+ OrderTotalSummary orderSummary = shoppingCartCalculationService.calculate(shoppingCart,store, language );
+
+ if(CollectionUtils.isNotEmpty(orderSummary.getTotals())) {
+ List<OrderTotal> totals = new ArrayList<OrderTotal>();
+ for(com.salesmanager.core.business.order.model.OrderTotal t : orderSummary.getTotals()) {
+ OrderTotal total = new OrderTotal();
+ total.setCode(t.getOrderTotalCode());
+ total.setValue(t.getValue());
+ totals.add(total);
+ }
+ cart.setTotals(totals);
+ }
+
+ cart.setSubTotal(pricingService.getDisplayAmount(orderSummary.getSubTotal(), store));
+ cart.setTotal(pricingService.getDisplayAmount(orderSummary.getTotal(), store));
+ cart.setQuantity(cartQuantity);
+ cart.setId(shoppingCart.getId());
+ }
+ catch(ServiceException ex){
+ LOG.error( "Error while converting cart Model to cart Data.."+ex );
+ throw new ConversionException( "Unable to create cart data", ex );
+ }
+ return cart;
+
+
+ };
+
+
+
+
+
+ public void setPricingService(final PricingService pricingService) {
+ this.pricingService = pricingService;
+ }
+
+
+
+
+
+
+ public void setShoppingCartCalculationService(final ShoppingCartCalculationService shoppingCartCalculationService) {
+ this.shoppingCartCalculationService = shoppingCartCalculationService;
+ }
+
+
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/populator/shoppingCart/ShoppingCartModelPopulator.java b/sm-shop/src/main/java/com/salesmanager/shop/populator/shoppingCart/ShoppingCartModelPopulator.java
new file mode 100644
index 0000000..b77ce03
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/populator/shoppingCart/ShoppingCartModelPopulator.java
@@ -0,0 +1,276 @@
+/**
+ *
+ */
+package com.salesmanager.web.populator.shoppingCart;
+
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.configuration.ConversionException;
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Service;
+
+import com.salesmanager.core.business.catalog.product.model.Product;
+import com.salesmanager.core.business.catalog.product.model.attribute.ProductAttribute;
+import com.salesmanager.core.business.catalog.product.service.ProductService;
+import com.salesmanager.core.business.catalog.product.service.attribute.ProductAttributeService;
+import com.salesmanager.core.business.customer.model.Customer;
+import com.salesmanager.core.business.generic.exception.ServiceException;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.business.shoppingcart.model.ShoppingCart;
+import com.salesmanager.core.business.shoppingcart.service.ShoppingCartService;
+import com.salesmanager.core.utils.AbstractDataPopulator;
+import com.salesmanager.web.entity.shoppingcart.ShoppingCartAttribute;
+import com.salesmanager.web.entity.shoppingcart.ShoppingCartData;
+import com.salesmanager.web.entity.shoppingcart.ShoppingCartItem;
+
+/**
+ * @author Umesh A
+ */
+
+@Service(value="shoppingCartModelPopulator")
+public class ShoppingCartModelPopulator
+ extends AbstractDataPopulator<ShoppingCartData,ShoppingCart>
+{
+
+ private static final Logger LOG = LoggerFactory.getLogger(ShoppingCartModelPopulator.class);
+
+ private ShoppingCartService shoppingCartService;
+
+ private Customer customer;
+
+ public ShoppingCartService getShoppingCartService() {
+ return shoppingCartService;
+ }
+
+
+ public void setShoppingCartService(ShoppingCartService shoppingCartService) {
+ this.shoppingCartService = shoppingCartService;
+ }
+
+
+ private ProductService productService;
+
+
+ public ProductService getProductService() {
+ return productService;
+ }
+
+
+ public void setProductService(ProductService productService) {
+ this.productService = productService;
+ }
+
+
+ private ProductAttributeService productAttributeService;
+
+
+ public ProductAttributeService getProductAttributeService() {
+ return productAttributeService;
+ }
+
+
+ public void setProductAttributeService(
+ ProductAttributeService productAttributeService) {
+ this.productAttributeService = productAttributeService;
+ }
+
+
+ @Override
+ public ShoppingCart populate(ShoppingCartData shoppingCart,ShoppingCart cartMdel,final MerchantStore store, Language language)
+ {
+
+
+ // if id >0 get the original from the database, override products
+ try{
+ if ( shoppingCart.getId() > 0 && StringUtils.isNotBlank( shoppingCart.getCode()))
+ {
+ cartMdel = shoppingCartService.getByCode( shoppingCart.getCode(), store );
+ if(cartMdel==null){
+ cartMdel=new ShoppingCart();
+ cartMdel.setShoppingCartCode( shoppingCart.getCode() );
+ cartMdel.setMerchantStore( store );
+ if ( customer != null )
+ {
+ cartMdel.setCustomerId( customer.getId() );
+ }
+ shoppingCartService.create( cartMdel );
+ }
+ }
+ else
+ {
+ cartMdel.setShoppingCartCode( shoppingCart.getCode() );
+ cartMdel.setMerchantStore( store );
+ if ( customer != null )
+ {
+ cartMdel.setCustomerId( customer.getId() );
+ }
+ shoppingCartService.create( cartMdel );
+ }
+
+ List<ShoppingCartItem> items = shoppingCart.getShoppingCartItems();
+ Set<com.salesmanager.core.business.shoppingcart.model.ShoppingCartItem> newItems =
+ new HashSet<com.salesmanager.core.business.shoppingcart.model.ShoppingCartItem>();
+ if ( items != null && items.size() > 0 )
+ {
+ for ( ShoppingCartItem item : items )
+ {
+
+ Set<com.salesmanager.core.business.shoppingcart.model.ShoppingCartItem> cartItems = cartMdel.getLineItems();
+ if ( cartItems != null && cartItems.size() > 0 )
+ {
+
+ for ( com.salesmanager.core.business.shoppingcart.model.ShoppingCartItem dbItem : cartItems )
+ {
+ if ( dbItem.getId().longValue() == item.getId() )
+ {
+ dbItem.setQuantity( item.getQuantity() );
+ // compare attributes
+ Set<com.salesmanager.core.business.shoppingcart.model.ShoppingCartAttributeItem> attributes =
+ dbItem.getAttributes();
+ Set<com.salesmanager.core.business.shoppingcart.model.ShoppingCartAttributeItem> newAttributes =
+ new HashSet<com.salesmanager.core.business.shoppingcart.model.ShoppingCartAttributeItem>();
+ List<ShoppingCartAttribute> cartAttributes = item.getShoppingCartAttributes();
+ if ( !CollectionUtils.isEmpty( cartAttributes ) )
+ {
+ for ( ShoppingCartAttribute attribute : cartAttributes )
+ {
+ for ( com.salesmanager.core.business.shoppingcart.model.ShoppingCartAttributeItem dbAttribute : attributes )
+ {
+ if ( dbAttribute.getId().longValue() == attribute.getId() )
+ {
+ newAttributes.add( dbAttribute );
+ }
+ }
+ }
+
+ dbItem.setAttributes( newAttributes );
+ }
+ else
+ {
+ dbItem.removeAllAttributes();
+ }
+ newItems.add( dbItem );
+ }
+ }
+ }
+ else
+ {// create new item
+ com.salesmanager.core.business.shoppingcart.model.ShoppingCartItem cartItem =
+ createCartItem( cartMdel, item, store );
+ Set<com.salesmanager.core.business.shoppingcart.model.ShoppingCartItem> lineItems =
+ cartMdel.getLineItems();
+ if ( lineItems == null )
+ {
+ lineItems = new HashSet<com.salesmanager.core.business.shoppingcart.model.ShoppingCartItem>();
+ cartMdel.setLineItems( lineItems );
+ }
+ lineItems.add( cartItem );
+ shoppingCartService.update( cartMdel );
+ }
+ }// end for
+ }// end if
+ }catch(ServiceException se){
+ LOG.error( "Error while converting cart data to cart model.."+se );
+ throw new ConversionException( "Unable to create cart model", se );
+ }
+ catch (Exception ex){
+ LOG.error( "Error while converting cart data to cart model.."+ex );
+ throw new ConversionException( "Unable to create cart model", ex );
+ }
+
+ return cartMdel;
+ }
+
+
+ private com.salesmanager.core.business.shoppingcart.model.ShoppingCartItem createCartItem( com.salesmanager.core.business.shoppingcart.model.ShoppingCart cart,
+ ShoppingCartItem shoppingCartItem,
+ MerchantStore store )
+ throws Exception
+ {
+
+ Product product = productService.getById( shoppingCartItem.getProductId() );
+
+ if ( product == null )
+ {
+ throw new Exception( "Item with id " + shoppingCartItem.getProductId() + " does not exist" );
+ }
+
+ if ( product.getMerchantStore().getId().intValue() != store.getId().intValue() )
+ {
+ throw new Exception( "Item with id " + shoppingCartItem.getProductId() + " does not belong to merchant "
+ + store.getId() );
+ }
+
+ com.salesmanager.core.business.shoppingcart.model.ShoppingCartItem item =
+ new com.salesmanager.core.business.shoppingcart.model.ShoppingCartItem( cart, product );
+ item.setQuantity( shoppingCartItem.getQuantity() );
+ item.setItemPrice( shoppingCartItem.getProductPrice() );
+ item.setShoppingCart( cart );
+
+ // attributes
+ List<ShoppingCartAttribute> cartAttributes = shoppingCartItem.getShoppingCartAttributes();
+ if ( !CollectionUtils.isEmpty( cartAttributes ) )
+ {
+ Set<com.salesmanager.core.business.shoppingcart.model.ShoppingCartAttributeItem> newAttributes =
+ new HashSet<com.salesmanager.core.business.shoppingcart.model.ShoppingCartAttributeItem>();
+ for ( ShoppingCartAttribute attribute : cartAttributes )
+ {
+ ProductAttribute productAttribute = productAttributeService.getById( attribute.getAttributeId() );
+ if ( productAttribute != null
+ && productAttribute.getProduct().getId().longValue() == product.getId().longValue() )
+ {
+ com.salesmanager.core.business.shoppingcart.model.ShoppingCartAttributeItem attributeItem =
+ new com.salesmanager.core.business.shoppingcart.model.ShoppingCartAttributeItem( item,
+ productAttribute );
+ if ( attribute.getAttributeId() > 0 )
+ {
+ attributeItem.setId( attribute.getId() );
+ }
+ item.addAttributes( attributeItem );
+ //newAttributes.add( attributeItem );
+ }
+
+ }
+
+ //item.setAttributes( newAttributes );
+ }
+
+ return item;
+
+ }
+
+
+
+
+ @Override
+ protected ShoppingCart createTarget()
+ {
+
+ return new ShoppingCart();
+ }
+
+
+ public Customer getCustomer() {
+ return customer;
+ }
+
+
+ public void setCustomer(Customer customer) {
+ this.customer = customer;
+ }
+
+
+
+
+
+
+
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/populator/store/ReadableMerchantStorePopulator.java b/sm-shop/src/main/java/com/salesmanager/shop/populator/store/ReadableMerchantStorePopulator.java
new file mode 100644
index 0000000..d1481de
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/populator/store/ReadableMerchantStorePopulator.java
@@ -0,0 +1,53 @@
+package com.salesmanager.web.populator.store;
+
+import com.salesmanager.core.business.generic.exception.ConversionException;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.utils.AbstractDataPopulator;
+import com.salesmanager.web.entity.shop.ReadableMerchantStore;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.springframework.util.CollectionUtils;
+
+/**
+ * Populates MerchantStore core entity model object
+ * @author carlsamson
+ *
+ */
+public class ReadableMerchantStorePopulator extends
+ AbstractDataPopulator<MerchantStore, ReadableMerchantStore> {
+
+ @Override
+ public ReadableMerchantStore populate(MerchantStore source,
+ ReadableMerchantStore target, MerchantStore store, Language language)
+ throws ConversionException {
+
+
+ target.setId(source.getId());
+ target.setCode(source.getCode());
+ target.setDefaultLanguage(source.getDefaultLanguage().getCode());
+
+ List<Language> languages = source.getLanguages();
+ if(!CollectionUtils.isEmpty(languages)) {
+
+ List<String> langs = new ArrayList<String>();
+ for(Language lang : languages) {
+ langs.add(lang.getCode());
+ }
+
+ target.setSupportedLanguages(langs);
+ }
+
+
+ return target;
+ }
+
+ @Override
+ protected ReadableMerchantStore createTarget() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/store/controller/AbstractController.java b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/AbstractController.java
new file mode 100644
index 0000000..e679b70
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/AbstractController.java
@@ -0,0 +1,150 @@
+/**
+ *
+ */
+package com.salesmanager.web.shop.controller;
+
+import javax.servlet.http.HttpServletRequest;
+
+import org.jopendocument.util.ExceptionUtils;
+import org.springframework.http.HttpStatus;
+import org.springframework.security.access.AccessDeniedException;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.ExceptionHandler;
+import org.springframework.web.bind.annotation.ResponseStatus;
+import org.springframework.web.servlet.ModelAndView;
+
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.web.constants.Constants;
+import com.salesmanager.web.shop.model.paging.PaginationData;
+
+/**
+ * @author Umesh A
+ *
+ */
+public abstract class AbstractController {
+
+
+ /**
+ * Method which will help to retrieving values from Session
+ * based on the key being passed to the method.
+ * @param key
+ * @return value stored in session corresponding to the key
+ */
+ @SuppressWarnings( "unchecked" )
+ protected <T> T getSessionAttribute(final String key, HttpServletRequest request) {
+ return (T) com.salesmanager.web.utils.SessionUtil.getSessionAttribute(key, request);
+
+ }
+
+ protected void setSessionAttribute(final String key, final Object value, HttpServletRequest request) {
+ com.salesmanager.web.utils.SessionUtil.setSessionAttribute(key, value, request);
+ }
+
+
+ protected void removeAttribute(final String key, HttpServletRequest request) {
+ com.salesmanager.web.utils.SessionUtil.removeSessionAttribute(key, request);
+ }
+
+ protected Language getLanguage(HttpServletRequest request) {
+ return (Language)request.getAttribute(Constants.LANGUAGE);
+ }
+
+ @ExceptionHandler(Exception.class)
+ @ResponseStatus(value = HttpStatus.INTERNAL_SERVER_ERROR)
+ public ModelAndView handleException(Exception ex) {
+
+ ModelAndView model = null;
+ if(ex instanceof AccessDeniedException) {
+
+ model = new ModelAndView("error/access_denied");
+
+ } else {
+
+ model = new ModelAndView("error/generic_error");
+ model.addObject("stackError", ExceptionUtils.getStackTrace(ex));
+ model.addObject("errMsg", ex.getMessage());
+
+ }
+
+
+
+ return model;
+
+ }
+
+
+ /*
+ @ExceptionHandler(Exception.class)
+ @ResponseStatus(value = HttpStatus.INTERNAL_SERVER_ERROR)
+ public String handleException(Model model, Exception ex, HttpServletRequest request) {
+
+
+ MerchantStore store = getSessionAttribute(Constants.MERCHANT_STORE, request);
+ StringBuilder template = null;
+ //ModelAndView model = null;
+ if(ex instanceof AccessDeniedException) {
+
+
+ if(store != null) {
+
+
+ template = new StringBuilder().append(ControllerConstants.Tiles.Error.accessDenied).append(".").append(store.getStoreTemplate());
+
+
+ } else {
+
+ template = new StringBuilder().append(ControllerConstants.Tiles.Error.accessDenied);
+
+ }
+
+ //model = new ModelAndView("error/access_denied");
+
+ } else {
+
+ model.addAttribute("stackError", ExceptionUtils.getStackTrace(ex));
+ model.addAttribute("errMsg", ex.getMessage());
+
+ if(store != null) {
+
+
+ template = new StringBuilder().append(ControllerConstants.Tiles.Error.error).append(".").append(store.getStoreTemplate());
+
+
+ } else {
+
+ template = new StringBuilder().append(ControllerConstants.Tiles.Error.error);
+
+ }
+
+ //model = new ModelAndView("error/generic_error");
+ //model.addObject("stackError", ExceptionUtils.getStackTrace(ex));
+ //model.addObject("errMsg", ex.getMessage());
+
+ }
+
+
+
+ return template.toString();
+
+ }
+*/
+ protected PaginationData createPaginaionData( final int pageNumber, final int pageSize )
+ {
+ final PaginationData paginaionData = new PaginationData(pageSize,pageNumber);
+
+ return paginaionData;
+ }
+
+ protected PaginationData calculatePaginaionData( final PaginationData paginationData, final int pageSize, final int resultCount){
+
+ int currentPage = paginationData.getCurrentPage();
+
+
+ int count = Math.min((currentPage * pageSize), resultCount);
+ paginationData.setCountByPage(count);
+
+ paginationData.setTotalCount( resultCount );
+ return paginationData;
+ }
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/store/controller/category/facade/CategoryFacade.java b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/category/facade/CategoryFacade.java
new file mode 100644
index 0000000..1d79df1
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/category/facade/CategoryFacade.java
@@ -0,0 +1,24 @@
+package com.salesmanager.web.shop.controller.category.facade;
+
+import java.util.List;
+
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.web.entity.catalog.category.PersistableCategory;
+import com.salesmanager.web.entity.catalog.category.ReadableCategory;
+
+public interface CategoryFacade {
+
+ /**
+ * Returns a list of ReadableCategory ordered and built according to a given depth
+ * @param store
+ * @param depth
+ * @param language
+ * @return
+ * @throws Exception
+ */
+ List<ReadableCategory> getCategoryHierarchy(MerchantStore store, int depth, Language language) throws Exception;
+
+ void saveCategory(MerchantStore store, PersistableCategory category) throws Exception;
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/store/controller/category/facade/CategoryFacadeImpl.java b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/category/facade/CategoryFacadeImpl.java
new file mode 100644
index 0000000..f352a94
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/category/facade/CategoryFacadeImpl.java
@@ -0,0 +1,152 @@
+package com.salesmanager.web.shop.controller.category.facade;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import com.salesmanager.core.business.catalog.category.model.Category;
+import com.salesmanager.core.business.catalog.category.service.CategoryService;
+import com.salesmanager.core.business.generic.exception.ServiceException;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.business.reference.language.service.LanguageService;
+import com.salesmanager.web.entity.catalog.category.PersistableCategory;
+import com.salesmanager.web.entity.catalog.category.ReadableCategory;
+import com.salesmanager.web.populator.catalog.PersistableCategoryPopulator;
+import com.salesmanager.web.populator.catalog.ReadableCategoryPopulator;
+
+
+@Service( value = "categoryFacade" )
+public class CategoryFacadeImpl implements CategoryFacade {
+
+ @Inject
+ private CategoryService categoryService;
+
+ @Inject
+ private LanguageService languageService;
+
+ @Override
+ public List<ReadableCategory> getCategoryHierarchy(MerchantStore store,
+ int depth, Language language) throws Exception {
+
+ List<Category> categories = categoryService.listByDepth(store, 2, language);
+ List<ReadableCategory> returnValues = new ArrayList<ReadableCategory>();
+
+ Map<Long, ReadableCategory> categoryMap = new ConcurrentHashMap<Long, ReadableCategory>();
+
+ ReadableCategoryPopulator categoryPopulator = new ReadableCategoryPopulator();
+
+ for(Category category : categories) {
+
+ if(category.isVisible()) {
+ ReadableCategory readableCategory = new ReadableCategory();
+ categoryPopulator.populate(category, readableCategory, store, language);
+
+ returnValues.add(readableCategory);
+ categoryMap.put(category.getId(), readableCategory);
+ }
+ }
+
+ for(ReadableCategory category : returnValues) {
+
+ if(category.isVisible()) {
+ if(category.getParent()!=null) {
+ ReadableCategory parentCategory = categoryMap.get(category.getParent().getId());
+ if(parentCategory!=null) {
+ parentCategory.getChildren().add(category);
+ }
+ }
+ }
+ }
+
+ returnValues = new ArrayList<ReadableCategory>();
+ for(Object obj : categoryMap.values()) {
+
+ ReadableCategory readableCategory = (ReadableCategory)obj;
+ if(readableCategory.getDepth()==0) {//only from root
+ returnValues.add(readableCategory);
+ }
+ }
+
+ Collections.sort(returnValues, new Comparator<ReadableCategory>() {
+ @Override
+ public int compare(final ReadableCategory firstCategory, final ReadableCategory secondCategory) {
+ return firstCategory.getSortOrder() - secondCategory.getSortOrder();
+ }
+ } );
+
+ return returnValues;
+ }
+
+ @Override
+ public void saveCategory(MerchantStore store, PersistableCategory category)
+ throws Exception {
+
+ PersistableCategoryPopulator populator = new PersistableCategoryPopulator();
+ populator.setCategoryService(categoryService);
+ populator.setLanguageService(languageService);
+
+ Category dbCategory = populator.populate(category, new Category(), store, store.getDefaultLanguage());
+
+ this.saveCategory(store, dbCategory, null);
+
+
+ }
+
+ private void saveCategory(MerchantStore store, Category c, Category parent) throws ServiceException {
+
+
+ /**
+ c.children1
+
+ children1.children1
+ children1.children2
+
+ children1.children2.children1
+
+ **/
+
+ /** set lineage **/
+ if(parent!=null) {
+ c.setParent(c);
+
+ String lineage = parent.getLineage();
+ int depth = parent.getDepth();
+
+ c.setDepth(depth+1);
+ c.setLineage(new StringBuilder().append(lineage).append(parent.getId()).append("/").toString());
+
+ }
+
+ c.setMerchantStore(store);
+
+ //remove children
+ List<Category> children = c.getCategories();
+ c.setCategories(null);
+
+ /** set parent **/
+ if(parent!=null) {
+ c.setParent(parent);
+ }
+
+ categoryService.saveOrUpdate(c);
+
+
+ if(!CollectionUtils.isEmpty(children)) {
+ parent = c;
+ for(Category sub : children) {
+
+ this.saveCategory(store, sub, parent);
+
+ }
+ }
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/store/controller/category/ShoppingCategoryController.java b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/category/ShoppingCategoryController.java
new file mode 100644
index 0000000..96b5a20
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/category/ShoppingCategoryController.java
@@ -0,0 +1,729 @@
+package com.salesmanager.web.shop.controller.category;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import com.salesmanager.core.business.catalog.category.model.Category;
+import com.salesmanager.core.business.catalog.category.service.CategoryService;
+import com.salesmanager.core.business.catalog.product.model.Product;
+import com.salesmanager.core.business.catalog.product.model.ProductCriteria;
+import com.salesmanager.core.business.catalog.product.service.PricingService;
+import com.salesmanager.core.business.catalog.product.service.ProductService;
+import com.salesmanager.core.business.catalog.product.service.manufacturer.ManufacturerService;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.merchant.service.MerchantStoreService;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.business.reference.language.service.LanguageService;
+import com.salesmanager.core.utils.CacheUtils;
+import com.salesmanager.web.constants.Constants;
+import com.salesmanager.web.entity.catalog.ProductList;
+import com.salesmanager.web.entity.catalog.category.ReadableCategory;
+import com.salesmanager.web.entity.catalog.manufacturer.ReadableManufacturer;
+import com.salesmanager.web.entity.catalog.product.ReadableProduct;
+import com.salesmanager.web.entity.shop.Breadcrumb;
+import com.salesmanager.web.entity.shop.PageInformation;
+import com.salesmanager.web.populator.catalog.ReadableCategoryPopulator;
+import com.salesmanager.web.populator.catalog.ReadableProductPopulator;
+import com.salesmanager.web.populator.manufacturer.ReadableManufacturerPopulator;
+import com.salesmanager.web.shop.controller.ControllerConstants;
+import com.salesmanager.web.shop.model.filter.QueryFilter;
+import com.salesmanager.web.shop.model.filter.QueryFilterType;
+import com.salesmanager.web.utils.BreadcrumbsUtils;
+import com.salesmanager.web.utils.ImageFilePath;
+import com.salesmanager.web.utils.LabelUtils;
+import com.salesmanager.web.utils.PageBuilderUtils;
+
+import edu.emory.mathcs.backport.java.util.Collections;
+
+
+/**
+ * Renders a given category page based on friendly url
+ * Can also filter by facets such as manufacturer
+ * @author Carl Samson
+ *
+ */
+@Controller
+public class ShoppingCategoryController {
+
+
+
+ @Inject
+ private CategoryService categoryService;
+
+ @Inject
+ private LanguageService languageService;
+
+ @Inject
+ private MerchantStoreService merchantStoreService;
+
+ @Inject
+ private ProductService productService;
+
+ @Inject
+ private ManufacturerService manufacturerService;
+
+ @Inject
+ private LabelUtils messages;
+
+ @Inject
+ private BreadcrumbsUtils breadcrumbsUtils;
+
+ @Inject
+ private CacheUtils cache;
+
+ @Inject
+ private PricingService pricingService;
+
+ @Inject
+ @Qualifier("img")
+ private ImageFilePath imageUtils;
+
+
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(ShoppingCategoryController.class);
+
+
+ /**
+ *
+ * @param friendlyUrl
+ * @param ref
+ * @param model
+ * @param request
+ * @param response
+ * @param locale
+ * @return
+ * @throws Exception
+ */
+ @RequestMapping("/shop/category/{friendlyUrl}.html/ref={ref}")
+ public String displayCategoryWithReference(@PathVariable final String friendlyUrl, @PathVariable final String ref, Model model, HttpServletRequest request, HttpServletResponse response, Locale locale) throws Exception {
+
+
+
+ return this.displayCategory(friendlyUrl,ref,model,request,response,locale);
+ }
+
+
+
+ /**
+ * Category page entry point
+ * @param friendlyUrl
+ * @param model
+ * @param request
+ * @param response
+ * @return
+ * @throws Exception
+ */
+ @RequestMapping("/shop/category/{friendlyUrl}.html")
+ public String displayCategoryNoReference(@PathVariable final String friendlyUrl, Model model, HttpServletRequest request, HttpServletResponse response, Locale locale) throws Exception {
+
+ return this.displayCategory(friendlyUrl,null,model,request,response,locale);
+ }
+
+ @SuppressWarnings("unchecked")
+ private String displayCategory(final String friendlyUrl, final String ref, Model model, HttpServletRequest request, HttpServletResponse response, Locale locale) throws Exception {
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.MERCHANT_STORE);
+
+
+
+
+ //get category
+ Category category = categoryService.getBySeUrl(store, friendlyUrl);
+
+ Language language = (Language)request.getAttribute("LANGUAGE");
+
+ if(category==null) {
+ LOGGER.error("No category found for friendlyUrl " + friendlyUrl);
+ //redirect on page not found
+ return PageBuilderUtils.build404(store);
+
+ }
+
+ ReadableCategoryPopulator populator = new ReadableCategoryPopulator();
+ ReadableCategory categoryProxy = populator.populate(category, new ReadableCategory(), store, language);
+
+ Breadcrumb breadCrumb = breadcrumbsUtils.buildCategoryBreadcrumb(categoryProxy, store, language, request.getContextPath());
+ request.getSession().setAttribute(Constants.BREADCRUMB, breadCrumb);
+ request.setAttribute(Constants.BREADCRUMB, breadCrumb);
+
+
+ //meta information
+ PageInformation pageInformation = new PageInformation();
+ pageInformation.setPageDescription(categoryProxy.getDescription().getMetaDescription());
+ pageInformation.setPageKeywords(categoryProxy.getDescription().getKeyWords());
+ pageInformation.setPageTitle(categoryProxy.getDescription().getTitle());
+ pageInformation.setPageUrl(categoryProxy.getDescription().getFriendlyUrl());
+
+ //** retrieves category id drill down**//
+ String lineage = new StringBuilder().append(category.getLineage()).append(category.getId()).append(Constants.CATEGORY_LINEAGE_DELIMITER).toString();
+
+
+
+ request.setAttribute(Constants.REQUEST_PAGE_INFORMATION, pageInformation);
+
+ //TODO add to caching
+ List<Category> subCategs = categoryService.listByLineage(store, lineage);
+ List<Long> subIds = new ArrayList<Long>();
+ if(subCategs!=null && subCategs.size()>0) {
+ for(Category c : subCategs) {
+ subIds.add(c.getId());
+ }
+ }
+ subIds.add(category.getId());
+
+
+ StringBuilder subCategoriesCacheKey = new StringBuilder();
+ subCategoriesCacheKey
+ .append(store.getId())
+ .append("_")
+ .append(category.getId())
+ .append("_")
+ .append(Constants.SUBCATEGORIES_CACHE_KEY)
+ .append("-")
+ .append(language.getCode());
+
+ StringBuilder subCategoriesMissed = new StringBuilder();
+ subCategoriesMissed
+ .append(subCategoriesCacheKey.toString())
+ .append(Constants.MISSED_CACHE_KEY);
+
+ List<BigDecimal> prices = new ArrayList<BigDecimal>();
+ List<ReadableCategory> subCategories = null;
+ Map<Long,Long> countProductsByCategories = null;
+
+ if(store.isUseCache()) {
+
+ //get from the cache
+ subCategories = (List<ReadableCategory>) cache.getFromCache(subCategoriesCacheKey.toString());
+ if(subCategories==null) {
+ //get from missed cache
+ //Boolean missedContent = (Boolean)cache.getFromCache(subCategoriesMissed.toString());
+
+ //if(missedContent==null) {
+ countProductsByCategories = getProductsByCategory(store, category, lineage, subCategs);
+ subCategories = getSubCategories(store,category,countProductsByCategories,language,locale);
+
+ if(subCategories!=null) {
+ cache.putInCache(subCategories, subCategoriesCacheKey.toString());
+ } else {
+ //cache.putInCache(new Boolean(true), subCategoriesCacheKey.toString());
+ }
+ //}
+ }
+ } else {
+ countProductsByCategories = getProductsByCategory(store, category, lineage, subCategs);
+ subCategories = getSubCategories(store,category,countProductsByCategories,language,locale);
+ }
+
+ //Parent category
+ ReadableCategory parentProxy = null;
+
+ if(category.getParent()!=null) {
+ Category parent = categoryService.getById(category.getParent().getId());
+ parentProxy = populator.populate(parent, new ReadableCategory(), store, language);
+ }
+
+
+ //** List of manufacturers **//
+ List<ReadableManufacturer> manufacturerList = getManufacturersByProductAndCategory(store,category,subIds,language);
+
+ model.addAttribute("manufacturers", manufacturerList);
+ model.addAttribute("parent", parentProxy);
+ model.addAttribute("category", categoryProxy);
+ model.addAttribute("subCategories", subCategories);
+
+ if(parentProxy!=null) {
+ request.setAttribute(Constants.LINK_CODE, parentProxy.getDescription().getFriendlyUrl());
+ }
+
+
+ /** template **/
+ StringBuilder template = new StringBuilder().append(ControllerConstants.Tiles.Category.category).append(".").append(store.getStoreTemplate());
+
+ return template.toString();
+ }
+
+ @SuppressWarnings("unchecked")
+ private List<ReadableManufacturer> getManufacturersByProductAndCategory(MerchantStore store, Category category, List<Long> subCategoryIds, Language language) throws Exception {
+
+ List<ReadableManufacturer> manufacturerList = null;
+ /** List of manufacturers **/
+ if(subCategoryIds!=null && subCategoryIds.size()>0) {
+
+ StringBuilder manufacturersKey = new StringBuilder();
+ manufacturersKey
+ .append(store.getId())
+ .append("_")
+ .append(Constants.MANUFACTURERS_BY_PRODUCTS_CACHE_KEY)
+ .append("-")
+ .append(language.getCode());
+
+ StringBuilder manufacturersKeyMissed = new StringBuilder();
+ manufacturersKeyMissed
+ .append(manufacturersKey.toString())
+ .append(Constants.MISSED_CACHE_KEY);
+
+ if(store.isUseCache()) {
+
+ //get from the cache
+
+ manufacturerList = (List<ReadableManufacturer>) cache.getFromCache(manufacturersKey.toString());
+
+
+ if(manufacturerList==null) {
+ //get from missed cache
+ //Boolean missedContent = (Boolean)cache.getFromCache(manufacturersKeyMissed.toString());
+ //if(missedContent==null) {
+ manufacturerList = this.getManufacturers(store, subCategoryIds, language);
+ if(CollectionUtils.isEmpty(manufacturerList)) {
+ cache.putInCache(new Boolean(true), manufacturersKeyMissed.toString());
+ } else {
+ //cache.putInCache(manufacturerList, manufacturersKey.toString());
+ }
+ //}
+ }
+ } else {
+ manufacturerList = this.getManufacturers(store, subCategoryIds, language);
+ }
+ }
+ return manufacturerList;
+ }
+
+ private List<ReadableManufacturer> getManufacturers(MerchantStore store, List<Long> ids, Language language) throws Exception {
+ List<ReadableManufacturer> manufacturerList = null;
+ List<com.salesmanager.core.business.catalog.product.model.manufacturer.Manufacturer> manufacturers = manufacturerService.listByProductsByCategoriesId(store, ids, language);
+ if(!CollectionUtils.isEmpty(manufacturers)) {
+ manufacturerList = new ArrayList<ReadableManufacturer>();
+ for(com.salesmanager.core.business.catalog.product.model.manufacturer.Manufacturer manufacturer : manufacturers) {
+ ReadableManufacturer manuf = new ReadableManufacturerPopulator().populate(manufacturer, new ReadableManufacturer(), store, language);
+ manufacturerList.add(manuf);
+
+ }
+ }
+ return manufacturerList;
+ }
+
+ private Map<Long,Long> getProductsByCategory(MerchantStore store, Category category, String lineage, List<Category> subCategories) throws Exception {
+
+ if(CollectionUtils.isEmpty(subCategories)) {
+ return null;
+ }
+ List<Long> ids = new ArrayList<Long>();
+ if(subCategories!=null && subCategories.size()>0) {
+ for(Category c : subCategories) {
+ ids.add(c.getId());
+ }
+ }
+
+ List<Object[]> countProductsByCategories = categoryService.countProductsByCategories(store, ids);
+ Map<Long, Long> countByCategories = new HashMap<Long,Long>();
+
+ for(Object[] counts : countProductsByCategories) {
+ Category c = (Category)counts[0];
+ if(c.getParent().getId()==category.getId()) {
+ countByCategories.put(c.getId(), (Long)counts[1]);
+ } else {
+ //get lineage
+ String lin = c.getLineage();
+ String[] categoryPath = lin.split(Constants.CATEGORY_LINEAGE_DELIMITER);
+ for(int i=0 ; i<categoryPath.length; i++) {
+ String sId = categoryPath[i];
+ if(!StringUtils.isBlank(sId)) {
+ Long count = countByCategories.get(Long.parseLong(sId));
+ if(count!=null) {
+ count = count + (Long)counts[1];
+ countByCategories.put(Long.parseLong(sId), count);
+ }
+ }
+ }
+ }
+ }
+
+ return countByCategories;
+
+ }
+
+ private List<ReadableCategory> getSubCategories(MerchantStore store, Category category, Map<Long,Long> productCount, Language language, Locale locale) throws Exception {
+
+
+ //sub categories
+ List<Category> subCategories = categoryService.listByParent(category, language);
+ ReadableCategoryPopulator populator = new ReadableCategoryPopulator();
+ List<ReadableCategory> subCategoryProxies = new ArrayList<ReadableCategory>();
+
+
+
+ for(Category sub : subCategories) {
+ ReadableCategory cProxy = populator.populate(sub, new ReadableCategory(), store, language);
+ //com.salesmanager.web.entity.catalog.Category cProxy = catalogUtils.buildProxyCategory(sub, store, locale);
+ if(productCount!=null) {
+ Long total = productCount.get(cProxy.getId());
+ if(total!=null) {
+ cProxy.setProductCount(total.intValue());
+ }
+ }
+ subCategoryProxies.add(cProxy);
+ }
+
+ return subCategoryProxies;
+
+ }
+
+
+
+ /**
+ * Returns all categories for a given MerchantStore
+ */
+ @RequestMapping("/services/public/category/{store}/{language}")
+ @ResponseBody
+ public List<ReadableCategory> getCategories(@PathVariable final String language, @PathVariable final String store, Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+ Map<String,Language> langs = languageService.getLanguagesMap();
+ Language l = langs.get(language);
+ if(l==null) {
+ l = languageService.getByCode(Constants.DEFAULT_LANGUAGE);
+ }
+
+ MerchantStore merchantStore = (MerchantStore)request.getAttribute(Constants.MERCHANT_STORE);
+
+ if(merchantStore!=null) {
+ if(!merchantStore.getCode().equals(store)) {
+ merchantStore = null; //reset for the current request
+ }
+ }
+
+ if(merchantStore== null) {
+ merchantStore = merchantStoreService.getByCode(store);
+ }
+
+ if(merchantStore==null) {
+ LOGGER.error("Merchant store is null for code " + store);
+ response.sendError(503, "Merchant store is null for code " + store);//TODO localized message
+ return null;
+ }
+
+ List<Category> categories = categoryService.listByStore(merchantStore, l);
+
+ ReadableCategoryPopulator populator = new ReadableCategoryPopulator();
+
+ List<ReadableCategory> returnCategories = new ArrayList<ReadableCategory>();
+ for(Category category : categories) {
+ ReadableCategory categoryProxy = populator.populate(category, new ReadableCategory(), merchantStore, l);
+ returnCategories.add(categoryProxy);
+ }
+
+ return returnCategories;
+ }
+
+ /**
+ * Returns an array of products belonging to a given category
+ * in a given language for a given store
+ * url example : http://<host>/sm-shop/shop/services/public/products/DEFAULT/BOOKS
+ * @param store
+ * @param language
+ * @param category
+ * @param model
+ * @param request
+ * @param response
+ * @return
+ * @throws Exception
+ */
+ @RequestMapping("/services/public/products/{store}/{language}/{category}")
+ @ResponseBody
+ public ProductList getProducts(@PathVariable final String store, @PathVariable final String language, @PathVariable final String category, Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+ //http://localhost:8080/sm-shop/services/public/products/DEFAULT/en/book.html
+
+ try {
+
+
+ /**
+ * How to Spring MVC Rest web service - ajax / jquery
+ * http://codetutr.com/2013/04/09/spring-mvc-easy-rest-based-json-services-with-responsebody/
+ */
+
+ MerchantStore merchantStore = (MerchantStore)request.getAttribute(Constants.MERCHANT_STORE);
+ Map<String,Language> langs = languageService.getLanguagesMap();
+
+ if(merchantStore!=null) {
+ if(!merchantStore.getCode().equals(store)) {
+ merchantStore = null; //reset for the current request
+ }
+ }
+
+ if(merchantStore== null) {
+ merchantStore = merchantStoreService.getByCode(store);
+ }
+
+ if(merchantStore==null) {
+ LOGGER.error("Merchant store is null for code " + store);
+ response.sendError(503, "Merchant store is null for code " + store);//TODO localized message
+ return null;
+ }
+
+ //get the category by code
+ Category cat = categoryService.getBySeUrl(merchantStore, category);
+
+ if(cat==null) {
+ LOGGER.error("Category with friendly url " + category + " is null");
+ response.sendError(503, "Category is null");//TODO localized message
+ }
+
+ String lineage = new StringBuilder().append(cat.getLineage()).append(cat.getId()).append("/").toString();
+
+ List<Category> categories = categoryService.listByLineage(store, lineage);
+
+ List<Long> ids = new ArrayList<Long>();
+ if(categories!=null && categories.size()>0) {
+ for(Category c : categories) {
+ ids.add(c.getId());
+ }
+ }
+ ids.add(cat.getId());
+
+ Language lang = langs.get(language);
+ if(lang==null) {
+ lang = langs.get(Constants.DEFAULT_LANGUAGE);
+ }
+
+ List<com.salesmanager.core.business.catalog.product.model.Product> products = productService.getProducts(ids, lang);
+
+ ProductList productList = new ProductList();
+
+ ReadableProductPopulator populator = new ReadableProductPopulator();
+ populator.setPricingService(pricingService);
+ populator.setimageUtils(imageUtils);
+
+ for(Product product : products) {
+ //create new proxy product
+ ReadableProduct p = populator.populate(product, new ReadableProduct(), merchantStore, lang);
+ productList.getProducts().add(p);
+
+ }
+
+ productList.setProductCount(productList.getProducts().size());
+ return productList;
+
+
+ } catch (Exception e) {
+ LOGGER.error("Error while getting category",e);
+ response.sendError(503, "Error while getting category");
+ }
+
+ return null;
+ }
+
+
+ /**
+ * Will page products of a given category
+ * @param store
+ * @param language
+ * @param category
+ * @param model
+ * @param request
+ * @param response
+ * @return
+ * @throws Exception
+ */
+ @RequestMapping("/services/public/products/page/{start}/{max}/{store}/{language}/{category}.html")
+ @ResponseBody
+ public ProductList getProducts(@PathVariable int start, @PathVariable int max, @PathVariable String store, @PathVariable final String language, @PathVariable final String category, Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+
+ return this.getProducts(start, max, store, language, category, null, model, request, response);
+ }
+
+
+ /**
+ * An entry point for filtering by another entity such as Manufacturer
+ * filter=BRAND&filter-value=123
+ * @param start
+ * @param max
+ * @param store
+ * @param language
+ * @param category
+ * @param filterType
+ * @param filterValue
+ * @param model
+ * @param request
+ * @param response
+ * @return
+ * @throws Exception
+ */
+ @RequestMapping("/services/public/products/page/{start}/{max}/{store}/{language}/{category}.html/filter={filterType}/filter-value={filterValue}")
+ @ResponseBody
+ public ProductList getProductsFilteredByType(@PathVariable int start, @PathVariable int max, @PathVariable String store, @PathVariable final String language, @PathVariable final String category, @PathVariable final String filterType, @PathVariable final String filterValue, Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+ List<QueryFilter> queryFilters = null;
+ try {
+ if(filterType.equals(QueryFilterType.BRAND.name())) {//the only one implemented so far
+ QueryFilter filter = new QueryFilter();
+ filter.setFilterType(QueryFilterType.BRAND);
+ filter.setFilterId(Long.parseLong(filterValue));
+ if(queryFilters==null) {
+ queryFilters = new ArrayList<QueryFilter>();
+ }
+ queryFilters.add(filter);
+ }
+ } catch(Exception e) {
+ LOGGER.error("Invalid filter or filter-value " + filterType + " - " + filterValue,e);
+ }
+
+ return this.getProducts(start, max, store, language, category, queryFilters, model, request, response);
+ }
+
+
+ private ProductList getProducts(final int start, final int max, final String store, final String language, final String category, final List<QueryFilter> filters, Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+
+ try {
+
+
+ /**
+ * How to Spring MVC Rest web service - ajax / jquery
+ * http://codetutr.com/2013/04/09/spring-mvc-easy-rest-based-json-services-with-responsebody/
+ */
+
+ MerchantStore merchantStore = (MerchantStore)request.getAttribute(Constants.MERCHANT_STORE);
+ List<BigDecimal> prices = new ArrayList<BigDecimal>();
+
+ Map<String,Language> langs = languageService.getLanguagesMap();
+
+ if(merchantStore!=null) {
+ if(!merchantStore.getCode().equals(store)) {
+ merchantStore = null; //reset for the current request
+ }
+ }
+
+ if(merchantStore== null) {
+ merchantStore = merchantStoreService.getByCode(store);
+ }
+
+ if(merchantStore==null) {
+ LOGGER.error("Merchant store is null for code " + store);
+ response.sendError(503, "Merchant store is null for code " + store);//TODO localized message
+ return null;
+ }
+
+ //get the category by code
+ Category cat = categoryService.getBySeUrl(merchantStore, category);
+
+ if(cat==null) {
+ LOGGER.error("Category " + category + " is null");
+ response.sendError(503, "Category is null");//TODO localized message
+ return null;
+ }
+
+ String lineage = new StringBuilder().append(cat.getLineage()).append(cat.getId()).append("/").toString();
+
+ List<Category> categories = categoryService.listByLineage(store, lineage);
+
+ List<Long> ids = new ArrayList<Long>();
+ if(categories!=null && categories.size()>0) {
+ for(Category c : categories) {
+ ids.add(c.getId());
+ }
+ }
+ ids.add(cat.getId());
+
+
+ Language lang = langs.get(language);
+ if(lang==null) {
+ lang = langs.get(Constants.DEFAULT_LANGUAGE);
+ }
+
+ ProductCriteria productCriteria = new ProductCriteria();
+ productCriteria.setMaxCount(max);
+ productCriteria.setStartIndex(start);
+ productCriteria.setCategoryIds(ids);
+ productCriteria.setAvailable(true);
+
+ if(filters!=null) {
+ for(QueryFilter filter : filters) {
+ if(filter.getFilterType().name().equals(QueryFilterType.BRAND.name())) {//the only filter implemented
+ productCriteria.setManufacturerId(filter.getFilterId());
+ }
+ }
+ }
+
+ com.salesmanager.core.business.catalog.product.model.ProductList products = productService.listByStore(merchantStore, lang, productCriteria);
+
+ ReadableProductPopulator populator = new ReadableProductPopulator();
+ populator.setPricingService(pricingService);
+ populator.setimageUtils(imageUtils);
+
+ ProductList productList = new ProductList();
+ for(Product product : products.getProducts()) {
+
+ //create new proxy product
+ ReadableProduct p = populator.populate(product, new ReadableProduct(), merchantStore, lang);
+ productList.getProducts().add(p);
+ prices.add(p.getPrice());
+
+ }
+
+
+ /** order products based on the specified order **/
+ Collections.sort(productList.getProducts(), new Comparator<ReadableProduct>() {
+
+ @Override
+ public int compare(ReadableProduct o1, ReadableProduct o2) {
+ int order1 = o1.getSortOrder();
+ int order2 = o2.getSortOrder();
+ return order1 - order2;
+ }
+ });
+
+
+ productList.setProductCount(products.getTotalCount());
+
+ if(CollectionUtils.isNotEmpty(prices)) {
+ BigDecimal minPrice = (BigDecimal)Collections.min(prices);
+ BigDecimal maxPrice = (BigDecimal)Collections.max(prices);
+
+ if(minPrice !=null && maxPrice !=null) {
+ productList.setMinPrice(minPrice);
+ productList.setMaxPrice(maxPrice);
+ }
+ }
+
+
+
+ return productList;
+
+
+ } catch (Exception e) {
+ LOGGER.error("Error while getting products",e);
+ response.sendError(503, "An error occured while retrieving products " + e.getMessage());
+ }
+
+ return null;
+
+ }
+
+
+
+
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/store/controller/content/ShopContentController.java b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/content/ShopContentController.java
new file mode 100644
index 0000000..4afacb7
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/content/ShopContentController.java
@@ -0,0 +1,65 @@
+package com.salesmanager.web.shop.controller.content;
+
+import java.util.Locale;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import com.salesmanager.core.business.content.model.ContentDescription;
+import com.salesmanager.core.business.content.service.ContentService;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.web.constants.Constants;
+import com.salesmanager.web.entity.shop.PageInformation;
+import com.salesmanager.web.shop.controller.ControllerConstants;
+
+@Controller
+public class ShopContentController {
+
+
+ @Inject
+ private ContentService contentService;
+
+
+ @RequestMapping("/shop/pages/{friendlyUrl}.html")
+ public String displayContent(@PathVariable final String friendlyUrl, Model model, HttpServletRequest request, HttpServletResponse response, Locale locale) throws Exception {
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.MERCHANT_STORE);
+
+ Language language = (Language)request.getAttribute("LANGUAGE");
+
+ ContentDescription contentDescription = contentService.getBySeUrl(store, friendlyUrl);
+
+ if(contentDescription!=null) {
+
+ //meta information
+ PageInformation pageInformation = new PageInformation();
+ pageInformation.setPageDescription(contentDescription.getMetatagDescription());
+ pageInformation.setPageKeywords(contentDescription.getMetatagKeywords());
+ pageInformation.setPageTitle(contentDescription.getTitle());
+ pageInformation.setPageUrl(contentDescription.getName());
+
+ request.setAttribute(Constants.REQUEST_PAGE_INFORMATION, pageInformation);
+
+
+ }
+
+ //TODO breadcrumbs
+ request.setAttribute(Constants.LINK_CODE, contentDescription.getSeUrl());
+ model.addAttribute("content",contentDescription);
+
+ /** template **/
+ StringBuilder template = new StringBuilder().append(ControllerConstants.Tiles.Content.content).append(".").append(store.getStoreTemplate());
+
+ return template.toString();
+
+
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/store/controller/ControllerConstants.java b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/ControllerConstants.java
new file mode 100644
index 0000000..47427b4
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/ControllerConstants.java
@@ -0,0 +1,89 @@
+/**
+ *
+ */
+package com.salesmanager.web.shop.controller;
+
+/**
+ * Interface contain constant for Controller.These constant will be used throughout
+ * sm-shop to providing constant values to various Controllers being used in the
+ * application.
+ * @author Umesh A
+ *
+ */
+public interface ControllerConstants
+{
+
+ final static String REDIRECT="redirect:";
+
+ interface Tiles{
+ interface ShoppingCart{
+ final static String shoppingCart="maincart";
+ }
+
+ interface Category{
+ final static String category="category";
+ }
+
+ interface Product{
+ final static String product="product";
+ }
+
+ interface Items{
+ final static String items_manufacturer="items.manufacturer";
+ }
+
+ interface Customer{
+ final static String customer="customer";
+ final static String customerLogon="customerLogon";
+ final static String review="review";
+ final static String register="register";
+ final static String changePassword="customerPassword";
+ final static String customerOrders="customerOrders";
+ final static String customerOrder="customerOrder";
+ final static String Billing="customerAddress";
+ final static String EditAddress="editCustomerAddress";
+ }
+
+ interface Content{
+ final static String content="content";
+ final static String contactus="contactus";
+ }
+
+ interface Pages{
+ final static String notFound="404";
+ final static String timeout="timeout";
+ }
+
+ interface Merchant{
+ final static String contactUs="contactus";
+ }
+
+ interface Checkout{
+ final static String checkout="checkout";
+ final static String confirmation="confirmation";
+ }
+
+ interface Search{
+ final static String search="search";
+ }
+
+ interface Error {
+ final static String accessDenied = "accessDenied";
+ final static String error = "error";
+ }
+
+
+
+ }
+
+ interface Views
+ {
+ interface Controllers
+ {
+ interface Registration
+ {
+ String RegistrationPage = "shop/customer/registration.html";
+ }
+ }
+ }
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/store/controller/customer/CustomerAccountController.java b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/customer/CustomerAccountController.java
new file mode 100644
index 0000000..da53175
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/customer/CustomerAccountController.java
@@ -0,0 +1,576 @@
+package com.salesmanager.web.shop.controller.customer;
+
+import java.util.Collections;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
+
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.security.authentication.encoding.PasswordEncoder;
+import org.springframework.security.core.Authentication;
+import org.springframework.security.core.context.SecurityContextHolder;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.validation.BindingResult;
+import org.springframework.validation.FieldError;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import com.salesmanager.core.business.customer.model.Customer;
+import com.salesmanager.core.business.customer.model.attribute.CustomerAttribute;
+import com.salesmanager.core.business.customer.model.attribute.CustomerOptionType;
+import com.salesmanager.core.business.customer.service.CustomerService;
+import com.salesmanager.core.business.customer.service.attribute.CustomerAttributeService;
+import com.salesmanager.core.business.customer.service.attribute.CustomerOptionService;
+import com.salesmanager.core.business.customer.service.attribute.CustomerOptionSetService;
+import com.salesmanager.core.business.customer.service.attribute.CustomerOptionValueService;
+import com.salesmanager.core.business.generic.exception.ServiceException;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.order.service.OrderService;
+import com.salesmanager.core.business.reference.country.model.Country;
+import com.salesmanager.core.business.reference.country.service.CountryService;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.business.reference.language.service.LanguageService;
+import com.salesmanager.core.business.reference.zone.service.ZoneService;
+import com.salesmanager.core.utils.ajax.AjaxResponse;
+import com.salesmanager.web.constants.Constants;
+import com.salesmanager.web.entity.customer.Address;
+import com.salesmanager.web.entity.customer.CustomerEntity;
+import com.salesmanager.web.entity.customer.CustomerPassword;
+import com.salesmanager.web.entity.customer.ReadableCustomer;
+import com.salesmanager.web.populator.customer.ReadableCustomerPopulator;
+import com.salesmanager.web.shop.controller.AbstractController;
+import com.salesmanager.web.shop.controller.ControllerConstants;
+import com.salesmanager.web.shop.controller.customer.facade.CustomerFacade;
+import com.salesmanager.web.shop.controller.order.facade.OrderFacade;
+import com.salesmanager.web.utils.EmailTemplatesUtils;
+import com.salesmanager.web.utils.LabelUtils;
+import com.salesmanager.web.utils.LanguageUtils;
+import com.salesmanager.web.utils.LocaleUtils;
+//import com.salesmanager.web.shop.controller.data.CountryData;
+
+/**
+ * Entry point for logged in customers
+ * @author Carl Samson
+ *
+ */
+@Controller
+@RequestMapping("/shop/customer")
+public class CustomerAccountController extends AbstractController {
+
+ private static final String CUSTOMER_ID_PARAMETER = "customer";
+ private static final String BILLING_SECTION="/shop/customer/billing.html";
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(CustomerAccountController.class);
+
+ @Inject
+ private CustomerService customerService;
+
+ @Inject
+ private CustomerOptionService customerOptionService;
+
+ @Inject
+ private CustomerOptionValueService customerOptionValueService;
+
+ @Inject
+ private CustomerOptionSetService customerOptionSetService;
+
+ @Inject
+ private CustomerAttributeService customerAttributeService;
+
+ @Inject
+ private LanguageService languageService;
+
+ @Inject
+ private LanguageUtils languageUtils;
+
+ @Inject
+ private PasswordEncoder passwordEncoder;
+
+
+ @Inject
+ private CountryService countryService;
+
+ @Inject
+ private EmailTemplatesUtils emailTemplatesUtils;
+
+
+ @Inject
+ private ZoneService zoneService;
+
+ @Inject
+ private CustomerFacade customerFacade;
+
+ @Inject
+ private OrderService orderService;
+
+ @Inject
+ private OrderFacade orderFacade;
+
+ @Inject
+ private LabelUtils messages;
+
+
+
+ /**
+ * Dedicated customer logon page
+ * @param model
+ * @param request
+ * @param response
+ * @return
+ * @throws Exception
+ */
+ @RequestMapping(value="/customLogon.html", method=RequestMethod.GET)
+ public String displayLogon(Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+
+ MerchantStore store = getSessionAttribute(Constants.MERCHANT_STORE, request);
+
+
+ //dispatch to dedicated customer logon
+
+ /** template **/
+ StringBuilder template = new StringBuilder().append(ControllerConstants.Tiles.Customer.customerLogon).append(".").append(store.getStoreTemplate());
+
+ return template.toString();
+
+ }
+
+
+ @RequestMapping(value="/accountSummary.html", method=RequestMethod.GET)
+ public @ResponseBody ReadableCustomer customerInformation(@RequestParam String userName, Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+
+ MerchantStore store = getSessionAttribute(Constants.MERCHANT_STORE, request);
+
+ Authentication auth = SecurityContextHolder.getContext().getAuthentication();
+ Customer customer = null;
+ if(auth != null &&
+ request.isUserInRole("AUTH_CUSTOMER")) {
+ customer = customerFacade.getCustomerByUserName(auth.getName(), store);
+
+ } else {
+ response.sendError(401, "Customer not authenticated");
+ return null;
+ }
+
+ if(StringUtils.isBlank(userName)) {
+ response.sendError(403, "Customer name required");
+ return null;
+ }
+
+ if(customer==null) {
+ response.sendError(401, "Customer not authenticated");
+ return null;
+ }
+
+ if(!customer.getNick().equals(userName)) {
+ response.sendError(401, "Customer not authenticated");
+ return null;
+ }
+
+
+ ReadableCustomer readableCustomer = new ReadableCustomer();
+
+
+ Language lang = languageUtils.getRequestLanguage(request, response);
+
+ ReadableCustomerPopulator readableCustomerPopulator = new ReadableCustomerPopulator();
+ readableCustomerPopulator.populate(customer, readableCustomer, store, lang);
+
+ return readableCustomer;
+
+ }
+
+ @PreAuthorize("hasRole('AUTH_CUSTOMER')")
+ @RequestMapping(value="/account.html", method=RequestMethod.GET)
+ public String displayCustomerAccount(Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+
+ MerchantStore store = getSessionAttribute(Constants.MERCHANT_STORE, request);
+
+
+
+ /** template **/
+ StringBuilder template = new StringBuilder().append(ControllerConstants.Tiles.Customer.customer).append(".").append(store.getStoreTemplate());
+
+ return template.toString();
+
+ }
+
+ @PreAuthorize("hasRole('AUTH_CUSTOMER')")
+ @RequestMapping(value="/password.html", method=RequestMethod.GET)
+ public String displayCustomerChangePassword(Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+
+ MerchantStore store = getSessionAttribute(Constants.MERCHANT_STORE, request);
+
+ CustomerPassword customerPassword = new CustomerPassword();
+ model.addAttribute("password", customerPassword);
+
+ /** template **/
+ StringBuilder template = new StringBuilder().append(ControllerConstants.Tiles.Customer.changePassword).append(".").append(store.getStoreTemplate());
+
+ return template.toString();
+
+ }
+
+ @PreAuthorize("hasRole('AUTH_CUSTOMER')")
+ @RequestMapping(value="/changePassword.html", method=RequestMethod.POST)
+ public String changePassword(@Valid @ModelAttribute(value="password") CustomerPassword password, BindingResult bindingResult, Model model, HttpServletRequest request, HttpServletResponse response, Locale locale) throws Exception {
+
+
+ MerchantStore store = getSessionAttribute(Constants.MERCHANT_STORE, request);
+
+ /** template **/
+ StringBuilder template = new StringBuilder().append(ControllerConstants.Tiles.Customer.changePassword).append(".").append(store.getStoreTemplate());
+
+ Authentication auth = SecurityContextHolder.getContext().getAuthentication();
+ Customer customer = null;
+ if(auth != null &&
+ request.isUserInRole("AUTH_CUSTOMER")) {
+ customer = customerFacade.getCustomerByUserName(auth.getName(), store);
+
+ }
+
+ if(customer==null) {
+ return "redirect:/"+Constants.SHOP_URI;
+ }
+
+ String currentPassword = password.getCurrentPassword();
+ String encodedCurrentPassword = passwordEncoder.encodePassword(currentPassword, null);
+
+ if(!StringUtils.equals(encodedCurrentPassword, customer.getPassword())) {
+ FieldError error = new FieldError("password","password",messages.getMessage("message.invalidpassword", locale));
+ bindingResult.addError(error);
+ }
+
+
+ if ( bindingResult.hasErrors() )
+ {
+ LOGGER.info( "found {} validation error while validating customer password",
+ bindingResult.getErrorCount() );
+ return template.toString();
+
+ }
+
+ CustomerPassword customerPassword = new CustomerPassword();
+ model.addAttribute("password", customerPassword);
+
+ String newPassword = password.getPassword();
+ String encodedPassword = passwordEncoder.encodePassword(newPassword, null);
+
+ customer.setPassword(encodedPassword);
+
+ customerService.saveOrUpdate(customer);
+
+ emailTemplatesUtils.changePasswordNotificationEmail(customer, store, LocaleUtils.getLocale(customer.getDefaultLanguage()), request.getContextPath());
+
+ model.addAttribute("success", "success");
+
+ return template.toString();
+
+ }
+
+
+
+ /**
+ * Manage the edition of customer attributes
+ * @param request
+ * @param locale
+ * @return
+ * @throws Exception
+ */
+ @PreAuthorize("hasRole('AUTH_CUSTOMER')")
+ @RequestMapping(value={"/attributes/save.html"}, method=RequestMethod.POST, produces="application/json;text/plain;charset=UTF-8")
+ public @ResponseBody String saveCustomerAttributes(HttpServletRequest request, Locale locale) throws Exception {
+
+
+ AjaxResponse resp = new AjaxResponse();
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.MERCHANT_STORE);
+
+ //1=1&2=on&3=eeee&4=on&customer=1
+
+ @SuppressWarnings("rawtypes")
+ Enumeration parameterNames = request.getParameterNames();
+
+
+ Authentication auth = SecurityContextHolder.getContext().getAuthentication();
+ Customer customer = null;
+ if(auth != null &&
+ request.isUserInRole("AUTH_CUSTOMER")) {
+ customer = customerFacade.getCustomerByUserName(auth.getName(), store);
+
+ }
+
+ if(customer==null) {
+ LOGGER.error("Customer id [customer] is not defined in the parameters");
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ return resp.toJSONString();
+ }
+
+
+
+
+ if(customer.getMerchantStore().getId().intValue()!=store.getId().intValue()) {
+ LOGGER.error("Customer id does not belong to current store");
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ return resp.toJSONString();
+ }
+
+ List<CustomerAttribute> customerAttributes = customerAttributeService.getByCustomer(store, customer);
+ Map<Long,CustomerAttribute> customerAttributesMap = new HashMap<Long,CustomerAttribute>();
+
+ for(CustomerAttribute attr : customerAttributes) {
+ customerAttributesMap.put(attr.getCustomerOption().getId(), attr);
+ }
+
+ parameterNames = request.getParameterNames();
+
+ while(parameterNames.hasMoreElements()) {
+
+ String parameterName = (String)parameterNames.nextElement();
+ String parameterValue = request.getParameter(parameterName);
+ try {
+
+ String[] parameterKey = parameterName.split("-");
+ com.salesmanager.core.business.customer.model.attribute.CustomerOption customerOption = null;
+ com.salesmanager.core.business.customer.model.attribute.CustomerOptionValue customerOptionValue = null;
+
+
+ if(CUSTOMER_ID_PARAMETER.equals(parameterName)) {
+ continue;
+ }
+
+ if(parameterKey.length>1) {
+ //parse key - value
+ String key = parameterKey[0];
+ String value = parameterKey[1];
+ //should be on
+ customerOption = customerOptionService.getById(new Long(key));
+ customerOptionValue = customerOptionValueService.getById(new Long(value));
+
+
+
+ } else {
+ customerOption = customerOptionService.getById(new Long(parameterName));
+ customerOptionValue = customerOptionValueService.getById(new Long(parameterValue));
+
+ }
+
+ //get the attribute
+ //CustomerAttribute attribute = customerAttributeService.getByCustomerOptionId(store, customer.getId(), customerOption.getId());
+ CustomerAttribute attribute = customerAttributesMap.get(customerOption.getId());
+ if(attribute==null) {
+ attribute = new CustomerAttribute();
+ attribute.setCustomer(customer);
+ attribute.setCustomerOption(customerOption);
+ } else {
+ customerAttributes.remove(attribute);
+ }
+
+ if(customerOption.getCustomerOptionType().equals(CustomerOptionType.Text.name())) {
+ if(!StringUtils.isBlank(parameterValue)) {
+ attribute.setCustomerOptionValue(customerOptionValue);
+ attribute.setTextValue(parameterValue);
+ } else {
+ attribute.setTextValue(null);
+ }
+ } else {
+ attribute.setCustomerOptionValue(customerOptionValue);
+ }
+
+
+ if(attribute.getId()!=null && attribute.getId().longValue()>0) {
+ if(attribute.getCustomerOptionValue()==null){
+ customerAttributeService.delete(attribute);
+ } else {
+ customerAttributeService.update(attribute);
+ }
+ } else {
+ customerAttributeService.save(attribute);
+ }
+
+
+
+ } catch (Exception e) {
+ LOGGER.error("Cannot get parameter information " + parameterName,e);
+ }
+
+ }
+
+ //and now the remaining to be removed
+ for(CustomerAttribute attr : customerAttributes) {
+ customerAttributeService.delete(attr);
+ }
+
+ //refresh customer
+ Customer c = customerService.getById(customer.getId());
+ super.setSessionAttribute(Constants.CUSTOMER, c, request);
+
+ resp.setStatus(AjaxResponse.RESPONSE_STATUS_SUCCESS);
+ return resp.toJSONString();
+
+
+ }
+
+ @PreAuthorize("hasRole('AUTH_CUSTOMER')")
+ @RequestMapping(value="/billing.html", method=RequestMethod.GET)
+ public String displayCustomerBillingAddress(Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+
+ MerchantStore store = getSessionAttribute(Constants.MERCHANT_STORE, request);
+ Language language = getSessionAttribute(Constants.LANGUAGE, request);
+
+ Authentication auth = SecurityContextHolder.getContext().getAuthentication();
+ Customer customer = null;
+ if(auth != null &&
+ request.isUserInRole("AUTH_CUSTOMER")) {
+ customer = customerFacade.getCustomerByUserName(auth.getName(), store);
+
+ }
+
+ if(customer==null) {
+ return "redirect:/"+Constants.SHOP_URI;
+ }
+
+
+ CustomerEntity customerEntity = customerFacade.getCustomerDataByUserName( customer.getNick(), store, language );
+ if(customer !=null){
+ model.addAttribute( "customer", customerEntity);
+ }
+
+
+ /** template **/
+ StringBuilder template = new StringBuilder().append(ControllerConstants.Tiles.Customer.Billing).append(".").append(store.getStoreTemplate());
+
+ return template.toString();
+
+ }
+
+ @PreAuthorize("hasRole('AUTH_CUSTOMER')")
+ @RequestMapping(value="/editAddress.html", method={RequestMethod.GET,RequestMethod.POST})
+ public String editAddress(final Model model, final HttpServletRequest request,
+ @RequestParam(value = "billingAddress", required = false) Boolean billingAddress) throws Exception {
+ MerchantStore store = getSessionAttribute(Constants.MERCHANT_STORE, request);
+
+ Authentication auth = SecurityContextHolder.getContext().getAuthentication();
+ Customer customer = null;
+ if(auth != null &&
+ request.isUserInRole("AUTH_CUSTOMER")) {
+ customer = customerFacade.getCustomerByUserName(auth.getName(), store);
+
+ }
+
+ if(customer==null) {
+ return "redirect:/"+Constants.SHOP_URI;
+ }
+
+
+
+ Address address=customerFacade.getAddress( customer.getId(), store, billingAddress );
+ model.addAttribute( "address", address);
+ model.addAttribute( "customerId", customer.getId() );
+ StringBuilder template = new StringBuilder().append(ControllerConstants.Tiles.Customer.EditAddress).append(".").append(store.getStoreTemplate());
+ return template.toString();
+ }
+
+
+ @PreAuthorize("hasRole('AUTH_CUSTOMER')")
+ @RequestMapping(value="/updateAddress.html", method={RequestMethod.GET,RequestMethod.POST})
+ public String updateCustomerAddress(@Valid
+ @ModelAttribute("address") Address address,BindingResult bindingResult,final Model model, final HttpServletRequest request,
+ @RequestParam(value = "billingAddress", required = false) Boolean billingAddress) throws Exception {
+
+ MerchantStore store = getSessionAttribute(Constants.MERCHANT_STORE, request);
+
+ Authentication auth = SecurityContextHolder.getContext().getAuthentication();
+ Customer customer = null;
+ if(auth != null &&
+ request.isUserInRole("AUTH_CUSTOMER")) {
+ customer = customerFacade.getCustomerByUserName(auth.getName(), store);
+
+ }
+
+ StringBuilder template = new StringBuilder().append(ControllerConstants.Tiles.Customer.EditAddress).append(".").append(store.getStoreTemplate());
+
+ if(customer==null) {
+ return "redirect:/"+Constants.SHOP_URI;
+ }
+
+ model.addAttribute( "address", address);
+ model.addAttribute( "customerId", customer.getId() );
+
+
+ if(bindingResult.hasErrors()){
+ LOGGER.info( "found {} error(s) while validating customer address ",
+ bindingResult.getErrorCount() );
+ return template.toString();
+ }
+
+
+ Language language = getSessionAttribute(Constants.LANGUAGE, request);
+ customerFacade.updateAddress( customer.getId(), store, address, language);
+
+ Customer c = customerService.getById(customer.getId());
+ super.setSessionAttribute(Constants.CUSTOMER, c, request);
+
+ model.addAttribute("success", "success");
+
+ return template.toString();
+
+ }
+
+
+ @ModelAttribute("countries")
+ protected List<Country> getCountries(final HttpServletRequest request){
+
+ Language language = (Language) request.getAttribute( "LANGUAGE" );
+ try
+ {
+ if ( language == null )
+ {
+ language = (Language) request.getAttribute( "LANGUAGE" );
+ }
+
+ if ( language == null )
+ {
+ language = languageService.getByCode( Constants.DEFAULT_LANGUAGE );
+ }
+
+ List<Country> countryList=countryService.getCountries( language );
+ return countryList;
+ }
+ catch ( ServiceException e )
+ {
+ LOGGER.error( "Error while fetching country list ", e );
+
+ }
+ return Collections.emptyList();
+ }
+
+ //@ModelAttribute("zones")
+ //public List<Zone> getZones(final HttpServletRequest request){
+ // return zoneService.list();
+ //}
+
+
+
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/store/controller/customer/CustomerDashboardController.java b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/customer/CustomerDashboardController.java
new file mode 100644
index 0000000..3078f0d
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/customer/CustomerDashboardController.java
@@ -0,0 +1,135 @@
+package com.salesmanager.web.shop.controller.customer;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.collections.CollectionUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.security.authentication.AuthenticationManager;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+
+import com.salesmanager.core.business.customer.model.Customer;
+import com.salesmanager.core.business.customer.model.attribute.CustomerAttribute;
+import com.salesmanager.core.business.customer.model.attribute.CustomerOptionSet;
+import com.salesmanager.core.business.customer.model.attribute.CustomerOptionType;
+import com.salesmanager.core.business.customer.model.attribute.CustomerOptionValueDescription;
+import com.salesmanager.core.business.customer.service.attribute.CustomerOptionSetService;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.web.admin.entity.customer.attribute.CustomerOption;
+import com.salesmanager.web.admin.entity.customer.attribute.CustomerOptionValue;
+import com.salesmanager.web.constants.Constants;
+import com.salesmanager.web.populator.customer.CustomerOptionPopulator;
+import com.salesmanager.web.shop.controller.AbstractController;
+import com.salesmanager.web.shop.controller.ControllerConstants;
+
+/**
+ * Entry point for logged in customers
+ * @author Carl Samson
+ *
+ */
+@Controller
+@RequestMapping("/shop/customer")
+public class CustomerDashboardController extends AbstractController {
+
+ @Inject
+ private AuthenticationManager customerAuthenticationManager;
+
+ @Inject
+ private CustomerOptionSetService customerOptionSetService;
+
+
+ @PreAuthorize("hasRole('AUTH_CUSTOMER')")
+ @RequestMapping(value="/dashboard.html", method=RequestMethod.GET)
+ public String displayCustomerDashboard(Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+
+ MerchantStore store = getSessionAttribute(Constants.MERCHANT_STORE, request);
+ Language language = (Language)request.getAttribute(Constants.LANGUAGE);
+
+ Customer customer = (Customer)request.getAttribute(Constants.CUSTOMER);
+ getCustomerOptions(model, customer, store, language);
+
+
+ model.addAttribute("section","dashboard");
+
+
+ /** template **/
+ StringBuilder template = new StringBuilder().append(ControllerConstants.Tiles.Customer.customer).append(".").append(store.getStoreTemplate());
+
+ return template.toString();
+
+ }
+
+
+ private void getCustomerOptions(Model model, Customer customer, MerchantStore store, Language language) throws Exception {
+
+ Map<Long,CustomerOption> options = new HashMap<Long,CustomerOption>();
+ //get options
+ List<CustomerOptionSet> optionSet = customerOptionSetService.listByStore(store, language);
+ if(!CollectionUtils.isEmpty(optionSet)) {
+
+
+ CustomerOptionPopulator optionPopulator = new CustomerOptionPopulator();
+
+ Set<CustomerAttribute> customerAttributes = customer.getAttributes();
+
+ for(CustomerOptionSet optSet : optionSet) {
+
+ com.salesmanager.core.business.customer.model.attribute.CustomerOption custOption = optSet.getCustomerOption();
+ if(!custOption.isActive() || !custOption.isPublicOption()) {
+ continue;
+ }
+ CustomerOption customerOption = options.get(custOption.getId());
+
+ optionPopulator.setOptionSet(optSet);
+
+
+
+ if(customerOption==null) {
+ customerOption = new CustomerOption();
+ customerOption.setId(custOption.getId());
+ customerOption.setType(custOption.getCustomerOptionType());
+ customerOption.setName(custOption.getDescriptionsSettoList().get(0).getName());
+
+ }
+
+ optionPopulator.populate(custOption, customerOption, store, language);
+ options.put(customerOption.getId(), customerOption);
+
+ if(!CollectionUtils.isEmpty(customerAttributes)) {
+ for(CustomerAttribute customerAttribute : customerAttributes) {
+ if(customerAttribute.getCustomerOption().getId().longValue()==customerOption.getId()){
+ CustomerOptionValue selectedValue = new CustomerOptionValue();
+ com.salesmanager.core.business.customer.model.attribute.CustomerOptionValue attributeValue = customerAttribute.getCustomerOptionValue();
+ selectedValue.setId(attributeValue.getId());
+ CustomerOptionValueDescription optValue = attributeValue.getDescriptionsSettoList().get(0);
+ selectedValue.setName(optValue.getName());
+ customerOption.setDefaultValue(selectedValue);
+ if(customerOption.getType().equalsIgnoreCase(CustomerOptionType.Text.name())) {
+ selectedValue.setName(customerAttribute.getTextValue());
+ }
+ }
+ }
+ }
+ }
+ }
+
+
+ model.addAttribute("options", options.values());
+
+
+ }
+
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/store/controller/customer/CustomerLoginController.java b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/customer/CustomerLoginController.java
new file mode 100644
index 0000000..1ade681
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/customer/CustomerLoginController.java
@@ -0,0 +1,212 @@
+package com.salesmanager.web.shop.controller.customer;
+
+import javax.servlet.http.Cookie;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.security.authentication.AuthenticationManager;
+import org.springframework.security.core.AuthenticationException;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import com.salesmanager.core.business.catalog.product.service.PricingService;
+import com.salesmanager.core.business.customer.model.Customer;
+import com.salesmanager.core.business.generic.exception.ConversionException;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.business.shoppingcart.model.ShoppingCart;
+import com.salesmanager.core.business.shoppingcart.service.ShoppingCartCalculationService;
+import com.salesmanager.core.business.shoppingcart.service.ShoppingCartService;
+import com.salesmanager.core.utils.ajax.AjaxResponse;
+import com.salesmanager.web.constants.Constants;
+import com.salesmanager.web.entity.customer.SecuredCustomer;
+import com.salesmanager.web.entity.shoppingcart.ShoppingCartData;
+import com.salesmanager.web.populator.shoppingCart.ShoppingCartDataPopulator;
+import com.salesmanager.web.shop.controller.AbstractController;
+import com.salesmanager.web.shop.controller.customer.facade.CustomerFacade;
+import com.salesmanager.web.utils.ImageFilePath;
+
+/**
+ * Custom Spring Security authentication
+ * @author Carl Samson
+ *
+ */
+@Controller
+@RequestMapping("/shop/customer")
+public class CustomerLoginController extends AbstractController {
+
+ @Inject
+ private AuthenticationManager customerAuthenticationManager;
+
+
+ @Inject
+ private CustomerFacade customerFacade;
+
+ @Inject
+ private ShoppingCartService shoppingCartService;
+
+ @Inject
+ private ShoppingCartCalculationService shoppingCartCalculationService;
+
+ @Inject
+ private PricingService pricingService;
+
+
+ @Inject
+ @Qualifier("img")
+ private ImageFilePath imageUtils;
+
+
+ private static final Logger LOG = LoggerFactory.getLogger(CustomerLoginController.class);
+
+
+ private AjaxResponse logon(String userName, String password, String storeCode, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+ AjaxResponse jsonObject = new AjaxResponse();
+
+
+ try {
+
+ LOG.debug("Authenticating user " + userName);
+
+ //user goes to shop filter first so store and language are set
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.MERCHANT_STORE);
+ Language language = (Language)request.getAttribute("LANGUAGE");
+
+ //check if username is from the appropriate store
+ Customer customerModel = customerFacade.getCustomerByUserName(userName, store);
+ if(customerModel==null) {
+ jsonObject.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ return jsonObject;
+ }
+
+ if(!customerModel.getMerchantStore().getCode().equals(storeCode)) {
+ jsonObject.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ return jsonObject;
+ }
+
+ customerFacade.authenticate(customerModel, userName, password);
+ //set customer in the http session
+ super.setSessionAttribute(Constants.CUSTOMER, customerModel, request);
+ jsonObject.setStatus(AjaxResponse.RESPONSE_STATUS_SUCCESS);
+ jsonObject.addEntry(Constants.RESPONSE_KEY_USERNAME, customerModel.getNick());
+
+
+
+
+ LOG.info( "Fetching and merging Shopping Cart data" );
+ String sessionShoppingCartCode= (String)request.getSession().getAttribute( Constants.SHOPPING_CART );
+ if(!StringUtils.isBlank(sessionShoppingCartCode)) {
+ ShoppingCart shoppingCart = customerFacade.mergeCart( customerModel, sessionShoppingCartCode, store, language );
+ ShoppingCartData shoppingCartData=this.populateShoppingCartData(shoppingCart, store, language);
+ if(shoppingCartData !=null){
+ jsonObject.addEntry(Constants.SHOPPING_CART, shoppingCartData.getCode());
+ request.getSession().setAttribute(Constants.SHOPPING_CART, shoppingCartData.getCode());
+
+ //set cart in the cookie
+ Cookie c = new Cookie(Constants.COOKIE_NAME_CART, shoppingCartData.getCode());
+ c.setMaxAge(60 * 24 * 3600);
+ c.setPath(Constants.SLASH);
+ response.addCookie(c);
+
+ } else {
+ //DELETE COOKIE
+ Cookie c = new Cookie(Constants.COOKIE_NAME_CART, "");
+ c.setMaxAge(0);
+ c.setPath(Constants.SLASH);
+ response.addCookie(c);
+ }
+
+
+
+ } else {
+
+ ShoppingCart cartModel = shoppingCartService.getByCustomer(customerModel);
+ if(cartModel!=null) {
+ jsonObject.addEntry( Constants.SHOPPING_CART, cartModel.getShoppingCartCode());
+ request.getSession().setAttribute(Constants.SHOPPING_CART, cartModel.getShoppingCartCode());
+
+ Cookie c = new Cookie(Constants.COOKIE_NAME_CART, cartModel.getShoppingCartCode());
+ c.setMaxAge(60 * 24 * 3600);
+ c.setPath(Constants.SLASH);
+ response.addCookie(c);
+
+ }
+
+
+ }
+
+ StringBuilder cookieValue = new StringBuilder();
+ cookieValue.append(store.getCode()).append("_").append(customerModel.getNick());
+
+ //set username in the cookie
+ Cookie c = new Cookie(Constants.COOKIE_NAME_USER, cookieValue.toString());
+ c.setMaxAge(60 * 24 * 3600);
+ c.setPath(Constants.SLASH);
+ response.addCookie(c);
+
+
+ } catch (AuthenticationException ex) {
+ jsonObject.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ } catch(Exception e) {
+ jsonObject.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ }
+
+ return jsonObject;
+
+
+ }
+ //http://localhost:8080/sm-shop/shop/customer/authenticate.html?userName=shopizer&password=password&storeCode=DEFAULT
+ @RequestMapping(value="/authenticate.html", method=RequestMethod.GET)
+ public @ResponseBody String basicLogon(@RequestParam String userName, @RequestParam String password, @RequestParam String storeCode, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+ AjaxResponse jsonObject = this.logon(userName, password, storeCode, request, response);
+ return jsonObject.toJSONString();
+
+ }
+
+ /**
+ * Customer login entry point
+ * @param securedCustomer
+ * @param request
+ * @param response
+ * @return
+ * @throws Exception
+ */
+ @RequestMapping(value="/logon.html", method=RequestMethod.POST)
+ public @ResponseBody String jsonLogon(@ModelAttribute SecuredCustomer securedCustomer, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+ AjaxResponse jsonObject = this.logon(securedCustomer.getUserName(), securedCustomer.getPassword(), securedCustomer.getStoreCode(), request, response);
+ return jsonObject.toJSONString();
+
+
+ }
+
+ private ShoppingCartData populateShoppingCartData(final ShoppingCart cartModel , final MerchantStore store, final Language language){
+
+ ShoppingCartDataPopulator shoppingCartDataPopulator = new ShoppingCartDataPopulator();
+ shoppingCartDataPopulator.setShoppingCartCalculationService( shoppingCartCalculationService );
+ shoppingCartDataPopulator.setPricingService( pricingService );
+
+ try
+ {
+ return shoppingCartDataPopulator.populate( cartModel , store, language);
+ }
+ catch ( ConversionException ce )
+ {
+ LOG.error( "Error in converting shopping cart to shopping cart data", ce );
+
+ }
+ return null;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/store/controller/customer/CustomerOrdersController.java b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/customer/CustomerOrdersController.java
new file mode 100644
index 0000000..bb75d6a
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/customer/CustomerOrdersController.java
@@ -0,0 +1,160 @@
+package com.salesmanager.web.shop.controller.customer;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.security.core.Authentication;
+import org.springframework.security.core.context.SecurityContextHolder;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import com.salesmanager.core.business.customer.model.Customer;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.merchant.service.MerchantStoreService;
+import com.salesmanager.core.business.order.model.orderproduct.OrderProductDownload;
+import com.salesmanager.core.business.order.service.orderproduct.OrderProductDownloadService;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.business.reference.language.service.LanguageService;
+import com.salesmanager.web.constants.Constants;
+import com.salesmanager.web.entity.order.ReadableOrder;
+import com.salesmanager.web.entity.order.ReadableOrderList;
+import com.salesmanager.web.entity.order.ReadableOrderProductDownload;
+import com.salesmanager.web.populator.order.ReadableOrderProductDownloadPopulator;
+import com.salesmanager.web.shop.controller.AbstractController;
+import com.salesmanager.web.shop.controller.ControllerConstants;
+import com.salesmanager.web.shop.controller.customer.facade.CustomerFacade;
+import com.salesmanager.web.shop.controller.order.facade.OrderFacade;
+import com.salesmanager.web.shop.model.paging.PaginationData;
+
+@Controller
+@RequestMapping(Constants.SHOP_URI + "/customer")
+public class CustomerOrdersController extends AbstractController {
+
+ @Inject
+ private MerchantStoreService merchantStoreService;
+
+ @Inject
+ private LanguageService languageService;
+
+ @Inject
+ private OrderFacade orderFacade;
+
+ @Inject
+ private CustomerFacade customerFacade;
+
+ @Inject
+ private OrderProductDownloadService orderProdctDownloadService;
+
+
+
+
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(CustomerOrdersController.class);
+
+ @PreAuthorize("hasRole('AUTH_CUSTOMER')")
+ @RequestMapping(value="/orders.html", method={RequestMethod.GET,RequestMethod.POST})
+ public String listOrders(Model model, @RequestParam(value = "page", defaultValue = "1") final int page, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+ LOGGER.info( "Fetching orders for current customer" );
+ MerchantStore store = getSessionAttribute(Constants.MERCHANT_STORE, request);
+ Language language = getSessionAttribute(Constants.LANGUAGE, request);
+
+ Authentication auth = SecurityContextHolder.getContext().getAuthentication();
+ Customer customer = null;
+ if(auth != null &&
+ request.isUserInRole("AUTH_CUSTOMER")) {
+ customer = customerFacade.getCustomerByUserName(auth.getName(), store);
+
+ }
+
+ if(customer==null) {
+ return "redirect:/"+Constants.SHOP_URI;
+ }
+
+ PaginationData paginaionData=createPaginaionData(page,Constants.MAX_ORDERS_PAGE);
+ ReadableOrderList readable= orderFacade.getReadableOrderList(store, customer, (paginaionData.getOffset() -1),paginaionData.getPageSize(), language);
+
+ model.addAttribute( "customerOrders", readable);
+ if(readable!=null) {
+ model.addAttribute( "paginationData", calculatePaginaionData(paginaionData,Constants.MAX_ORDERS_PAGE, readable.getTotal()));
+ } else {
+ model.addAttribute( "paginationData", null);
+ }
+
+
+
+ StringBuilder template = new StringBuilder().append(ControllerConstants.Tiles.Customer.customerOrders).append(".").append(store.getStoreTemplate());
+ return template.toString();
+ }
+
+
+ @PreAuthorize("hasRole('AUTH_CUSTOMER')")
+ @RequestMapping(value="/order.html", method={RequestMethod.GET,RequestMethod.POST})
+ public String orderDetails(final Model model,final HttpServletRequest request,@RequestParam(value = "orderId" ,required=true) final String orderId) throws Exception{
+
+ MerchantStore store = getSessionAttribute(Constants.MERCHANT_STORE, request);
+
+ Language language = (Language)request.getAttribute(Constants.LANGUAGE);
+
+ if(StringUtils.isBlank( orderId )){
+ LOGGER.error( "Order Id can not be null or empty" );
+ }
+ LOGGER.info( "Fetching order details for Id " +orderId);
+
+ //get order id
+ Long lOrderId = null;
+ try {
+ lOrderId = Long.parseLong(orderId);
+ } catch(NumberFormatException nfe) {
+ LOGGER.error("Cannot parse orderId to long " + orderId);
+ return "redirect:/"+Constants.SHOP_URI;
+ }
+
+
+ //check if order belongs to customer logged in
+ Authentication auth = SecurityContextHolder.getContext().getAuthentication();
+ Customer customer = null;
+ if(auth != null &&
+ request.isUserInRole("AUTH_CUSTOMER")) {
+ customer = customerFacade.getCustomerByUserName(auth.getName(), store);
+
+ }
+
+ if(customer==null) {
+ return "redirect:/"+Constants.SHOP_URI;
+ }
+
+ ReadableOrder order = orderFacade.getReadableOrder(lOrderId, store, customer.getDefaultLanguage());
+
+ model.addAttribute("order", order);
+
+ //check if any downloads exist for this order
+ List<OrderProductDownload> orderProductDownloads = orderProdctDownloadService.getByOrderId(order.getId());
+ if(CollectionUtils.isNotEmpty(orderProductDownloads)) {
+ ReadableOrderProductDownloadPopulator populator = new ReadableOrderProductDownloadPopulator();
+ List<ReadableOrderProductDownload> downloads = new ArrayList<ReadableOrderProductDownload>();
+ for(OrderProductDownload download : orderProductDownloads) {
+ ReadableOrderProductDownload view = new ReadableOrderProductDownload();
+ populator.populate(download, view, store, language);
+ downloads.add(view);
+ }
+ model.addAttribute("downloads", downloads);
+ }
+
+ StringBuilder template = new StringBuilder().append(ControllerConstants.Tiles.Customer.customerOrder).append(".").append(store.getStoreTemplate());
+ return template.toString();
+
+ }
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/store/controller/customer/CustomerProductReviewController.java b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/customer/CustomerProductReviewController.java
new file mode 100644
index 0000000..9bdc49b
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/customer/CustomerProductReviewController.java
@@ -0,0 +1,234 @@
+package com.salesmanager.web.shop.controller.customer;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Locale;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.validation.BindingResult;
+import org.springframework.validation.FieldError;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import com.salesmanager.core.business.catalog.product.model.Product;
+import com.salesmanager.core.business.catalog.product.model.review.ProductReview;
+import com.salesmanager.core.business.catalog.product.service.PricingService;
+import com.salesmanager.core.business.catalog.product.service.ProductService;
+import com.salesmanager.core.business.catalog.product.service.review.ProductReviewService;
+import com.salesmanager.core.business.customer.model.Customer;
+import com.salesmanager.core.business.customer.service.CustomerService;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.business.reference.language.service.LanguageService;
+import com.salesmanager.web.constants.Constants;
+import com.salesmanager.web.entity.catalog.product.PersistableProductReview;
+import com.salesmanager.web.entity.catalog.product.ReadableProduct;
+import com.salesmanager.web.entity.catalog.product.ReadableProductReview;
+import com.salesmanager.web.populator.catalog.PersistableProductReviewPopulator;
+import com.salesmanager.web.populator.catalog.ReadableProductPopulator;
+import com.salesmanager.web.populator.catalog.ReadableProductReviewPopulator;
+import com.salesmanager.web.shop.controller.AbstractController;
+import com.salesmanager.web.shop.controller.ControllerConstants;
+import com.salesmanager.web.shop.controller.customer.facade.CustomerFacade;
+import com.salesmanager.web.utils.DateUtil;
+import com.salesmanager.web.utils.ImageFilePath;
+import com.salesmanager.web.utils.LabelUtils;
+
+/**
+ * Entry point for logged in customers
+ * @author Carl Samson
+ *
+ */
+@Controller
+@RequestMapping(Constants.SHOP_URI + "/customer")
+public class CustomerProductReviewController extends AbstractController {
+
+ @Inject
+ private ProductService productService;
+
+ @Inject
+ private LanguageService languageService;
+
+ @Inject
+ private PricingService pricingService;
+
+ @Inject
+ private ProductReviewService productReviewService;
+
+ @Inject
+ private CustomerService customerService;
+
+ @Inject
+ private CustomerFacade customerFacade;
+
+ @Inject
+ private LabelUtils messages;
+
+ @Inject
+ @Qualifier("img")
+ private ImageFilePath imageUtils;
+
+ @PreAuthorize("hasRole('AUTH_CUSTOMER')")
+ @RequestMapping(value="/review.html", method=RequestMethod.GET)
+ public String displayProductReview(@RequestParam Long productId, Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+
+ MerchantStore store = getSessionAttribute(Constants.MERCHANT_STORE, request);
+ Language language = super.getLanguage(request);
+
+
+
+ //get product
+ Product product = productService.getById(productId);
+ if(product==null) {
+ return "redirect:" + Constants.SHOP_URI;
+ }
+
+ if(product.getMerchantStore().getId().intValue()!=store.getId().intValue()) {
+ return "redirect:" + Constants.SHOP_URI;
+ }
+
+
+ //create readable product
+ ReadableProduct readableProduct = new ReadableProduct();
+ ReadableProductPopulator readableProductPopulator = new ReadableProductPopulator();
+ readableProductPopulator.setPricingService(pricingService);
+ readableProductPopulator.setimageUtils(imageUtils);
+ readableProductPopulator.populate(product, readableProduct, store, language);
+ model.addAttribute("product", readableProduct);
+
+
+ Customer customer = customerFacade.getCustomerByUserName(request.getRemoteUser(), store);
+
+ List<ProductReview> reviews = productReviewService.getByProduct(product, language);
+ for(ProductReview r : reviews) {
+ if(r.getCustomer().getId().longValue()==customer.getId().longValue()) {
+
+ ReadableProductReviewPopulator reviewPopulator = new ReadableProductReviewPopulator();
+ ReadableProductReview rev = new ReadableProductReview();
+ reviewPopulator.populate(r, rev, store, language);
+
+ model.addAttribute("customerReview", rev);
+ break;
+ }
+ }
+
+
+ ProductReview review = new ProductReview();
+ review.setCustomer(customer);
+ review.setProduct(product);
+
+ ReadableProductReview productReview = new ReadableProductReview();
+ ReadableProductReviewPopulator reviewPopulator = new ReadableProductReviewPopulator();
+ reviewPopulator.populate(review, productReview, store, language);
+
+ model.addAttribute("review", productReview);
+ model.addAttribute("reviews", reviews);
+
+
+ /** template **/
+ StringBuilder template = new StringBuilder().append(ControllerConstants.Tiles.Customer.review).append(".").append(store.getStoreTemplate());
+
+ return template.toString();
+
+ }
+
+
+ @PreAuthorize("hasRole('AUTH_CUSTOMER')")
+ @RequestMapping(value="/review/submit.html", method=RequestMethod.POST)
+ public String submitProductReview(@ModelAttribute("review") PersistableProductReview review, BindingResult bindingResult, Model model, HttpServletRequest request, HttpServletResponse response, Locale locale) throws Exception {
+
+
+ MerchantStore store = getSessionAttribute(Constants.MERCHANT_STORE, request);
+ Language language = getLanguage(request);
+
+ Customer customer = customerFacade.getCustomerByUserName(request.getRemoteUser(), store);
+
+ if(customer==null) {
+ return "redirect:" + Constants.SHOP_URI;
+ }
+
+
+ Product product = productService.getById(review.getProductId());
+ if(product==null) {
+ return "redirect:" + Constants.SHOP_URI;
+ }
+
+ if(StringUtils.isBlank(review.getDescription())) {
+ FieldError error = new FieldError("description","description",messages.getMessage("NotEmpty.review.description", locale));
+ bindingResult.addError(error);
+ }
+
+
+
+ ReadableProduct readableProduct = new ReadableProduct();
+ ReadableProductPopulator readableProductPopulator = new ReadableProductPopulator();
+ readableProductPopulator.setPricingService(pricingService);
+ readableProductPopulator.setimageUtils(imageUtils);
+ readableProductPopulator.populate(product, readableProduct, store, language);
+ model.addAttribute("product", readableProduct);
+
+
+ /** template **/
+ StringBuilder template = new StringBuilder().append(ControllerConstants.Tiles.Customer.review).append(".").append(store.getStoreTemplate());
+
+ if ( bindingResult.hasErrors() )
+ {
+
+ return template.toString();
+
+ }
+
+
+ //check if customer has already evaluated the product
+ List<ProductReview> reviews = productReviewService.getByProduct(product);
+
+ for(ProductReview r : reviews) {
+ if(r.getCustomer().getId().longValue()==customer.getId().longValue()) {
+ ReadableProductReviewPopulator reviewPopulator = new ReadableProductReviewPopulator();
+ ReadableProductReview rev = new ReadableProductReview();
+ reviewPopulator.populate(r, rev, store, language);
+
+ model.addAttribute("customerReview", rev);
+ return template.toString();
+ }
+ }
+
+
+ PersistableProductReviewPopulator populator = new PersistableProductReviewPopulator();
+ populator.setCustomerService(customerService);
+ populator.setLanguageService(languageService);
+ populator.setProductService(productService);
+
+ review.setDate(DateUtil.formatDate(new Date()));
+ review.setCustomerId(customer.getId());
+
+ ProductReview productReview = populator.populate(review, store, language);
+ productReviewService.create(productReview);
+
+ model.addAttribute("review", review);
+ model.addAttribute("success", "success");
+
+ ReadableProductReviewPopulator reviewPopulator = new ReadableProductReviewPopulator();
+ ReadableProductReview rev = new ReadableProductReview();
+ reviewPopulator.populate(productReview, rev, store, language);
+
+ model.addAttribute("customerReview", rev);
+
+ return template.toString();
+
+ }
+
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/store/controller/customer/CustomerRegistrationController.java b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/customer/CustomerRegistrationController.java
new file mode 100644
index 0000000..8ffe286
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/customer/CustomerRegistrationController.java
@@ -0,0 +1,348 @@
+package com.salesmanager.web.shop.controller.customer;
+
+import java.util.Collections;
+import java.util.List;
+import java.util.Locale;
+
+import javax.servlet.http.Cookie;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
+
+import org.apache.commons.lang.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.security.authentication.AuthenticationManager;
+import org.springframework.security.authentication.encoding.PasswordEncoder;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.validation.BindingResult;
+import org.springframework.validation.FieldError;
+import org.springframework.validation.ObjectError;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+
+import com.salesmanager.core.business.catalog.product.service.PricingService;
+import com.salesmanager.core.business.customer.CustomerRegistrationException;
+import com.salesmanager.core.business.customer.model.Customer;
+import com.salesmanager.core.business.generic.exception.ConversionException;
+import com.salesmanager.core.business.generic.exception.ServiceException;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.country.model.Country;
+import com.salesmanager.core.business.reference.country.service.CountryService;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.business.reference.language.service.LanguageService;
+import com.salesmanager.core.business.reference.zone.model.Zone;
+import com.salesmanager.core.business.reference.zone.service.ZoneService;
+import com.salesmanager.core.business.shoppingcart.model.ShoppingCart;
+import com.salesmanager.core.business.shoppingcart.service.ShoppingCartCalculationService;
+import com.salesmanager.core.business.system.service.EmailService;
+import com.salesmanager.core.utils.CoreConfiguration;
+import com.salesmanager.web.constants.ApplicationConstants;
+import com.salesmanager.web.constants.Constants;
+import com.salesmanager.web.entity.customer.AnonymousCustomer;
+import com.salesmanager.web.entity.customer.CustomerEntity;
+import com.salesmanager.web.entity.customer.SecuredShopPersistableCustomer;
+import com.salesmanager.web.entity.shoppingcart.ShoppingCartData;
+import com.salesmanager.web.populator.shoppingCart.ShoppingCartDataPopulator;
+import com.salesmanager.web.shop.controller.AbstractController;
+import com.salesmanager.web.shop.controller.ControllerConstants;
+import com.salesmanager.web.shop.controller.customer.facade.CustomerFacade;
+import com.salesmanager.web.utils.CaptchaRequestUtils;
+import com.salesmanager.web.utils.EmailTemplatesUtils;
+import com.salesmanager.web.utils.ImageFilePath;
+import com.salesmanager.web.utils.LabelUtils;
+
+/**
+ * Registration of a new customer
+ * @author Carl Samson
+ *
+ */
+
+@SuppressWarnings( "deprecation" )
+// http://stackoverflow.com/questions/17444258/how-to-use-new-passwordencoder-from-spring-security
+@Controller
+@RequestMapping("/shop/customer")
+public class CustomerRegistrationController extends AbstractController {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(CustomerRegistrationController.class);
+
+
+ @Inject
+ private CoreConfiguration coreConfiguration;
+
+ @Inject
+ private LanguageService languageService;
+
+
+ @Inject
+ private CountryService countryService;
+
+
+ @Inject
+ private ZoneService zoneService;
+
+ @Inject
+ private PasswordEncoder passwordEncoder;
+
+ @Inject
+ EmailService emailService;
+
+ @Inject
+ private LabelUtils messages;
+
+ @Inject
+ private CustomerFacade customerFacade;
+
+ @Inject
+ private AuthenticationManager customerAuthenticationManager;
+
+ @Inject
+ private EmailTemplatesUtils emailTemplatesUtils;
+
+ @Inject
+ private CaptchaRequestUtils captchaRequestUtils;
+
+ @Inject
+ @Qualifier("img")
+ private ImageFilePath imageUtils;
+
+ @Inject
+ private ShoppingCartCalculationService shoppingCartCalculationService;
+
+ @Inject
+ private PricingService pricingService;
+
+
+
+
+ @RequestMapping(value="/registration.html", method=RequestMethod.GET)
+ public String displayRegistration(final Model model, final HttpServletRequest request, final HttpServletResponse response) throws Exception {
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.MERCHANT_STORE);
+
+ model.addAttribute( "recapatcha_public_key", coreConfiguration.getProperty( ApplicationConstants.RECAPTCHA_PUBLIC_KEY ) );
+
+ SecuredShopPersistableCustomer customer = new SecuredShopPersistableCustomer();
+ AnonymousCustomer anonymousCustomer = (AnonymousCustomer)request.getAttribute(Constants.ANONYMOUS_CUSTOMER);
+ if(anonymousCustomer!=null) {
+ customer.setBilling(anonymousCustomer.getBilling());
+ }
+
+ model.addAttribute("customer", customer);
+
+ /** template **/
+ StringBuilder template = new StringBuilder().append(ControllerConstants.Tiles.Customer.register).append(".").append(store.getStoreTemplate());
+
+ return template.toString();
+
+
+ }
+
+ @RequestMapping( value = "/register.html", method = RequestMethod.POST )
+ public String registerCustomer( @Valid
+ @ModelAttribute("customer") SecuredShopPersistableCustomer customer, BindingResult bindingResult, Model model,
+ HttpServletRequest request, HttpServletResponse response, final Locale locale )
+ throws Exception
+ {
+ MerchantStore merchantStore = (MerchantStore) request.getAttribute( Constants.MERCHANT_STORE );
+ Language language = super.getLanguage(request);
+
+ String userName = null;
+ String password = null;
+
+ model.addAttribute( "recapatcha_public_key", coreConfiguration.getProperty( ApplicationConstants.RECAPTCHA_PUBLIC_KEY ) );
+
+ if(!StringUtils.isBlank(request.getParameter("g-recaptcha-response"))) {
+ boolean validateCaptcha = captchaRequestUtils.checkCaptcha(request.getParameter("g-recaptcha-response"));
+
+ if ( !validateCaptcha )
+ {
+ LOGGER.debug( "Captcha response does not matched" );
+ FieldError error = new FieldError("captchaChallengeField","captchaChallengeField",messages.getMessage("validaion.recaptcha.not.matched", locale));
+ bindingResult.addError(error);
+ }
+ }
+
+
+ if ( StringUtils.isNotBlank( customer.getUserName() ) )
+ {
+ if ( customerFacade.checkIfUserExists( customer.getUserName(), merchantStore ) )
+ {
+ LOGGER.debug( "Customer with username {} already exists for this store ", customer.getUserName() );
+ FieldError error = new FieldError("userName","userName",messages.getMessage("registration.username.already.exists", locale));
+ bindingResult.addError(error);
+ }
+ userName = customer.getUserName();
+ }
+
+
+ if ( StringUtils.isNotBlank( customer.getPassword() ) && StringUtils.isNotBlank( customer.getCheckPassword() ))
+ {
+ if (! customer.getPassword().equals(customer.getCheckPassword()) )
+ {
+ FieldError error = new FieldError("password","password",messages.getMessage("message.password.checkpassword.identical", locale));
+ bindingResult.addError(error);
+
+ }
+ password = customer.getPassword();
+ }
+
+ if ( bindingResult.hasErrors() )
+ {
+ LOGGER.debug( "found {} validation error while validating in customer registration ",
+ bindingResult.getErrorCount() );
+ StringBuilder template =
+ new StringBuilder().append( ControllerConstants.Tiles.Customer.register ).append( "." ).append( merchantStore.getStoreTemplate() );
+ return template.toString();
+
+ }
+
+ @SuppressWarnings( "unused" )
+ CustomerEntity customerData = null;
+ try
+ {
+ //set user clear password
+ customer.setClearPassword(password);
+ customerData = customerFacade.registerCustomer( customer, merchantStore, language );
+ }
+ catch ( CustomerRegistrationException cre )
+ {
+ LOGGER.error( "Error while registering customer.. ", cre);
+ ObjectError error = new ObjectError("registration",messages.getMessage("registration.failed", locale));
+ bindingResult.addError(error);
+ StringBuilder template =
+ new StringBuilder().append( ControllerConstants.Tiles.Customer.register ).append( "." ).append( merchantStore.getStoreTemplate() );
+ return template.toString();
+ }
+ catch ( Exception e )
+ {
+ LOGGER.error( "Error while registering customer.. ", e);
+ ObjectError error = new ObjectError("registration",messages.getMessage("registration.failed", locale));
+ bindingResult.addError(error);
+ StringBuilder template =
+ new StringBuilder().append( ControllerConstants.Tiles.Customer.register ).append( "." ).append( merchantStore.getStoreTemplate() );
+ return template.toString();
+ }
+
+ /**
+ * Send registration email
+ */
+ emailTemplatesUtils.sendRegistrationEmail( customer, merchantStore, locale, request.getContextPath() );
+
+ /**
+ * Login user
+ */
+
+ try {
+
+ //refresh customer
+ Customer c = customerFacade.getCustomerByUserName(customer.getUserName(), merchantStore);
+ //authenticate
+ customerFacade.authenticate(c, userName, password);
+ super.setSessionAttribute(Constants.CUSTOMER, c, request);
+
+ StringBuilder cookieValue = new StringBuilder();
+ cookieValue.append(merchantStore.getCode()).append("_").append(c.getNick());
+
+ //set username in the cookie
+ Cookie cookie = new Cookie(Constants.COOKIE_NAME_USER, cookieValue.toString());
+ cookie.setMaxAge(60 * 24 * 3600);
+ cookie.setPath(Constants.SLASH);
+ response.addCookie(cookie);
+
+
+ String sessionShoppingCartCode= (String)request.getSession().getAttribute( Constants.SHOPPING_CART );
+ if(!StringUtils.isBlank(sessionShoppingCartCode)) {
+ ShoppingCart shoppingCart = customerFacade.mergeCart( c, sessionShoppingCartCode, merchantStore, language );
+ ShoppingCartData shoppingCartData=this.populateShoppingCartData(shoppingCart, merchantStore, language);
+ if(shoppingCartData !=null) {
+ request.getSession().setAttribute(Constants.SHOPPING_CART, shoppingCartData.getCode());
+ }
+
+ //set username in the cookie
+ Cookie c1 = new Cookie(Constants.COOKIE_NAME_CART, shoppingCartData.getCode());
+ c1.setMaxAge(60 * 24 * 3600);
+ c1.setPath(Constants.SLASH);
+ response.addCookie(c1);
+
+ }
+
+ return "redirect:/shop/customer/dashboard.html";
+
+
+ } catch(Exception e) {
+ LOGGER.error("Cannot authenticate user ",e);
+ ObjectError error = new ObjectError("registration",messages.getMessage("registration.failed", locale));
+ bindingResult.addError(error);
+ }
+
+
+ StringBuilder template =
+ new StringBuilder().append( ControllerConstants.Tiles.Customer.register ).append( "." ).append( merchantStore.getStoreTemplate() );
+ return template.toString();
+
+ }
+
+
+ @ModelAttribute("countryList")
+ public List<Country> getCountries(final HttpServletRequest request){
+
+ Language language = (Language) request.getAttribute( "LANGUAGE" );
+ try
+ {
+ if ( language == null )
+ {
+ language = (Language) request.getAttribute( "LANGUAGE" );
+ }
+
+ if ( language == null )
+ {
+ language = languageService.getByCode( Constants.DEFAULT_LANGUAGE );
+ }
+
+ List<Country> countryList=countryService.getCountries( language );
+ return countryList;
+ }
+ catch ( ServiceException e )
+ {
+ LOGGER.error( "Error while fetching country list ", e );
+
+ }
+ return Collections.emptyList();
+ }
+
+ @ModelAttribute("zoneList")
+ public List<Zone> getZones(final HttpServletRequest request){
+ return zoneService.list();
+ }
+
+
+
+
+
+
+ private ShoppingCartData populateShoppingCartData(final ShoppingCart cartModel , final MerchantStore store, final Language language){
+
+ ShoppingCartDataPopulator shoppingCartDataPopulator = new ShoppingCartDataPopulator();
+ shoppingCartDataPopulator.setShoppingCartCalculationService( shoppingCartCalculationService );
+ shoppingCartDataPopulator.setPricingService( pricingService );
+
+ try
+ {
+ return shoppingCartDataPopulator.populate( cartModel , store, language);
+ }
+ catch ( ConversionException ce )
+ {
+ LOGGER.error( "Error in converting shopping cart to shopping cart data", ce );
+
+ }
+ return null;
+ }
+
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/store/controller/customer/facade/CustomerFacade.java b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/customer/facade/CustomerFacade.java
new file mode 100644
index 0000000..4f42431
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/customer/facade/CustomerFacade.java
@@ -0,0 +1,91 @@
+/**
+ *
+ */
+package com.salesmanager.web.shop.controller.customer.facade;
+
+import com.salesmanager.core.business.customer.model.Customer;
+import com.salesmanager.core.business.customer.service.CustomerService;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.business.shoppingcart.model.ShoppingCart;
+import com.salesmanager.web.entity.customer.Address;
+import com.salesmanager.web.entity.customer.CustomerEntity;
+import com.salesmanager.web.entity.customer.PersistableCustomer;
+import com.salesmanager.web.entity.customer.ReadableCustomer;
+
+/**
+ * <p>Customer facade working as a bridge between {@link CustomerService} and Controller
+ * It will take care about interacting with Service API and doing any pre and post processing
+ * </p>
+ *
+ * @author Umesh Awasthi
+ * @version 1/2
+ *
+ *
+ */
+public interface CustomerFacade
+{
+
+ /**
+ * Method used to fetch customer based on the username and storecode.
+ * Customer username is unique to each store.
+ *
+ * @param userName
+ * @param storeCode
+ * @param store
+ * @param language
+ * @throws Exception
+ *
+ */
+ public CustomerEntity getCustomerDataByUserName(final String userName,final MerchantStore store, final Language language) throws Exception;
+
+ /**
+ * Creates a ReadableCustomer
+ * @param id
+ * @param merchantStore
+ * @param language
+ * @return
+ */
+ public ReadableCustomer getCustomerById(final Long id, final MerchantStore merchantStore, final Language language) throws Exception;
+
+ /**
+ * <p>Method responsible for merging cart during authentication,
+ * Method will perform following operations
+ * <li> Merge Customer Shopping Cart with Session Cart if any.</li>
+ * <li> Convert Customer to {@link CustomerEntity} </li>
+ * </p>
+ *
+ * @param userName username of Customer
+ * @param storeCode storeCode to which user is associated/
+ * @param sessionShoppingCartId session shopping cart, if user already have few items in Cart.
+ * @throws Exception
+ */
+ public ShoppingCart mergeCart(final Customer customer,final String sessionShoppingCartId,final MerchantStore store,final Language language) throws Exception;
+
+ public Customer getCustomerByUserName(final String userName, final MerchantStore store) throws Exception;
+
+ public boolean checkIfUserExists(final String userName,final MerchantStore store) throws Exception;
+
+ public CustomerEntity registerCustomer( final PersistableCustomer customer,final MerchantStore merchantStore, final Language language) throws Exception;
+
+ public Address getAddress(final Long userId, final MerchantStore merchantStore,boolean isBillingAddress) throws Exception;
+
+ public void updateAddress( Long userId, MerchantStore merchantStore, Address address, final Language language )
+ throws Exception;
+
+ public void setCustomerModelDefaultProperties(Customer customer, MerchantStore store) throws Exception;
+ //public Customer populateCustomerModel(PersistableCustomer customer,
+ // MerchantStore merchantStore) throws Exception;
+
+ public void authenticate(Customer customer, String userName, String password) throws Exception;
+
+ Customer getCustomerModel(PersistableCustomer customer,
+ MerchantStore merchantStore, Language language) throws Exception;
+
+ Customer populateCustomerModel(Customer customerModel, PersistableCustomer customer,
+ MerchantStore merchantStore, Language language) throws Exception;
+
+
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/store/controller/customer/facade/CustomerFacadeImpl.java b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/customer/facade/CustomerFacadeImpl.java
new file mode 100644
index 0000000..262a645
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/customer/facade/CustomerFacadeImpl.java
@@ -0,0 +1,554 @@
+/**
+ *
+ */
+package com.salesmanager.web.shop.controller.customer.facade;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang.Validate;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.authentication.AuthenticationManager;
+import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
+import org.springframework.security.authentication.encoding.PasswordEncoder;
+import org.springframework.security.core.Authentication;
+import org.springframework.security.core.GrantedAuthority;
+import org.springframework.security.core.authority.GrantedAuthorityImpl;
+import org.springframework.security.core.context.SecurityContextHolder;
+import org.springframework.stereotype.Service;
+
+import com.salesmanager.core.business.catalog.product.service.PricingService;
+import com.salesmanager.core.business.catalog.product.service.ProductService;
+import com.salesmanager.core.business.catalog.product.service.attribute.ProductAttributeService;
+import com.salesmanager.core.business.customer.CustomerRegistrationException;
+import com.salesmanager.core.business.customer.exception.CustomerNotFoundException;
+import com.salesmanager.core.business.customer.model.Customer;
+import com.salesmanager.core.business.customer.service.CustomerService;
+import com.salesmanager.core.business.customer.service.attribute.CustomerOptionService;
+import com.salesmanager.core.business.customer.service.attribute.CustomerOptionValueService;
+import com.salesmanager.core.business.generic.exception.ConversionException;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.country.model.Country;
+import com.salesmanager.core.business.reference.country.service.CountryService;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.business.reference.language.service.LanguageService;
+import com.salesmanager.core.business.reference.zone.model.Zone;
+import com.salesmanager.core.business.reference.zone.service.ZoneService;
+import com.salesmanager.core.business.shoppingcart.model.ShoppingCart;
+import com.salesmanager.core.business.shoppingcart.service.ShoppingCartCalculationService;
+import com.salesmanager.core.business.shoppingcart.service.ShoppingCartService;
+import com.salesmanager.core.business.system.service.EmailService;
+import com.salesmanager.core.business.user.model.Group;
+import com.salesmanager.core.business.user.model.GroupType;
+import com.salesmanager.core.business.user.model.Permission;
+import com.salesmanager.core.business.user.service.GroupService;
+import com.salesmanager.core.business.user.service.PermissionService;
+import com.salesmanager.web.admin.entity.userpassword.UserReset;
+import com.salesmanager.web.constants.Constants;
+import com.salesmanager.web.entity.customer.Address;
+import com.salesmanager.web.entity.customer.CustomerEntity;
+import com.salesmanager.web.entity.customer.PersistableCustomer;
+import com.salesmanager.web.entity.customer.ReadableCustomer;
+import com.salesmanager.web.populator.customer.CustomerBillingAddressPopulator;
+import com.salesmanager.web.populator.customer.CustomerDeliveryAddressPopulator;
+import com.salesmanager.web.populator.customer.CustomerEntityPopulator;
+import com.salesmanager.web.populator.customer.CustomerPopulator;
+import com.salesmanager.web.populator.customer.PersistableCustomerBillingAddressPopulator;
+import com.salesmanager.web.populator.customer.PersistableCustomerShippingAddressPopulator;
+import com.salesmanager.web.populator.customer.ReadableCustomerPopulator;
+
+
+/**
+ * Customer Facade work as an abstraction layer between Controller and Service layer.
+ * It work as an entry point to service layer.
+ * @author Umesh Awasthi
+ *
+ */
+////http://stackoverflow.com/questions/17444258/how-to-use-new-passwordencoder-from-spring-security
+
+@Service("customerFacade")
+public class CustomerFacadeImpl implements CustomerFacade
+{
+
+ private static final Logger LOG = LoggerFactory.getLogger(CustomerFacadeImpl.class);
+ private final static int USERNAME_LENGTH=6;
+
+
+ @Inject
+ private CustomerService customerService;
+
+ @Inject
+ private ShoppingCartService shoppingCartService;
+
+ @Inject
+ private ShoppingCartCalculationService shoppingCartCalculationService;
+
+ @Inject
+ private PricingService pricingService;
+
+ @Inject
+ private ProductService productService;
+
+ @Inject
+ private ProductAttributeService productAttributeService;
+
+ @Inject
+ private LanguageService languageService;
+
+ @Inject
+ private CustomerOptionValueService customerOptionValueService;
+
+ @Inject
+ private CustomerOptionService customerOptionService;
+
+
+ @Inject
+ private CountryService countryService;
+
+ @Inject
+ private GroupService groupService;
+
+ @Inject
+ private PermissionService permissionService;
+
+ @Inject
+ private ZoneService zoneService;
+
+ @SuppressWarnings( "deprecation" )
+ @Inject
+ private PasswordEncoder passwordEncoder;
+
+ @Inject
+ private EmailService emailService;
+
+ @Inject
+ private AuthenticationManager customerAuthenticationManager;
+
+
+
+
+ /**
+ * Method used to fetch customer based on the username and storecode.
+ * Customer username is unique to each store.
+ *
+ * @param userName
+ * @param storeCode
+ * @throws ConversionException
+ */
+ @Override
+ public CustomerEntity getCustomerDataByUserName( final String userName, final MerchantStore store, final Language language ) throws Exception
+ {
+ LOG.info( "Fetching customer with userName" +userName);
+ Customer customer=customerService.getByNick( userName );
+
+ if(customer !=null){
+ LOG.info( "Found customer, converting to CustomerEntity");
+ try{
+ CustomerEntityPopulator customerEntityPopulator=new CustomerEntityPopulator();
+ return customerEntityPopulator.populate( customer, store, language ); //store, language
+
+ }
+ catch(ConversionException ex){
+ LOG.error( "Error while converting Customer to CustomerEntity", ex );
+ throw new Exception(ex);
+ }
+ }
+
+ return null;
+
+ }
+
+
+ /* (non-Javadoc)
+ * @see com.salesmanager.web.shop.controller.customer.facade#mergeCart(final Customer customerModel, final String sessionShoppingCartId ,final MerchantStore store,final Language language)
+ */
+ @Override
+ public ShoppingCart mergeCart( final Customer customerModel, final String sessionShoppingCartId ,final MerchantStore store,final Language language)
+ throws Exception
+ {
+
+ LOG.debug( "Starting merge cart process" );
+ if(customerModel != null){
+ ShoppingCart customerCart = shoppingCartService.getByCustomer( customerModel );
+ if(StringUtils.isNotBlank( sessionShoppingCartId )){
+ ShoppingCart sessionShoppingCart = shoppingCartService.getByCode( sessionShoppingCartId, store );
+ if(sessionShoppingCart != null){
+ if(customerCart == null){
+ if(sessionShoppingCart.getCustomerId()==null) {//saved shopping cart does not belong to a customer
+ LOG.debug( "Not able to find any shoppingCart with current customer" );
+ //give it to the customer
+ sessionShoppingCart.setCustomerId( customerModel.getId() );
+ shoppingCartService.saveOrUpdate( sessionShoppingCart );
+ customerCart =shoppingCartService.getById( sessionShoppingCart.getId(), store );
+ return customerCart;
+ //return populateShoppingCartData(customerCart,store,language);
+ } else {
+ return null;
+ }
+ }
+ else{
+ if(sessionShoppingCart.getCustomerId()==null) {//saved shopping cart does not belong to a customer
+ //assign it to logged in user
+ LOG.debug( "Customer shopping cart as well session cart is available, merging carts" );
+ customerCart=shoppingCartService.mergeShoppingCarts( customerCart, sessionShoppingCart, store );
+ customerCart =shoppingCartService.getById( customerCart.getId(), store );
+ return customerCart;
+ //return populateShoppingCartData(customerCart,store,language);
+ } else {
+ if(sessionShoppingCart.getCustomerId().longValue()==customerModel.getId().longValue()) {
+ if(!customerCart.getShoppingCartCode().equals(sessionShoppingCart.getShoppingCartCode())) {
+ //merge carts
+ LOG.info( "Customer shopping cart as well session cart is available" );
+ customerCart=shoppingCartService.mergeShoppingCarts( customerCart, sessionShoppingCart, store );
+ customerCart =shoppingCartService.getById( customerCart.getId(), store );
+ return customerCart;
+ //return populateShoppingCartData(customerCart,store,language);
+ } else {
+ return customerCart;
+ //return populateShoppingCartData(sessionShoppingCart,store,language);
+ }
+ } else {
+ //the saved cart belongs to another user
+ return null;
+ }
+ }
+
+
+ }
+ }
+ }
+ else{
+ if(customerCart !=null){
+ //return populateShoppingCartData(customerCart,store,language);
+ return customerCart;
+ }
+ return null;
+
+ }
+ }
+ LOG.info( "Seems some issue with system, unable to find any customer after successful authentication" );
+ return null;
+
+ }
+
+
+
+
+
+ @Override
+ public Customer getCustomerByUserName(String userName, MerchantStore store)
+ throws Exception {
+ return customerService.getByNick( userName, store.getId() );
+ }
+
+
+ /**
+ * <p>
+ * Method to check if given user exists for given username under given store.
+ * System treat username as unique for a given store,
+ * customer is not allowed
+ * to use same username twice for a given store, however it can be used for
+ * different stores.</p>
+ *
+ * @param userName Customer slected userName
+ * @param store store for which customer want to register
+ * @return boolean flag indicating if user exists for given store or not
+ * @throws Exception
+ *
+ */
+ @Override
+ public boolean checkIfUserExists( final String userName, final MerchantStore store )
+ throws Exception
+ {
+ if ( StringUtils.isNotBlank( userName ) && store != null )
+ {
+ Customer customer = customerService.getByNick( userName, store.getId() );
+ if ( customer != null )
+ {
+ LOG.info( "Customer with userName {} already exists for store {} ", userName, store.getStorename() );
+ return true;
+ }
+
+ LOG.info( "No customer found with userName {} for store {} ", userName, store.getStorename());
+ return false;
+
+ }
+ LOG.info( "Either userName is empty or we have not found any value for store" );
+ return false;
+ }
+
+
+ @Override
+ public CustomerEntity registerCustomer( final PersistableCustomer customer,final MerchantStore merchantStore, Language language )
+ throws Exception
+ {
+ LOG.info( "Starting customer registration process.." );
+ Customer customerModel= getCustomerModel(customer,merchantStore,language);
+ if(customerModel == null){
+ LOG.equals( "Unable to create customer in system" );
+ throw new CustomerRegistrationException( "Unable to register customer" );
+ }
+
+ LOG.info( "About to persist customer to database." );
+ customerService.saveOrUpdate( customerModel );
+
+ LOG.info( "Returning customer data to controller.." );
+ return customerEntityPoulator(customerModel,merchantStore);
+ }
+
+ @Override
+ public Customer getCustomerModel(final PersistableCustomer customer,final MerchantStore merchantStore, Language language) throws Exception {
+
+ LOG.info( "Starting to populate customer model from customer data" );
+ Customer customerModel=null;
+ CustomerPopulator populator = new CustomerPopulator();
+ populator.setCountryService(countryService);
+ populator.setCustomerOptionService(customerOptionService);
+ populator.setCustomerOptionValueService(customerOptionValueService);
+ populator.setLanguageService(languageService);
+ populator.setLanguageService(languageService);
+ populator.setZoneService(zoneService);
+
+
+ customerModel= populator.populate( customer, merchantStore, language );
+ //we are creating or resetting a customer
+ if(StringUtils.isBlank(customerModel.getPassword()) && !StringUtils.isBlank(customer.getClearPassword())) {
+ customerModel.setPassword(customer.getClearPassword());
+ }
+ //set groups
+ if(!StringUtils.isBlank(customerModel.getPassword()) && !StringUtils.isBlank(customerModel.getNick())) {
+ customerModel.setPassword(passwordEncoder.encodePassword(customer.getClearPassword(), null));
+ setCustomerModelDefaultProperties(customerModel, merchantStore);
+ }
+
+
+ return customerModel;
+
+ }
+
+
+
+
+ private CustomerEntity customerEntityPoulator(final Customer customerModel,final MerchantStore merchantStore){
+ CustomerEntityPopulator customerPopulator=new CustomerEntityPopulator();
+ try
+ {
+ CustomerEntity customerEntity= customerPopulator.populate( customerModel, merchantStore, merchantStore.getDefaultLanguage() );
+ if(customerEntity !=null){
+ customerEntity.setId( customerModel.getId() );
+ LOG.info( "Retunring populated instance of customer entity" );
+ return customerEntity;
+ }
+ LOG.warn( "Seems some issue with customerEntity populator..retunring null instance of customerEntity " );
+ return null;
+
+ }
+ catch ( ConversionException e )
+ {
+ LOG.error( "Error while converting customer model to customer entity ",e );
+
+ }
+ return null;
+ }
+
+
+ @Override
+ public void setCustomerModelDefaultProperties(Customer customer,
+ MerchantStore store) throws Exception {
+ Validate.notNull(customer, "Customer object cannot be null");
+ if(customer.getId()==null || customer.getId()==0) {
+ if(StringUtils.isBlank(customer.getNick())) {
+ String userName = UserReset.generateRandomString(USERNAME_LENGTH);
+ customer.setNick(userName);
+ }
+ if(StringUtils.isBlank(customer.getPassword())) {
+ String password = UserReset.generateRandomString();
+ String encodedPassword = passwordEncoder.encodePassword(password, null);
+ customer.setPassword(encodedPassword);
+ }
+ }
+
+ if(CollectionUtils.isEmpty(customer.getGroups())) {
+ List<Group> groups = groupService.listGroup(GroupType.CUSTOMER);
+ for(Group group : groups) {
+ if(group.getGroupName().equals(Constants.GROUP_CUSTOMER)) {
+ customer.getGroups().add(group);
+ }
+ }
+
+ }
+
+ }
+
+
+
+
+ @SuppressWarnings("deprecation")
+ public void authenticate(Customer customer, String userName, String password) throws Exception {
+
+ Validate.notNull(customer, "Customer cannot be null");
+
+ Collection<GrantedAuthority> authorities = new ArrayList<GrantedAuthority>();
+ GrantedAuthority role = new GrantedAuthorityImpl(Constants.PERMISSION_CUSTOMER_AUTHENTICATED);//required to login
+ authorities.add(role);
+ List<Integer> groupsId = new ArrayList<Integer>();
+ List<Group> groups = customer.getGroups();
+ if(groups!=null) {
+ for(Group group : groups) {
+ groupsId.add(group.getId());
+
+ }
+ if(groupsId!=null && groupsId.size()>0) {
+ List<Permission> permissions = permissionService.getPermissions(groupsId);
+ for(Permission permission : permissions) {
+ GrantedAuthority auth = new GrantedAuthorityImpl(permission.getPermissionName());
+ authorities.add(auth);
+ }
+ }
+ }
+
+ Authentication authenticationToken =
+ new UsernamePasswordAuthenticationToken(userName, password, authorities);
+
+ Authentication authentication = customerAuthenticationManager.authenticate(authenticationToken);
+
+ SecurityContextHolder.getContext().setAuthentication(authentication);
+
+ }
+
+
+ @Override
+ public Address getAddress( Long userId, final MerchantStore merchantStore,boolean isBillingAddress)
+ throws Exception
+ {
+ LOG.info( "Fetching customer for id {} ", userId);
+ Address address=null;
+ final Customer customerModel=customerService.getById( userId );
+
+ if(customerModel == null){
+ LOG.error( "Customer with ID {} does not exists..", userId);
+ throw new CustomerNotFoundException( "customer with given id does not exists" );
+ }
+
+ if(isBillingAddress){
+ LOG.info( "getting billing address.." );
+ CustomerBillingAddressPopulator billingAddressPopulator=new CustomerBillingAddressPopulator();
+ address =billingAddressPopulator.populate( customerModel, merchantStore, merchantStore.getDefaultLanguage() );
+ address.setBillingAddress( true );
+ return address;
+ }
+
+ LOG.info( "getting Delivery address.." );
+ CustomerDeliveryAddressPopulator deliveryAddressPopulator=new CustomerDeliveryAddressPopulator();
+ return deliveryAddressPopulator.populate( customerModel, merchantStore, merchantStore.getDefaultLanguage() );
+
+ }
+
+
+ @Override
+ public void updateAddress( Long userId, MerchantStore merchantStore, Address address, final Language language )
+ throws Exception
+ {
+
+ Customer customerModel=customerService.getById( userId );
+ Map<String, Country> countriesMap = countryService.getCountriesMap( language );
+ Country country = countriesMap.get( address.getCountry() );
+
+ if(customerModel ==null){
+ LOG.error( "Customer with ID {} does not exists..", userId);
+ throw new CustomerNotFoundException( "customer with given id does not exists" );
+
+ }
+ if(address.isBillingAddress()){
+ LOG.info( "updating customer billing address..");
+ PersistableCustomerBillingAddressPopulator billingAddressPopulator=new PersistableCustomerBillingAddressPopulator();
+ customerModel= billingAddressPopulator.populate( address, customerModel, merchantStore, merchantStore.getDefaultLanguage() );
+ customerModel.getBilling().setCountry( country );
+ if(StringUtils.isNotBlank( address.getZone() )){
+ Zone zone = zoneService.getByCode(address.getZone());
+ if(zone==null) {
+ throw new ConversionException("Unsuported zone code " + address.getZone());
+ }
+ customerModel.getBilling().setZone( zone );
+ customerModel.getBilling().setState(null);
+
+ } else {
+ customerModel.getBilling().setZone(null);
+ }
+
+ }
+ else{
+ LOG.info( "updating customer shipping address..");
+ PersistableCustomerShippingAddressPopulator shippingAddressPopulator=new PersistableCustomerShippingAddressPopulator();
+ customerModel= shippingAddressPopulator.populate( address, customerModel, merchantStore, merchantStore.getDefaultLanguage() );
+ customerModel.getDelivery().setCountry( country );
+ if(StringUtils.isNotBlank( address.getZone() )){
+ Zone zone = zoneService.getByCode(address.getZone());
+ if(zone==null) {
+ throw new ConversionException("Unsuported zone code " + address.getZone());
+ }
+
+ customerModel.getDelivery().setZone( zone );
+ customerModel.getDelivery().setState(null);
+
+ } else {
+ customerModel.getDelivery().setZone(null);
+ }
+
+ }
+
+
+ // same update address with customer model
+ this.customerService.saveOrUpdate( customerModel );
+
+ }
+
+ @Override
+ public ReadableCustomer getCustomerById(final Long id, final MerchantStore merchantStore, final Language language) throws Exception {
+ Customer customerModel = customerService.getById(id);
+ if(customerModel==null) {
+ return null;
+ }
+
+ ReadableCustomer readableCustomer = new ReadableCustomer();
+
+ ReadableCustomerPopulator customerPopulator = new ReadableCustomerPopulator();
+ customerPopulator.populate(customerModel,readableCustomer, merchantStore, language);
+
+ return readableCustomer;
+ }
+
+
+ @Override
+ public Customer populateCustomerModel(Customer customerModel,
+ PersistableCustomer customer, MerchantStore merchantStore,
+ Language language) throws Exception {
+ LOG.info( "Starting to populate customer model from customer data" );
+ CustomerPopulator populator = new CustomerPopulator();
+ populator.setCountryService(countryService);
+ populator.setCustomerOptionService(customerOptionService);
+ populator.setCustomerOptionValueService(customerOptionValueService);
+ populator.setLanguageService(languageService);
+ populator.setLanguageService(languageService);
+ populator.setZoneService(zoneService);
+
+
+ customerModel= populator.populate( customer, customerModel, merchantStore, language );
+ //set groups
+ //if(!StringUtils.isBlank(customerModel.getPassword()) && !StringUtils.isBlank(customerModel.getNick())) {
+ // customerModel.setPassword(passwordEncoder.encodePassword(customer.getPassword(), null));
+ // setCustomerModelDefaultProperties(customerModel, merchantStore);
+ //}
+
+ LOG.info( "About to persist customer to database." );
+ customerService.saveOrUpdate( customerModel );
+ return customerModel;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/store/controller/items/facade/ProductItemsFacade.java b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/items/facade/ProductItemsFacade.java
new file mode 100644
index 0000000..8366435
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/items/facade/ProductItemsFacade.java
@@ -0,0 +1,18 @@
+package com.salesmanager.web.shop.controller.items.facade;
+
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.web.entity.catalog.product.ReadableProductList;
+
+public interface ProductItemsFacade {
+
+ /**
+ * List items attached to a Manufacturer
+ * @param store
+ * @param language
+ * @param code
+ * @return
+ */
+ ReadableProductList listItemsByManufacturer(MerchantStore store, Language language, Long manufacturerId, int startCount, int maxCount) throws Exception;
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/store/controller/items/facade/ProductItemsFacadeImpl.java b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/items/facade/ProductItemsFacadeImpl.java
new file mode 100644
index 0000000..df7c878
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/items/facade/ProductItemsFacadeImpl.java
@@ -0,0 +1,67 @@
+package com.salesmanager.web.shop.controller.items.facade;
+
+import javax.inject.Inject;
+
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.stereotype.Component;
+
+import com.salesmanager.core.business.catalog.product.model.Product;
+import com.salesmanager.core.business.catalog.product.model.ProductCriteria;
+import com.salesmanager.core.business.catalog.product.service.PricingService;
+import com.salesmanager.core.business.catalog.product.service.ProductService;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.web.entity.catalog.product.ReadableProduct;
+import com.salesmanager.web.entity.catalog.product.ReadableProductList;
+import com.salesmanager.web.populator.catalog.ReadableProductPopulator;
+import com.salesmanager.web.utils.ImageFilePath;
+
+@Component
+public class ProductItemsFacadeImpl implements ProductItemsFacade {
+
+
+ @Inject
+ ProductService productService;
+
+ @Inject
+ PricingService pricingService;
+
+ @Inject
+ @Qualifier("img")
+ private ImageFilePath imageUtils;
+
+ @Override
+ public ReadableProductList listItemsByManufacturer(MerchantStore store,
+ Language language, Long manufacturerId, int startCount, int maxCount) throws Exception {
+
+
+ ProductCriteria productCriteria = new ProductCriteria();
+ productCriteria.setMaxCount(maxCount);
+ productCriteria.setStartIndex(startCount);
+
+
+ productCriteria.setManufacturerId(manufacturerId);
+ com.salesmanager.core.business.catalog.product.model.ProductList products = productService.listByStore(store, language, productCriteria);
+
+
+ ReadableProductPopulator populator = new ReadableProductPopulator();
+ populator.setPricingService(pricingService);
+ populator.setimageUtils(imageUtils);
+
+
+ ReadableProductList productList = new ReadableProductList();
+ for(Product product : products.getProducts()) {
+
+ //create new proxy product
+ ReadableProduct readProduct = populator.populate(product, new ReadableProduct(), store, language);
+ productList.getProducts().add(readProduct);
+
+ }
+
+ productList.setTotalCount(products.getTotalCount());
+
+
+ return productList;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/store/controller/items/ListItemsController.java b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/items/ListItemsController.java
new file mode 100644
index 0000000..210e927
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/items/ListItemsController.java
@@ -0,0 +1,79 @@
+package com.salesmanager.web.shop.controller.items;
+
+import java.util.Locale;
+
+import javax.inject.Inject;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import com.salesmanager.core.business.catalog.product.model.manufacturer.Manufacturer;
+import com.salesmanager.core.business.catalog.product.service.manufacturer.ManufacturerService;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.web.constants.Constants;
+import com.salesmanager.web.entity.catalog.manufacturer.ReadableManufacturer;
+import com.salesmanager.web.entity.shop.PageInformation;
+import com.salesmanager.web.populator.manufacturer.ReadableManufacturerPopulator;
+import com.salesmanager.web.shop.controller.ControllerConstants;
+import com.salesmanager.web.utils.PageBuilderUtils;
+
+/**
+ * Drives various product listings
+ * @author carlsamson
+ *
+ */
+@Controller
+public class ListItemsController {
+
+ @Inject
+ ManufacturerService manufacturerService;
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(ListItemsController.class);
+
+ @RequestMapping("/shop/listing/{url}.html")
+ public String displayListingPage(@PathVariable String url, Model model, HttpServletRequest request, HttpServletResponse response, Locale locale) throws Exception {
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.MERCHANT_STORE);
+
+ Language language = (Language)request.getAttribute("LANGUAGE");
+
+ Manufacturer manufacturer = manufacturerService.getByUrl(store, language, url);
+
+
+
+ if(manufacturer==null) {
+ LOGGER.error("No manufacturer found for url " + url);
+ //redirect on page not found
+ return PageBuilderUtils.build404(store);
+
+ }
+
+ ReadableManufacturer readableManufacturer = new ReadableManufacturer();
+
+ ReadableManufacturerPopulator populator = new ReadableManufacturerPopulator();
+ readableManufacturer = populator.populate(manufacturer, readableManufacturer, store, language);
+
+ //meta information
+ PageInformation pageInformation = new PageInformation();
+ pageInformation.setPageDescription(readableManufacturer.getDescription().getMetaDescription());
+ pageInformation.setPageKeywords(readableManufacturer.getDescription().getKeyWords());
+ pageInformation.setPageTitle(readableManufacturer.getDescription().getTitle());
+ pageInformation.setPageUrl(readableManufacturer.getDescription().getFriendlyUrl());
+
+ model.addAttribute("manufacturer", readableManufacturer);
+
+ /** template **/
+ StringBuilder template = new StringBuilder().append(ControllerConstants.Tiles.Items.items_manufacturer).append(".").append(store.getStoreTemplate());
+
+ return template.toString();
+ }
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/store/controller/LandingController.java b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/LandingController.java
new file mode 100644
index 0000000..011ac00
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/LandingController.java
@@ -0,0 +1,171 @@
+package com.salesmanager.web.shop.controller;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Locale;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+
+import com.salesmanager.core.business.catalog.product.model.Product;
+import com.salesmanager.core.business.catalog.product.model.relationship.ProductRelationship;
+import com.salesmanager.core.business.catalog.product.model.relationship.ProductRelationshipType;
+import com.salesmanager.core.business.catalog.product.service.PricingService;
+import com.salesmanager.core.business.catalog.product.service.relationship.ProductRelationshipService;
+import com.salesmanager.core.business.content.model.Content;
+import com.salesmanager.core.business.content.model.ContentDescription;
+import com.salesmanager.core.business.content.service.ContentService;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.merchant.service.MerchantStoreService;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.web.constants.Constants;
+import com.salesmanager.web.entity.catalog.product.ReadableProduct;
+import com.salesmanager.web.entity.shop.Breadcrumb;
+import com.salesmanager.web.entity.shop.BreadcrumbItem;
+import com.salesmanager.web.entity.shop.BreadcrumbItemType;
+import com.salesmanager.web.entity.shop.PageInformation;
+import com.salesmanager.web.populator.catalog.ReadableProductPopulator;
+import com.salesmanager.web.utils.ImageFilePath;
+import com.salesmanager.web.utils.LabelUtils;
+
+@Controller
+public class LandingController {
+
+
+ private final static String LANDING_PAGE = "LANDING_PAGE";
+
+
+ @Inject
+ private ContentService contentService;
+
+ @Inject
+ private ProductRelationshipService productRelationshipService;
+
+
+ @Inject
+ private LabelUtils messages;
+
+ @Inject
+ private PricingService pricingService;
+
+ @Inject
+ private MerchantStoreService merchantService;
+
+ @Inject
+ @Qualifier("img")
+ private ImageFilePath imageUtils;
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(LandingController.class);
+ private final static String HOME_LINK_CODE="HOME";
+
+ @RequestMapping(value={Constants.SHOP_URI + "/home.html",Constants.SHOP_URI +"/", Constants.SHOP_URI}, method=RequestMethod.GET)
+ public String displayLanding(Model model, HttpServletRequest request, HttpServletResponse response, Locale locale) throws Exception {
+
+ Language language = (Language)request.getAttribute(Constants.LANGUAGE);
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.MERCHANT_STORE);
+
+ request.setAttribute(Constants.LINK_CODE, HOME_LINK_CODE);
+
+ Content content = contentService.getByCode(LANDING_PAGE, store, language);
+
+ /** Rebuild breadcrumb **/
+ BreadcrumbItem item = new BreadcrumbItem();
+ item.setItemType(BreadcrumbItemType.HOME);
+ item.setLabel(messages.getMessage(Constants.HOME_MENU_KEY, locale));
+ item.setUrl(Constants.HOME_URL);
+
+
+ Breadcrumb breadCrumb = new Breadcrumb();
+ breadCrumb.setLanguage(language);
+
+ List<BreadcrumbItem> items = new ArrayList<BreadcrumbItem>();
+ items.add(item);
+
+ breadCrumb.setBreadCrumbs(items);
+ request.getSession().setAttribute(Constants.BREADCRUMB, breadCrumb);
+ request.setAttribute(Constants.BREADCRUMB, breadCrumb);
+ /** **/
+
+ if(content!=null) {
+
+ ContentDescription description = content.getDescription();
+
+
+ model.addAttribute("page",description);
+
+
+ PageInformation pageInformation = new PageInformation();
+ pageInformation.setPageTitle(description.getName());
+ pageInformation.setPageDescription(description.getMetatagDescription());
+ pageInformation.setPageKeywords(description.getMetatagKeywords());
+
+ request.setAttribute(Constants.REQUEST_PAGE_INFORMATION, pageInformation);
+
+ }
+
+ ReadableProductPopulator populator = new ReadableProductPopulator();
+ populator.setPricingService(pricingService);
+ populator.setimageUtils(imageUtils);
+
+
+ //featured items
+ List<ProductRelationship> relationships = productRelationshipService.getByType(store, ProductRelationshipType.FEATURED_ITEM, language);
+ List<ReadableProduct> featuredItems = new ArrayList<ReadableProduct>();
+ for(ProductRelationship relationship : relationships) {
+
+ Product product = relationship.getRelatedProduct();
+ ReadableProduct proxyProduct = populator.populate(product, new ReadableProduct(), store, language);
+
+ featuredItems.add(proxyProduct);
+ }
+
+
+ model.addAttribute("featuredItems", featuredItems);
+
+ /** template **/
+ StringBuilder template = new StringBuilder().append("landing.").append(store.getStoreTemplate());
+ return template.toString();
+ }
+
+ @RequestMapping(value={Constants.SHOP_URI + "/stub.html"}, method=RequestMethod.GET)
+ public String displayHomeStub(Model model, HttpServletRequest request, HttpServletResponse response, Locale locale) throws Exception {
+ return "index";
+ }
+
+ @RequestMapping( value=Constants.SHOP_URI + "/{store}", method=RequestMethod.GET)
+ public String displayStoreLanding(@PathVariable final String store, HttpServletRequest request, HttpServletResponse response) {
+
+ try {
+
+ request.getSession().invalidate();
+ request.getSession().removeAttribute(Constants.MERCHANT_STORE);
+
+ MerchantStore merchantStore = merchantService.getByCode(store);
+ if(merchantStore!=null) {
+ request.getSession().setAttribute(Constants.MERCHANT_STORE, merchantStore);
+ } else {
+ LOGGER.error("MerchantStore does not exist for store code " + store);
+ }
+
+ } catch(Exception e) {
+ LOGGER.error("Error occured while getting store code " + store, e);
+ }
+
+
+
+ return "redirect:" + Constants.SHOP_URI;
+ }
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/store/controller/order/facade/OrderFacade.java b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/order/facade/OrderFacade.java
new file mode 100644
index 0000000..7785b9b
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/order/facade/OrderFacade.java
@@ -0,0 +1,110 @@
+package com.salesmanager.web.shop.controller.order.facade;
+
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+
+import org.springframework.validation.BindingResult;
+
+import com.salesmanager.core.business.customer.model.Customer;
+import com.salesmanager.core.business.generic.exception.ServiceException;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.order.model.Order;
+import com.salesmanager.core.business.order.model.OrderTotalSummary;
+import com.salesmanager.core.business.payments.model.Transaction;
+import com.salesmanager.core.business.reference.country.model.Country;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.business.shipping.model.ShippingQuote;
+import com.salesmanager.core.business.shipping.model.ShippingSummary;
+import com.salesmanager.core.business.shoppingcart.model.ShoppingCart;
+import com.salesmanager.web.entity.customer.PersistableCustomer;
+import com.salesmanager.web.entity.order.PersistableOrder;
+import com.salesmanager.web.entity.order.ReadableOrder;
+import com.salesmanager.web.entity.order.ReadableOrderList;
+import com.salesmanager.web.entity.order.ShopOrder;
+
+
+public interface OrderFacade {
+
+ ShopOrder initializeOrder(MerchantStore store, Customer customer, ShoppingCart shoppingCart, Language language) throws Exception;
+ void refreshOrder(ShopOrder order, MerchantStore store, Customer customer, ShoppingCart shoppingCart, Language language) throws Exception;
+ /** used in website **/
+ OrderTotalSummary calculateOrderTotal(MerchantStore store, ShopOrder order, Language language) throws Exception;
+ /** used in the API **/
+ OrderTotalSummary calculateOrderTotal(MerchantStore store, PersistableOrder order, Language language) throws Exception;
+
+ /** process a valid order **/
+ Order processOrder(ShopOrder order, Customer customer, MerchantStore store, Language language) throws ServiceException;
+ /** process a valid order against an initial transaction **/
+ Order processOrder(ShopOrder order, Customer customer, Transaction transaction, MerchantStore store, Language language) throws ServiceException;
+
+ /** creates a working copy of customer when the user is anonymous **/
+ Customer initEmptyCustomer(MerchantStore store);
+ List<Country> getShipToCountry(MerchantStore store, Language language)
+ throws Exception;
+
+ /**
+ * Get a ShippingQuote based on merchant configuration and items to be shipped
+ * @param cart
+ * @param order
+ * @param store
+ * @param language
+ * @return
+ * @throws Exception
+ */
+ ShippingQuote getShippingQuote(PersistableCustomer customer, ShoppingCart cart, ShopOrder order,
+ MerchantStore store, Language language) throws Exception;
+
+ ShippingQuote getShippingQuote(Customer customer, ShoppingCart cart, PersistableOrder order,
+ MerchantStore store, Language language) throws Exception;
+
+ /**
+ * Creates a ShippingSummary object for OrderTotal calculation based on a ShippingQuote
+ * @param quote
+ * @param store
+ * @param language
+ * @return
+ */
+ ShippingSummary getShippingSummary(ShippingQuote quote, MerchantStore store, Language language);
+ void validateOrder(ShopOrder order, BindingResult bindingResult,
+ Map<String, String> messagesResult, MerchantStore store,
+ Locale locale) throws ServiceException;
+
+ /**
+ * Creates a ReadableOrder object from an orderId
+ * @param orderId
+ * @param store
+ * @param language
+ * @return
+ * @throws Exception
+ */
+ ReadableOrder getReadableOrder(Long orderId, MerchantStore store, Language language) throws Exception;
+
+
+ /**
+ * <p>Method used to fetch all orders associated with customer customer.
+ * It will used current customer ID to fetch all orders which has been
+ * placed by customer for current store.</p>
+ *
+ * @param customer currently logged in customer
+ * @param store store associated with current customer
+ * @return ReadableOrderList
+ * @throws Exception
+ */
+
+ ReadableOrderList getReadableOrderList(MerchantStore store, Customer customer, int start,
+ int maxCount, Language language) throws Exception;
+
+
+ /**
+ * Get orders for a given store
+ * @param store
+ * @param start
+ * @param maxCount
+ * @param language
+ * @return
+ * @throws Exception
+ */
+ ReadableOrderList getReadableOrderList(MerchantStore store, int start,
+ int maxCount, Language language) throws Exception;
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/store/controller/order/ShoppingOrderConfirmationController.java b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/order/ShoppingOrderConfirmationController.java
new file mode 100644
index 0000000..269feee
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/order/ShoppingOrderConfirmationController.java
@@ -0,0 +1,197 @@
+package com.salesmanager.web.shop.controller.order;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.collections.CollectionUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.authentication.AuthenticationManager;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import com.salesmanager.core.business.catalog.product.service.PricingService;
+import com.salesmanager.core.business.catalog.product.service.ProductService;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.order.model.Order;
+import com.salesmanager.core.business.order.model.orderproduct.OrderProductDownload;
+import com.salesmanager.core.business.order.service.OrderService;
+import com.salesmanager.core.business.order.service.orderproduct.OrderProductDownloadService;
+import com.salesmanager.core.business.payments.service.PaymentService;
+import com.salesmanager.core.business.reference.country.model.Country;
+import com.salesmanager.core.business.reference.country.service.CountryService;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.business.reference.zone.model.Zone;
+import com.salesmanager.core.business.reference.zone.service.ZoneService;
+import com.salesmanager.core.business.shipping.service.ShippingService;
+import com.salesmanager.core.business.shoppingcart.service.ShoppingCartService;
+import com.salesmanager.web.constants.Constants;
+import com.salesmanager.web.entity.order.ReadableOrder;
+import com.salesmanager.web.entity.order.ReadableOrderProductDownload;
+import com.salesmanager.web.populator.order.ReadableOrderProductDownloadPopulator;
+import com.salesmanager.web.shop.controller.AbstractController;
+import com.salesmanager.web.shop.controller.ControllerConstants;
+import com.salesmanager.web.shop.controller.customer.facade.CustomerFacade;
+import com.salesmanager.web.shop.controller.order.facade.OrderFacade;
+import com.salesmanager.web.shop.controller.shoppingCart.facade.ShoppingCartFacade;
+import com.salesmanager.web.utils.LabelUtils;
+
+@Controller
+@RequestMapping(Constants.SHOP_URI+"/order")
+public class ShoppingOrderConfirmationController extends AbstractController {
+
+ private static final Logger LOGGER = LoggerFactory
+ .getLogger(ShoppingOrderConfirmationController.class);
+
+ @Inject
+ private ShoppingCartFacade shoppingCartFacade;
+
+ @Inject
+ private ShoppingCartService shoppingCartService;
+
+
+
+ @Inject
+ private PaymentService paymentService;
+
+ @Inject
+ private ShippingService shippingService;
+
+
+ @Inject
+ private OrderService orderService;
+
+ @Inject
+ private ProductService productService;
+
+ @Inject
+ private CountryService countryService;
+
+ @Inject
+ private ZoneService zoneService;
+
+ @Inject
+ private OrderFacade orderFacade;
+
+ @Inject
+ private LabelUtils messages;
+
+ @Inject
+ private PricingService pricingService;
+
+ @Inject
+ private CustomerFacade customerFacade;
+
+ @Inject
+ private AuthenticationManager customerAuthenticationManager;
+
+ @Inject
+ private OrderProductDownloadService orderProdctDownloadService;
+
+ /**
+ * Invoked once the payment is complete and order is fulfilled
+ * @param model
+ * @param request
+ * @param response
+ * @param locale
+ * @return
+ * @throws Exception
+ */
+ @RequestMapping("/confirmation.html")
+ public String displayConfirmation(Model model, HttpServletRequest request, HttpServletResponse response, Locale locale) throws Exception {
+
+ Language language = (Language)request.getAttribute("LANGUAGE");
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.MERCHANT_STORE);
+
+ Long orderId = super.getSessionAttribute(Constants.ORDER_ID, request);
+ if(orderId==null) {
+ return new StringBuilder().append("redirect:").append(Constants.SHOP_URI).toString();
+ }
+
+ //get the order
+ Order order = orderService.getById(orderId);
+ if(order == null) {
+ LOGGER.warn("Order id [" + orderId + "] does not exist");
+ throw new Exception("Order id [" + orderId + "] does not exist");
+ }
+
+ if(order.getMerchant().getId().intValue()!=store.getId().intValue()) {
+ LOGGER.warn("Store id [" + store.getId() + "] differs from order.store.id [" + order.getMerchant().getId() + "]");
+ return new StringBuilder().append("redirect:").append(Constants.SHOP_URI).toString();
+ }
+
+ if(super.getSessionAttribute(Constants.ORDER_ID_TOKEN, request)!=null) {
+ //set this unique token for performing unique operations in the confirmation
+ model.addAttribute("confirmation", "confirmation");
+ }
+
+ //remove unique token
+ super.removeAttribute(Constants.ORDER_ID_TOKEN, request);
+
+
+ String[] orderMessageParams = {store.getStorename()};
+ String orderMessage = messages.getMessage("label.checkout.text", orderMessageParams, locale);
+ model.addAttribute("ordermessage", orderMessage);
+
+ String[] orderIdParams = {String.valueOf(order.getId())};
+ String orderMessageId = messages.getMessage("label.checkout.orderid", orderIdParams, locale);
+ model.addAttribute("ordermessageid", orderMessageId);
+
+ String[] orderEmailParams = {order.getCustomerEmailAddress()};
+ String orderEmailMessage = messages.getMessage("label.checkout.email", orderEmailParams, locale);
+ model.addAttribute("orderemail", orderEmailMessage);
+
+ ReadableOrder readableOrder = orderFacade.getReadableOrder(orderId, store, language);
+
+
+
+ //resolve country and Zone for GA
+ String countryCode = readableOrder.getCustomer().getBilling().getCountry();
+ Map<String,Country> countriesMap = countryService.getCountriesMap(language);
+ Country billingCountry = countriesMap.get(countryCode);
+ if(billingCountry!=null) {
+ readableOrder.getCustomer().getBilling().setCountry(billingCountry.getName());
+ }
+
+ String zoneCode = readableOrder.getCustomer().getBilling().getZone();
+ Map<String,Zone> zonesMap = zoneService.getZones(language);
+ Zone billingZone = zonesMap.get(zoneCode);
+ if(billingZone!=null) {
+ readableOrder.getCustomer().getBilling().setZone(billingZone.getName());
+ }
+
+
+ model.addAttribute("order",readableOrder);
+
+ //check if any downloads exist for this order
+ List<OrderProductDownload> orderProductDownloads = orderProdctDownloadService.getByOrderId(order.getId());
+ if(CollectionUtils.isNotEmpty(orderProductDownloads)) {
+ ReadableOrderProductDownloadPopulator populator = new ReadableOrderProductDownloadPopulator();
+ List<ReadableOrderProductDownload> downloads = new ArrayList<ReadableOrderProductDownload>();
+ for(OrderProductDownload download : orderProductDownloads) {
+ ReadableOrderProductDownload view = new ReadableOrderProductDownload();
+ populator.populate(download, view, store, language);
+ downloads.add(view);
+ }
+ model.addAttribute("downloads", downloads);
+ }
+
+
+ /** template **/
+ StringBuilder template = new StringBuilder().append(ControllerConstants.Tiles.Checkout.confirmation).append(".").append(store.getStoreTemplate());
+ return template.toString();
+
+
+ }
+
+
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/store/controller/order/ShoppingOrderDownloadController.java b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/order/ShoppingOrderDownloadController.java
new file mode 100644
index 0000000..3b14018
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/order/ShoppingOrderDownloadController.java
@@ -0,0 +1,114 @@
+package com.salesmanager.web.shop.controller.order;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import com.salesmanager.core.business.content.model.FileContentType;
+import com.salesmanager.core.business.content.model.OutputContentFile;
+import com.salesmanager.core.business.content.service.ContentService;
+import com.salesmanager.core.business.customer.model.Customer;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.order.model.Order;
+import com.salesmanager.core.business.order.model.orderproduct.OrderProductDownload;
+import com.salesmanager.core.business.order.service.OrderService;
+import com.salesmanager.core.business.order.service.orderproduct.OrderProductDownloadService;
+import com.salesmanager.web.constants.Constants;
+import com.salesmanager.web.shop.controller.AbstractController;
+
+
+@Controller
+@RequestMapping(Constants.SHOP_URI+"/order")
+public class ShoppingOrderDownloadController extends AbstractController {
+
+ private static final Logger LOGGER = LoggerFactory
+ .getLogger(ShoppingOrderDownloadController.class);
+
+ @Inject
+ private ContentService contentService;
+
+ @Inject
+ private OrderService orderService;
+
+ @Inject
+ private OrderProductDownloadService orderProductDownloadService;
+
+ /**
+ * Virtual product(s) download link
+ * @param id
+ * @param model
+ * @param request
+ * @param response
+ * @return
+ * @throws Exception
+ */
+ @PreAuthorize("hasRole('AUTH_CUSTOMER')")
+ @RequestMapping("/download/{orderId}/{id}.html")
+ public @ResponseBody byte[] downloadFile(@PathVariable Long orderId, @PathVariable Long id, Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.MERCHANT_STORE);
+
+
+ FileContentType fileType = FileContentType.PRODUCT_DIGITAL;
+
+ //get customer and check order
+ Order order = orderService.getById(orderId);
+ if(order==null) {
+ LOGGER.warn("Order is null for id " + orderId);
+ response.sendError(404, "Image not found");
+ return null;
+ }
+
+
+ //order belongs to customer
+ Customer customer = (Customer)super.getSessionAttribute(Constants.CUSTOMER, request);
+ if(customer==null) {
+ response.sendError(404, "Image not found");
+ return null;
+ }
+
+
+ String fileName = null;//get it from OrderProductDownlaod
+ OrderProductDownload download = orderProductDownloadService.getById(id);
+ if(download==null) {
+ LOGGER.warn("OrderProductDownload is null for id " + id);
+ response.sendError(404, "Image not found");
+ return null;
+ }
+
+ fileName = download.getOrderProductFilename();
+
+ // needs to query the new API
+ OutputContentFile file =contentService.getContentFile(store.getCode(), fileType, fileName);
+
+
+ if(file!=null) {
+ response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"");
+ return file.getFile().toByteArray();
+ } else {
+ LOGGER.warn("Image not found for OrderProductDownload id " + id);
+ response.sendError(404, "Image not found");
+ return null;
+ }
+
+
+ // product image
+ // example -> /download/12345/120.html
+
+
+ }
+
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/store/controller/order/ShoppingOrderPaymentController.java b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/order/ShoppingOrderPaymentController.java
new file mode 100644
index 0000000..d273cc3
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/order/ShoppingOrderPaymentController.java
@@ -0,0 +1,257 @@
+package com.salesmanager.web.shop.controller.order;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.Set;
+import java.util.TreeMap;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
+
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang3.Validate;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.mobile.device.Device;
+import org.springframework.stereotype.Controller;
+import org.springframework.validation.BeanPropertyBindingResult;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import com.salesmanager.core.business.catalog.product.service.PricingService;
+import com.salesmanager.core.business.customer.service.CustomerService;
+import com.salesmanager.core.business.customer.service.attribute.CustomerOptionService;
+import com.salesmanager.core.business.customer.service.attribute.CustomerOptionValueService;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.order.model.OrderTotalSummary;
+import com.salesmanager.core.business.order.service.OrderService;
+import com.salesmanager.core.business.payments.model.PaypalPayment;
+import com.salesmanager.core.business.payments.model.Transaction;
+import com.salesmanager.core.business.payments.service.PaymentService;
+import com.salesmanager.core.business.payments.service.TransactionService;
+import com.salesmanager.core.business.reference.country.service.CountryService;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.business.reference.language.service.LanguageService;
+import com.salesmanager.core.business.reference.zone.service.ZoneService;
+import com.salesmanager.core.business.shipping.model.ShippingMetaData;
+import com.salesmanager.core.business.shipping.model.ShippingSummary;
+import com.salesmanager.core.business.shoppingcart.model.ShoppingCartItem;
+import com.salesmanager.core.business.shoppingcart.service.ShoppingCartService;
+import com.salesmanager.core.business.system.model.IntegrationConfiguration;
+import com.salesmanager.core.business.system.model.IntegrationModule;
+import com.salesmanager.core.modules.integration.payment.impl.PayPalExpressCheckoutPayment;
+import com.salesmanager.core.modules.integration.payment.model.PaymentModule;
+import com.salesmanager.core.utils.CoreConfiguration;
+import com.salesmanager.core.utils.ajax.AjaxResponse;
+import com.salesmanager.web.constants.Constants;
+import com.salesmanager.web.entity.order.ShopOrder;
+import com.salesmanager.web.shop.controller.AbstractController;
+import com.salesmanager.web.shop.controller.order.facade.OrderFacade;
+import com.salesmanager.web.shop.controller.shoppingCart.facade.ShoppingCartFacade;
+import com.salesmanager.web.utils.LabelUtils;
+
+@Controller
+@RequestMapping(Constants.SHOP_URI)
+public class ShoppingOrderPaymentController extends AbstractController {
+
+ private static final Logger LOGGER = LoggerFactory
+ .getLogger(ShoppingOrderPaymentController.class);
+
+ private final static String INIT_ACTION = "init";
+
+
+ @Inject
+ private ShoppingCartFacade shoppingCartFacade;
+
+ @Inject
+ private ShoppingCartService shoppingCartService;
+
+ @Inject
+ private LanguageService languageService;
+
+ @Inject
+ private PaymentService paymentService;
+
+ @Inject
+ private OrderService orderService;
+
+ @Inject
+ private CountryService countryService;
+
+ @Inject
+ private ZoneService zoneService;
+
+ @Inject
+ private OrderFacade orderFacade;
+
+ @Inject
+ private LabelUtils messages;
+
+ @Inject
+ private PricingService pricingService;
+
+ @Inject
+ private CustomerService customerService;
+
+ @Inject
+ private CustomerOptionService customerOptionService;
+
+ @Inject
+ private CustomerOptionValueService customerOptionValueService;
+
+ @Inject
+ private TransactionService transactionService;
+
+ @Inject
+ private CoreConfiguration coreConfiguration;
+
+ /**
+ * Recalculates shipping and tax following a change in country or province
+ * @param order
+ * @param request
+ * @param response
+ * @param locale
+ * @return
+ * @throws Exception
+ */
+ @RequestMapping(value={"/order/payment/{action}/{paymentmethod}.html"}, method=RequestMethod.POST)
+ public @ResponseBody String paymentAction(@Valid @ModelAttribute(value="order") ShopOrder order, @PathVariable String action, @PathVariable String paymentmethod, Device device, HttpServletRequest request, HttpServletResponse response, Locale locale) throws Exception {
+
+
+
+ Language language = (Language)request.getAttribute("LANGUAGE");
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.MERCHANT_STORE);
+ String shoppingCartCode = getSessionAttribute(Constants.SHOPPING_CART, request);
+
+ Validate.notNull(shoppingCartCode,"shoppingCartCode does not exist in the session");
+ AjaxResponse ajaxResponse = new AjaxResponse();
+
+ try {
+
+
+ com.salesmanager.core.business.shoppingcart.model.ShoppingCart cart = shoppingCartFacade.getShoppingCartModel(shoppingCartCode, store);
+
+ Set<ShoppingCartItem> items = cart.getLineItems();
+ List<ShoppingCartItem> cartItems = new ArrayList<ShoppingCartItem>(items);
+ order.setShoppingCartItems(cartItems);
+
+ //validate order first
+ Map<String,String> messages = new TreeMap<String,String>();
+ orderFacade.validateOrder(order, new BeanPropertyBindingResult(order,"order"), messages, store, locale);
+
+ if(CollectionUtils.isNotEmpty(messages.values())) {
+ for(String key : messages.keySet()) {
+ String value = messages.get(key);
+ ajaxResponse.addValidationMessage(key, value);
+ }
+ ajaxResponse.setStatus(AjaxResponse.RESPONSE_STATUS_VALIDATION_FAILED);
+ return ajaxResponse.toJSONString();
+ }
+
+
+ IntegrationConfiguration config = paymentService.getPaymentConfiguration(order.getPaymentModule(), store);
+ IntegrationModule integrationModule = paymentService.getPaymentMethodByCode(store, order.getPaymentModule());
+
+
+ //OrderTotalSummary orderTotalSummary = orderFacade.calculateOrderTotal(store, order, language);
+ OrderTotalSummary orderTotalSummary = super.getSessionAttribute(Constants.ORDER_SUMMARY, request);
+ if(orderTotalSummary==null) {
+ orderTotalSummary = orderFacade.calculateOrderTotal(store, order, language);
+ super.setSessionAttribute(Constants.ORDER_SUMMARY, orderTotalSummary, request);
+ }
+
+ ShippingSummary summary = (ShippingSummary)request.getSession().getAttribute("SHIPPING_SUMMARY");
+
+ if(summary!=null) {
+ order.setShippingSummary(summary);
+ }
+
+
+
+ if(action.equals(INIT_ACTION)) {
+ if(paymentmethod.equals("PAYPAL")) {
+ try {
+
+
+
+ PaymentModule module = paymentService.getPaymentModule("paypal-express-checkout");
+ PayPalExpressCheckoutPayment p = (PayPalExpressCheckoutPayment)module;
+ PaypalPayment payment = new PaypalPayment();
+ payment.setCurrency(store.getCurrency());
+ Transaction transaction = p.initPaypalTransaction(store, cartItems, orderTotalSummary, payment, config, integrationModule);
+ transactionService.create(transaction);
+
+ super.setSessionAttribute(Constants.INIT_TRANSACTION_KEY, transaction, request);
+
+ //https://www.paypal.com/cgi-bin/webscr?cmd=_express-checkout-mobile&token=tokenValueReturnedFromSetExpressCheckoutCall
+ //For Desktop use
+ //https://www.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=tokenValueReturnedFromSetExpressCheckoutCall
+
+ StringBuilder urlAppender = new StringBuilder();
+
+ if(device!=null) {
+ if(device.isNormal()) {
+ urlAppender.append(coreConfiguration.getProperty("PAYPAL_EXPRESSCHECKOUT_REGULAR"));
+ }
+ if(device.isTablet()) {
+ urlAppender.append(coreConfiguration.getProperty("PAYPAL_EXPRESSCHECKOUT_REGULAR"));
+ }
+ if(device.isMobile()) {
+ urlAppender.append(coreConfiguration.getProperty("PAYPAL_EXPRESSCHECKOUT_MOBILE"));
+ }
+ } else {
+ urlAppender.append(coreConfiguration.getProperty("PAYPAL_EXPRESSCHECKOUT_REGULAR"));
+ }
+
+ urlAppender.append(transaction.getTransactionDetails().get("TOKEN"));
+
+
+
+ if(config.getEnvironment().equals(com.salesmanager.core.constants.Constants.PRODUCTION_ENVIRONMENT)) {
+ StringBuilder url = new StringBuilder().append(coreConfiguration.getProperty("PAYPAL_EXPRESSCHECKOUT_PRODUCTION")).append(urlAppender.toString());
+ ajaxResponse.addEntry("url", url.toString());
+ } else {
+ StringBuilder url = new StringBuilder().append(coreConfiguration.getProperty("PAYPAL_EXPRESSCHECKOUT_SANDBOX")).append(urlAppender.toString());
+ ajaxResponse.addEntry("url", url.toString());
+ }
+
+ //keep order in session when user comes back from pp
+ super.setSessionAttribute(Constants.ORDER, order, request);
+ ajaxResponse.setStatus(AjaxResponse.RESPONSE_OPERATION_COMPLETED);
+
+ } catch(Exception e) {
+ ajaxResponse.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ }
+
+
+ }
+ }
+
+ } catch(Exception e) {
+ LOGGER.error("Error while performing payment action " + action + " for payment method " + paymentmethod ,e);
+ ajaxResponse.setErrorMessage(e);
+ ajaxResponse.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+
+ }
+
+ return ajaxResponse.toJSONString();
+ }
+
+ //cancel - success paypal order
+ @RequestMapping(value={"/paypal/checkout.html/{code}"}, method=RequestMethod.GET)
+ public String returnPayPalPayment(@PathVariable String code, HttpServletRequest request, HttpServletResponse response, Locale locale) throws Exception {
+ if(Constants.SUCCESS.equals(code)) {
+ return "redirect:" + Constants.SHOP_URI + "/order/commitPreAuthorized.html";
+ } else {//process as cancel
+ return "redirect:" + Constants.SHOP_URI + "/order/checkout.html";
+ }
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/store/controller/product/facade/ProductFacade.java b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/product/facade/ProductFacade.java
new file mode 100644
index 0000000..1b19311
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/product/facade/ProductFacade.java
@@ -0,0 +1,53 @@
+package com.salesmanager.web.shop.controller.product.facade;
+
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.web.entity.catalog.product.PersistableProduct;
+import com.salesmanager.web.entity.catalog.product.ProductPriceEntity;
+import com.salesmanager.web.entity.catalog.product.ReadableProduct;
+
+public interface ProductFacade {
+
+ PersistableProduct saveProduct(MerchantStore store, PersistableProduct product, Language language) throws Exception;
+
+ /**
+ * Get a Product by id and store
+ * @param store
+ * @param id
+ * @param language
+ * @return
+ * @throws Exception
+ */
+ ReadableProduct getProduct(MerchantStore store, Long id, Language language) throws Exception;
+
+ /**
+ * Get a product by sku and store
+ * @param store
+ * @param sku
+ * @param language
+ * @return
+ * @throws Exception
+ */
+ ReadableProduct getProduct(MerchantStore store,String sku, Language language) throws Exception;
+
+ /**
+ * Sets a new price to an existing product
+ * @param product
+ * @param price
+ * @param language
+ * @return
+ * @throws Exception
+ */
+ ReadableProduct updateProductPrice(ReadableProduct product, ProductPriceEntity price, Language language) throws Exception;
+
+ /**
+ * Sets a new price to an existing product
+ * @param product
+ * @param quantity
+ * @param language
+ * @return
+ * @throws Exception
+ */
+ ReadableProduct updateProductQuantity(ReadableProduct product, int quantity, Language language) throws Exception;
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/store/controller/product/facade/ProductFacadeImpl.java b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/product/facade/ProductFacadeImpl.java
new file mode 100644
index 0000000..0f31cba
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/product/facade/ProductFacadeImpl.java
@@ -0,0 +1,200 @@
+package com.salesmanager.web.shop.controller.product.facade;
+
+import java.util.Date;
+
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.stereotype.Service;
+
+import com.salesmanager.core.business.catalog.category.service.CategoryService;
+import com.salesmanager.core.business.catalog.product.model.Product;
+import com.salesmanager.core.business.catalog.product.model.availability.ProductAvailability;
+import com.salesmanager.core.business.catalog.product.model.price.ProductPrice;
+import com.salesmanager.core.business.catalog.product.service.PricingService;
+import com.salesmanager.core.business.catalog.product.service.ProductService;
+import com.salesmanager.core.business.catalog.product.service.attribute.ProductOptionService;
+import com.salesmanager.core.business.catalog.product.service.attribute.ProductOptionValueService;
+import com.salesmanager.core.business.catalog.product.service.manufacturer.ManufacturerService;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.business.reference.language.service.LanguageService;
+import com.salesmanager.core.business.tax.service.TaxClassService;
+import com.salesmanager.web.entity.catalog.product.PersistableProduct;
+import com.salesmanager.web.entity.catalog.product.ProductPriceEntity;
+import com.salesmanager.web.entity.catalog.product.ReadableProduct;
+import com.salesmanager.web.populator.catalog.PersistableProductPopulator;
+import com.salesmanager.web.populator.catalog.ReadableProductPopulator;
+import com.salesmanager.web.utils.DateUtil;
+import com.salesmanager.web.utils.ImageFilePath;
+
+@Service("productFacade")
+public class ProductFacadeImpl implements ProductFacade {
+
+ @Inject
+ private CategoryService categoryService;
+
+ @Inject
+ private ManufacturerService manufacturerService;
+
+ @Inject
+ private LanguageService languageService;
+
+ @Inject
+ private ProductOptionService productOptionService;
+
+ @Inject
+ private ProductOptionValueService productOptionValueService;
+
+ @Inject
+ private TaxClassService taxClassService;
+
+ @Inject
+ private ProductService productService;
+
+ @Inject
+ private PricingService pricingService;
+
+ @Inject
+ @Qualifier("img")
+ private ImageFilePath imageUtils;
+
+ @Override
+ public PersistableProduct saveProduct(MerchantStore store, PersistableProduct product, Language language)
+ throws Exception {
+
+
+ PersistableProductPopulator persistableProductPopulator = new PersistableProductPopulator();
+
+ persistableProductPopulator.setCategoryService(categoryService);
+ persistableProductPopulator.setManufacturerService(manufacturerService);
+ persistableProductPopulator.setLanguageService(languageService);
+ persistableProductPopulator.setProductOptionService(productOptionService);
+ persistableProductPopulator.setProductOptionValueService(productOptionValueService);
+ persistableProductPopulator.setTaxClassService(taxClassService);
+
+ Product target = new Product();
+
+ persistableProductPopulator.populate(product, target, store, language);
+
+ productService.saveOrUpdate(target);
+
+ product.setId(target.getId());
+
+ return product;
+
+
+ }
+
+ @Override
+ public ReadableProduct getProduct(MerchantStore store, Long id, Language language)
+ throws Exception {
+
+ Product product = productService.getById(id);
+
+ if(product==null) {
+ return null;
+ }
+
+ ReadableProduct readableProduct = new ReadableProduct();
+
+ ReadableProductPopulator populator = new ReadableProductPopulator();
+
+ populator.setPricingService(pricingService);
+ populator.setimageUtils(imageUtils);
+ populator.populate(product, readableProduct, store, language);
+
+ return readableProduct;
+ }
+
+ @Override
+ public ReadableProduct getProduct(MerchantStore store, String sku,
+ Language language) throws Exception {
+
+ Product product = productService.getByCode(sku, language);
+
+ if(product==null) {
+ return null;
+ }
+
+ ReadableProduct readableProduct = new ReadableProduct();
+
+ ReadableProductPopulator populator = new ReadableProductPopulator();
+
+ populator.setPricingService(pricingService);
+ populator.setimageUtils(imageUtils);
+ populator.populate(product, readableProduct, store, language);
+
+ return readableProduct;
+ }
+
+ @Override
+ public ReadableProduct updateProductPrice(ReadableProduct product,
+ ProductPriceEntity price, Language language) throws Exception {
+
+
+ Product persistable = productService.getById(product.getId());
+
+ if(persistable==null) {
+ throw new Exception("product is null for id " + product.getId());
+ }
+
+ java.util.Set<ProductAvailability> availabilities = persistable.getAvailabilities();
+ for(ProductAvailability availability : availabilities) {
+ ProductPrice productPrice = availability.defaultPrice();
+ productPrice.setProductPriceAmount(price.getOriginalPrice());
+ if(price.isDiscounted()) {
+ productPrice.setProductPriceSpecialAmount(price.getDiscountedPrice());
+ if(!StringUtils.isBlank(price.getDiscountStartDate())) {
+ Date startDate = DateUtil.getDate(price.getDiscountStartDate());
+ productPrice.setProductPriceSpecialStartDate(startDate);
+ }
+ if(!StringUtils.isBlank(price.getDiscountEndDate())) {
+ Date endDate = DateUtil.getDate(price.getDiscountEndDate());
+ productPrice.setProductPriceSpecialEndDate(endDate);
+ }
+ }
+
+ }
+
+ productService.saveOrUpdate(persistable);
+
+ ReadableProduct readableProduct = new ReadableProduct();
+
+ ReadableProductPopulator populator = new ReadableProductPopulator();
+
+ populator.setPricingService(pricingService);
+ populator.setimageUtils(imageUtils);
+ populator.populate(persistable, readableProduct, persistable.getMerchantStore(), language);
+
+ return readableProduct;
+ }
+
+ @Override
+ public ReadableProduct updateProductQuantity(ReadableProduct product,
+ int quantity, Language language) throws Exception {
+ Product persistable = productService.getById(product.getId());
+
+ if(persistable==null) {
+ throw new Exception("product is null for id " + product.getId());
+ }
+
+ java.util.Set<ProductAvailability> availabilities = persistable.getAvailabilities();
+ for(ProductAvailability availability : availabilities) {
+ availability.setProductQuantity(quantity);
+ }
+
+ productService.saveOrUpdate(persistable);
+
+ ReadableProduct readableProduct = new ReadableProduct();
+
+ ReadableProductPopulator populator = new ReadableProductPopulator();
+
+ populator.setPricingService(pricingService);
+ populator.setimageUtils(imageUtils);
+ populator.populate(persistable, readableProduct, persistable.getMerchantStore(), language);
+
+ return readableProduct;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/store/controller/product/ShopProductController.java b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/product/ShopProductController.java
new file mode 100644
index 0000000..8635684
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/product/ShopProductController.java
@@ -0,0 +1,410 @@
+package com.salesmanager.web.shop.controller.product;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.Set;
+import java.util.TreeMap;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import com.salesmanager.core.business.catalog.category.service.CategoryService;
+import com.salesmanager.core.business.catalog.product.model.Product;
+import com.salesmanager.core.business.catalog.product.model.attribute.ProductAttribute;
+import com.salesmanager.core.business.catalog.product.model.attribute.ProductOptionDescription;
+import com.salesmanager.core.business.catalog.product.model.attribute.ProductOptionValue;
+import com.salesmanager.core.business.catalog.product.model.attribute.ProductOptionValueDescription;
+import com.salesmanager.core.business.catalog.product.model.price.FinalPrice;
+import com.salesmanager.core.business.catalog.product.model.relationship.ProductRelationship;
+import com.salesmanager.core.business.catalog.product.model.relationship.ProductRelationshipType;
+import com.salesmanager.core.business.catalog.product.model.review.ProductReview;
+import com.salesmanager.core.business.catalog.product.service.PricingService;
+import com.salesmanager.core.business.catalog.product.service.ProductService;
+import com.salesmanager.core.business.catalog.product.service.attribute.ProductAttributeService;
+import com.salesmanager.core.business.catalog.product.service.relationship.ProductRelationshipService;
+import com.salesmanager.core.business.catalog.product.service.review.ProductReviewService;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.utils.CacheUtils;
+import com.salesmanager.web.constants.Constants;
+import com.salesmanager.web.entity.catalog.product.ReadableProduct;
+import com.salesmanager.web.entity.catalog.product.ReadableProductPrice;
+import com.salesmanager.web.entity.catalog.product.ReadableProductReview;
+import com.salesmanager.web.entity.shop.Breadcrumb;
+import com.salesmanager.web.entity.shop.PageInformation;
+import com.salesmanager.web.populator.catalog.ReadableFinalPricePopulator;
+import com.salesmanager.web.populator.catalog.ReadableProductPopulator;
+import com.salesmanager.web.populator.catalog.ReadableProductReviewPopulator;
+import com.salesmanager.web.shop.controller.ControllerConstants;
+import com.salesmanager.web.shop.model.catalog.Attribute;
+import com.salesmanager.web.shop.model.catalog.AttributeValue;
+import com.salesmanager.web.utils.BreadcrumbsUtils;
+import com.salesmanager.web.utils.ImageFilePath;
+import com.salesmanager.web.utils.LabelUtils;
+import com.salesmanager.web.utils.PageBuilderUtils;
+
+import edu.emory.mathcs.backport.java.util.Arrays;
+
+/**
+ * Populates the product details page
+ * @author Carl Samson
+ *
+ */
+@Controller
+@RequestMapping("/shop/product")
+public class ShopProductController {
+
+ @Inject
+ private ProductService productService;
+
+ @Inject
+ private ProductAttributeService productAttributeService;
+
+ @Inject
+ private ProductRelationshipService productRelationshipService;
+
+ @Inject
+ private PricingService pricingService;
+
+ @Inject
+ private ProductReviewService productReviewService;
+
+ @Inject
+ private LabelUtils messages;
+
+ @Inject
+ private CacheUtils cache;
+
+ @Inject
+ private CategoryService categoryService;
+
+ @Inject
+ private BreadcrumbsUtils breadcrumbsUtils;
+
+ @Inject
+ @Qualifier("img")
+ private ImageFilePath imageUtils;
+
+ private static final Logger LOG = LoggerFactory.getLogger(ShopProductController.class);
+
+
+ /**
+ * Display product details with reference to caller page
+ * @param friendlyUrl
+ * @param ref
+ * @param model
+ * @param request
+ * @param response
+ * @param locale
+ * @return
+ * @throws Exception
+ */
+ @RequestMapping("/{friendlyUrl}.html/ref={ref}")
+ public String displayProductWithReference(@PathVariable final String friendlyUrl, @PathVariable final String ref, Model model, HttpServletRequest request, HttpServletResponse response, Locale locale) throws Exception {
+ return display(ref, friendlyUrl, model, request, response, locale);
+ }
+
+
+ /**
+ * Display product details no reference
+ * @param friendlyUrl
+ * @param model
+ * @param request
+ * @param response
+ * @param locale
+ * @return
+ * @throws Exception
+ */
+ @RequestMapping("/{friendlyUrl}.html")
+ public String displayProduct(@PathVariable final String friendlyUrl, Model model, HttpServletRequest request, HttpServletResponse response, Locale locale) throws Exception {
+ return display(null, friendlyUrl, model, request, response, locale);
+ }
+
+
+ public String display(final String reference, final String friendlyUrl, Model model, HttpServletRequest request, HttpServletResponse response, Locale locale) throws Exception {
+
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.MERCHANT_STORE);
+ Language language = (Language)request.getAttribute("LANGUAGE");
+
+ Product product = productService.getBySeUrl(store, friendlyUrl, locale);
+
+ if(product==null) {
+ return PageBuilderUtils.build404(store);
+ }
+
+ ReadableProductPopulator populator = new ReadableProductPopulator();
+ populator.setPricingService(pricingService);
+ populator.setimageUtils(imageUtils);
+
+ ReadableProduct productProxy = populator.populate(product, new ReadableProduct(), store, language);
+
+ //meta information
+ PageInformation pageInformation = new PageInformation();
+ pageInformation.setPageDescription(productProxy.getDescription().getMetaDescription());
+ pageInformation.setPageKeywords(productProxy.getDescription().getKeyWords());
+ pageInformation.setPageTitle(productProxy.getDescription().getTitle());
+ pageInformation.setPageUrl(productProxy.getDescription().getFriendlyUrl());
+
+ request.setAttribute(Constants.REQUEST_PAGE_INFORMATION, pageInformation);
+
+ Breadcrumb breadCrumb = breadcrumbsUtils.buildProductBreadcrumb(reference, productProxy, store, language, request.getContextPath());
+ request.getSession().setAttribute(Constants.BREADCRUMB, breadCrumb);
+ request.setAttribute(Constants.BREADCRUMB, breadCrumb);
+
+
+
+ StringBuilder relatedItemsCacheKey = new StringBuilder();
+ relatedItemsCacheKey
+ .append(store.getId())
+ .append("_")
+ .append(Constants.RELATEDITEMS_CACHE_KEY)
+ .append("-")
+ .append(language.getCode());
+
+ StringBuilder relatedItemsMissed = new StringBuilder();
+ relatedItemsMissed
+ .append(relatedItemsCacheKey.toString())
+ .append(Constants.MISSED_CACHE_KEY);
+
+ Map<Long,List<ReadableProduct>> relatedItemsMap = null;
+ List<ReadableProduct> relatedItems = null;
+
+ if(store.isUseCache()) {
+
+ //get from the cache
+ relatedItemsMap = (Map<Long,List<ReadableProduct>>) cache.getFromCache(relatedItemsCacheKey.toString());
+ if(relatedItemsMap==null) {
+ //get from missed cache
+ //Boolean missedContent = (Boolean)cache.getFromCache(relatedItemsMissed.toString());
+
+ //if(missedContent==null) {
+ relatedItems = relatedItems(store, product, language);
+ if(relatedItems!=null) {
+ relatedItemsMap = new HashMap<Long,List<ReadableProduct>>();
+ relatedItemsMap.put(product.getId(), relatedItems);
+ cache.putInCache(relatedItemsMap, relatedItemsCacheKey.toString());
+ } else {
+ //cache.putInCache(new Boolean(true), relatedItemsMissed.toString());
+ }
+ //}
+ } else {
+ relatedItems = relatedItemsMap.get(product.getId());
+ }
+ } else {
+ relatedItems = relatedItems(store, product, language);
+ }
+
+ model.addAttribute("relatedProducts",relatedItems);
+ Set<ProductAttribute> attributes = product.getAttributes();
+
+ //split read only and options
+ Map<Long,Attribute> readOnlyAttributes = null;
+ Map<Long,Attribute> selectableOptions = null;
+
+ if(!CollectionUtils.isEmpty(attributes)) {
+ for(ProductAttribute attribute : attributes) {
+ Attribute attr = null;
+ AttributeValue attrValue = new AttributeValue();
+ ProductOptionValue optionValue = attribute.getProductOptionValue();
+
+ if(attribute.getAttributeDisplayOnly()==true) {//read only attribute
+ if(readOnlyAttributes==null) {
+ readOnlyAttributes = new TreeMap<Long,Attribute>();
+ }
+ attr = readOnlyAttributes.get(attribute.getProductOption().getId());
+ if(attr==null) {
+ attr = createAttribute(attribute, language);
+ }
+ if(attr!=null) {
+ readOnlyAttributes.put(attribute.getProductOption().getId(), attr);
+ attr.setReadOnlyValue(attrValue);
+ }
+ } else {//selectable option
+ if(selectableOptions==null) {
+ selectableOptions = new TreeMap<Long,Attribute>();
+ }
+ attr = selectableOptions.get(attribute.getProductOption().getId());
+ if(attr==null) {
+ attr = createAttribute(attribute, language);
+ }
+ if(attr!=null) {
+ selectableOptions.put(attribute.getProductOption().getId(), attr);
+ }
+ }
+
+
+
+ attrValue.setDefaultAttribute(attribute.getAttributeDefault());
+ attrValue.setId(attribute.getId());//id of the attribute
+ attrValue.setLanguage(language.getCode());
+ if(attribute.getProductAttributePrice()!=null && attribute.getProductAttributePrice().doubleValue()>0) {
+ String formatedPrice = pricingService.getDisplayAmount(attribute.getProductAttributePrice(), store);
+ attrValue.setPrice(formatedPrice);
+ }
+
+ if(!StringUtils.isBlank(attribute.getProductOptionValue().getProductOptionValueImage())) {
+ attrValue.setImage(imageUtils.buildProductPropertyimageUtils(store, attribute.getProductOptionValue().getProductOptionValueImage()));
+ }
+
+ List<ProductOptionValueDescription> descriptions = optionValue.getDescriptionsSettoList();
+ ProductOptionValueDescription description = null;
+ if(descriptions!=null && descriptions.size()>0) {
+ description = descriptions.get(0);
+ if(descriptions.size()>1) {
+ for(ProductOptionValueDescription optionValueDescription : descriptions) {
+ if(optionValueDescription.getLanguage().getId().intValue()==language.getId().intValue()) {
+ description = optionValueDescription;
+ break;
+ }
+ }
+ }
+ }
+ attrValue.setName(description.getName());
+ attrValue.setDescription(description.getDescription());
+ List<AttributeValue> attrs = attr.getValues();
+ if(attrs==null) {
+ attrs = new ArrayList<AttributeValue>();
+ attr.setValues(attrs);
+ }
+ attrs.add(attrValue);
+ }
+ }
+
+ List<ProductReview> reviews = productReviewService.getByProduct(product, language);
+ if(!CollectionUtils.isEmpty(reviews)) {
+ List<ReadableProductReview> revs = new ArrayList<ReadableProductReview>();
+ ReadableProductReviewPopulator reviewPopulator = new ReadableProductReviewPopulator();
+ for(ProductReview review : reviews) {
+ ReadableProductReview rev = new ReadableProductReview();
+ reviewPopulator.populate(review, rev, store, language);
+ revs.add(rev);
+ }
+ model.addAttribute("reviews", revs);
+ }
+
+ List<Attribute> attributesList = null;
+ if(readOnlyAttributes!=null) {
+ attributesList = new ArrayList<Attribute>(readOnlyAttributes.values());
+ }
+
+ List<Attribute> optionsList = null;
+ if(selectableOptions!=null) {
+ optionsList = new ArrayList<Attribute>(selectableOptions.values());
+ }
+
+ model.addAttribute("attributes", attributesList);
+ model.addAttribute("options", optionsList);
+
+ model.addAttribute("product", productProxy);
+
+
+ /** template **/
+ StringBuilder template = new StringBuilder().append(ControllerConstants.Tiles.Product.product).append(".").append(store.getStoreTemplate());
+
+ return template.toString();
+ }
+
+ @RequestMapping(value={"/{productId}/calculatePrice.html"}, method=RequestMethod.POST)
+ public @ResponseBody
+ ReadableProductPrice calculatePrice(@RequestParam(value="attributeIds[]") Long[] attributeIds, @PathVariable final Long productId, final HttpServletRequest request, final HttpServletResponse response, final Locale locale) throws Exception {
+
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.MERCHANT_STORE);
+ Language language = (Language)request.getAttribute("LANGUAGE");
+
+
+ Product product = productService.getById(productId);
+
+ @SuppressWarnings("unchecked")
+ List<Long> ids = new ArrayList<Long>(Arrays.asList(attributeIds));
+ List<ProductAttribute> attributes = productAttributeService.getByAttributeIds(store, ids);
+
+ for(ProductAttribute attribute : attributes) {
+ if(attribute.getProduct().getId().longValue()!=productId.longValue()) {
+ return null;
+ }
+ }
+
+ FinalPrice price = pricingService.calculateProductPrice(product, attributes);
+ ReadableProductPrice readablePrice = new ReadableProductPrice();
+ ReadableFinalPricePopulator populator = new ReadableFinalPricePopulator();
+ populator.setPricingService(pricingService);
+ populator.populate(price, readablePrice, store, language);
+ return readablePrice;
+
+ }
+
+ private Attribute createAttribute(ProductAttribute productAttribute, Language language) {
+
+ Attribute attribute = new Attribute();
+ attribute.setId(productAttribute.getProductOption().getId());//attribute of the option
+ attribute.setType(productAttribute.getProductOption().getProductOptionType());
+ List<ProductOptionDescription> descriptions = productAttribute.getProductOption().getDescriptionsSettoList();
+ ProductOptionDescription description = null;
+ if(descriptions!=null && descriptions.size()>0) {
+ description = descriptions.get(0);
+ if(descriptions.size()>1) {
+ for(ProductOptionDescription optionDescription : descriptions) {
+ if(optionDescription.getLanguage().getId().intValue()==language.getId().intValue()) {
+ description = optionDescription;
+ break;
+ }
+ }
+ }
+ }
+
+ if(description==null) {
+ return null;
+ }
+
+ attribute.setType(productAttribute.getProductOption().getProductOptionType());
+ attribute.setLanguage(language.getCode());
+ attribute.setName(description.getName());
+ attribute.setCode(productAttribute.getProductOption().getCode());
+
+ return attribute;
+
+ }
+
+ private List<ReadableProduct> relatedItems(MerchantStore store, Product product, Language language) throws Exception {
+
+
+ ReadableProductPopulator populator = new ReadableProductPopulator();
+ populator.setPricingService(pricingService);
+ populator.setimageUtils(imageUtils);
+
+ List<ProductRelationship> relatedItems = productRelationshipService.getByType(store, product, ProductRelationshipType.RELATED_ITEM);
+ if(relatedItems!=null && relatedItems.size()>0) {
+ List<ReadableProduct> items = new ArrayList<ReadableProduct>();
+ for(ProductRelationship relationship : relatedItems) {
+ Product relatedProduct = relationship.getRelatedProduct();
+ ReadableProduct proxyProduct = populator.populate(relatedProduct, new ReadableProduct(), store, language);
+ items.add(proxyProduct);
+ }
+ return items;
+ }
+
+ return null;
+ }
+
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/store/controller/search/facade/SearchFacade.java b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/search/facade/SearchFacade.java
new file mode 100644
index 0000000..49e9be0
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/search/facade/SearchFacade.java
@@ -0,0 +1,16 @@
+package com.salesmanager.web.shop.controller.search.facade;
+
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+
+/**
+ * Different services for searching and indexing data
+ * @author c.samson
+ *
+ */
+public interface SearchFacade {
+
+
+
+ public void indexAllData(MerchantStore store) throws Exception;
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/store/controller/search/facade/SearchFacadeImpl.java b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/search/facade/SearchFacadeImpl.java
new file mode 100644
index 0000000..31a09c0
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/search/facade/SearchFacadeImpl.java
@@ -0,0 +1,41 @@
+package com.salesmanager.web.shop.controller.search.facade;
+
+import java.util.List;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.stereotype.Service;
+
+import com.salesmanager.core.business.catalog.product.model.Product;
+import com.salesmanager.core.business.catalog.product.service.ProductService;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.search.service.SearchService;
+
+@Service("searchFacade")
+public class SearchFacadeImpl implements SearchFacade {
+
+ @Inject
+ private SearchService searchService;
+
+ @Inject
+ private ProductService productService;
+
+ /**
+ * Index all products from the catalogue
+ * Better stop the system, remove ES indexex manually
+ * restart ES and run this query
+ */
+ @Override
+ @Async
+ public void indexAllData(MerchantStore store) throws Exception {
+
+
+ List<Product> products = productService.listByStore(store);
+
+ for(Product product : products) {
+ searchService.index(store, product);
+ }
+
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/store/controller/search/SearchController.java b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/search/SearchController.java
new file mode 100644
index 0000000..d10a143
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/search/SearchController.java
@@ -0,0 +1,302 @@
+package com.salesmanager.web.shop.controller.search;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.collections.CollectionUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import com.salesmanager.core.business.catalog.category.model.Category;
+import com.salesmanager.core.business.catalog.category.service.CategoryService;
+import com.salesmanager.core.business.catalog.product.model.Product;
+import com.salesmanager.core.business.catalog.product.model.ProductCriteria;
+import com.salesmanager.core.business.catalog.product.model.ProductList;
+import com.salesmanager.core.business.catalog.product.service.PricingService;
+import com.salesmanager.core.business.catalog.product.service.ProductService;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.merchant.service.MerchantStoreService;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.business.reference.language.service.LanguageService;
+import com.salesmanager.core.business.search.model.IndexProduct;
+import com.salesmanager.core.business.search.model.SearchEntry;
+import com.salesmanager.core.business.search.model.SearchFacet;
+import com.salesmanager.core.business.search.model.SearchKeywords;
+import com.salesmanager.core.business.search.model.SearchResponse;
+import com.salesmanager.core.business.search.service.SearchService;
+import com.salesmanager.web.constants.Constants;
+import com.salesmanager.web.entity.catalog.SearchProductList;
+import com.salesmanager.web.entity.catalog.category.ReadableCategory;
+import com.salesmanager.web.entity.catalog.product.ReadableProduct;
+import com.salesmanager.web.populator.catalog.ReadableCategoryPopulator;
+import com.salesmanager.web.populator.catalog.ReadableProductPopulator;
+import com.salesmanager.web.shop.controller.ControllerConstants;
+import com.salesmanager.web.shop.model.search.AutoCompleteRequest;
+import com.salesmanager.web.utils.ImageFilePath;
+
+@Controller
+public class SearchController {
+
+ @Inject
+ private MerchantStoreService merchantStoreService;
+
+ @Inject
+ private LanguageService languageService;
+
+ @Inject
+ private SearchService searchService;
+
+ @Inject
+ private ProductService productService;
+
+ @Inject
+ private CategoryService categoryService;
+
+ @Inject
+ private PricingService pricingService;
+
+ @Inject
+ @Qualifier("img")
+ private ImageFilePath imageUtils;
+
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(SearchController.class);
+
+ private final static int AUTOCOMPLETE_ENTRIES_COUNT = 15;
+ private final static String CATEGORY_FACET_NAME = "categories";
+ private final static String MANUFACTURER_FACET_NAME = "manufacturer";
+
+
+ /**
+ * Retrieves a list of keywords for a given series of character typed by the end user
+ * This is used for auto complete on search input field
+ * @param json
+ * @param store
+ * @param language
+ * @param model
+ * @param request
+ * @param response
+ * @return
+ * @throws Exception
+ */
+ @RequestMapping(value="/services/public/search/{store}/{language}/autocomplete.html", produces="application/json;charset=UTF-8")
+ @ResponseBody
+ public String autocomplete(@RequestParam("q") String query, @PathVariable String store, @PathVariable final String language, Model model, HttpServletRequest request, HttpServletResponse response) {
+
+
+ MerchantStore merchantStore = (MerchantStore)request.getAttribute(Constants.MERCHANT_STORE);
+
+ if(merchantStore!=null) {
+ if(!merchantStore.getCode().equals(store)) {
+ merchantStore = null; //reset for the current request
+ }
+ }
+
+ try {
+
+ if(merchantStore== null) {
+
+ merchantStore = merchantStoreService.getByCode(store);
+
+ }
+
+ if(merchantStore==null) {
+ LOGGER.error("Merchant store is null for code " + store);
+ response.sendError(503, "Merchant store is null for code " + store);//TODO localized message
+ return null;
+ }
+
+ AutoCompleteRequest req = new AutoCompleteRequest(store,language);
+ /** formatted toJSONString because of te specific field names required in the UI **/
+ SearchKeywords keywords = searchService.searchForKeywords(req.getCollectionName(), req.toJSONString(query), AUTOCOMPLETE_ENTRIES_COUNT);
+ return keywords.toJSONString();
+
+ } catch (Exception e) {
+ LOGGER.error("Exception while autocomplete " + e);
+ }
+
+ return null;
+
+ }
+
+
+ /**
+ * Displays the search result page
+ * @param json
+ * @param store
+ * @param language
+ * @param start
+ * @param max
+ * @param model
+ * @param request
+ * @param response
+ * @return
+ * @throws Exception
+ */
+ @RequestMapping("/services/public/search/{store}/{language}/{start}/{max}/term.html")
+ @ResponseBody
+ public SearchProductList search(@RequestBody String json, @PathVariable String store, @PathVariable final String language, @PathVariable int start, @PathVariable int max, Model model, HttpServletRequest request, HttpServletResponse response) {
+
+ SearchProductList returnList = new SearchProductList();
+ MerchantStore merchantStore = (MerchantStore)request.getAttribute(Constants.MERCHANT_STORE);
+
+ try {
+
+ Map<String,Language> langs = languageService.getLanguagesMap();
+
+ if(merchantStore!=null) {
+ if(!merchantStore.getCode().equals(store)) {
+ merchantStore = null; //reset for the current request
+ }
+ }
+
+ if(merchantStore== null) {
+ merchantStore = merchantStoreService.getByCode(store);
+ }
+
+ if(merchantStore==null) {
+ LOGGER.error("Merchant store is null for code " + store);
+ response.sendError(503, "Merchant store is null for code " + store);//TODO localized message
+ return null;
+ }
+
+ Language l = langs.get(language);
+ if(l==null) {
+ l = languageService.getByCode(Constants.DEFAULT_LANGUAGE);
+ }
+
+ SearchResponse resp = searchService.search(merchantStore, language, json, max, start);
+
+ List<SearchEntry> entries = resp.getEntries();
+
+ if(!CollectionUtils.isEmpty(entries)) {
+ List<Long> ids = new ArrayList<Long>();
+ for(SearchEntry entry : entries) {
+ IndexProduct indexedProduct = entry.getIndexProduct();
+ Long id = Long.parseLong(indexedProduct.getId());
+
+ //No highlights
+ ids.add(id);
+ }
+
+ ProductCriteria searchCriteria = new ProductCriteria();
+ searchCriteria.setMaxCount(max);
+ searchCriteria.setStartIndex(start);
+ searchCriteria.setProductIds(ids);
+ searchCriteria.setAvailable(true);
+
+ ProductList productList = productService.listByStore(merchantStore, l, searchCriteria);
+
+ ReadableProductPopulator populator = new ReadableProductPopulator();
+ populator.setPricingService(pricingService);
+ populator.setimageUtils(imageUtils);
+
+ for(Product product : productList.getProducts()) {
+ //create new proxy product
+ ReadableProduct p = populator.populate(product, new ReadableProduct(), merchantStore, l);
+
+ //com.salesmanager.web.entity.catalog.Product p = catalogUtils.buildProxyProduct(product,merchantStore,LocaleUtils.getLocale(l));
+ returnList.getProducts().add(p);
+
+ }
+ returnList.setProductCount(productList.getProducts().size());
+ }
+
+ //Facets
+ Map<String,List<SearchFacet>> facets = resp.getFacets();
+ List<SearchFacet> categoriesFacets = null;
+ List<SearchFacet> manufacturersFacets = null;
+ if(facets!=null) {
+ for(String key : facets.keySet()) {
+ //supports category and manufacturer
+ if(CATEGORY_FACET_NAME.equals(key)) {
+ categoriesFacets = facets.get(key);
+ }
+
+ if(MANUFACTURER_FACET_NAME.equals(key)) {
+ manufacturersFacets = facets.get(key);
+ }
+ }
+
+
+ if(categoriesFacets!=null) {
+ List<String> categoryCodes = new ArrayList<String>();
+ Map<String,Long> productCategoryCount = new HashMap<String,Long>();
+ for(SearchFacet facet : categoriesFacets) {
+ categoryCodes.add(facet.getName());
+ productCategoryCount.put(facet.getKey(), facet.getCount());
+ }
+
+ List<Category> categories = categoryService.listByCodes(merchantStore, categoryCodes, l);
+ List<ReadableCategory> categoryProxies = new ArrayList<ReadableCategory>();
+ ReadableCategoryPopulator populator = new ReadableCategoryPopulator();
+
+ for(Category category : categories) {
+ //com.salesmanager.web.entity.catalog.Category categoryProxy = catalogUtils.buildProxyCategory(category, merchantStore, LocaleUtils.getLocale(l));
+ ReadableCategory categoryProxy = populator.populate(category, new ReadableCategory(), merchantStore, l);
+ Long total = productCategoryCount.get(categoryProxy.getCode());
+ if(total!=null) {
+ categoryProxy.setProductCount(total.intValue());
+ }
+ categoryProxies.add(categoryProxy);
+ }
+ returnList.setCategoryFacets(categoryProxies);
+ }
+
+ //todo manufacturer facets
+ if(manufacturersFacets!=null) {
+
+ }
+
+
+ }
+ } catch (Exception e) {
+ LOGGER.error("Exception occured while querying " + json,e);
+ }
+
+
+
+ return returnList;
+
+ }
+
+ /**
+ * Displays the search page after a search query post
+ * @param query
+ * @param model
+ * @param request
+ * @param response
+ * @param locale
+ * @return
+ * @throws Exception
+ */
+ @RequestMapping(value={"/shop/search/search.html"}, method=RequestMethod.POST)
+ public String displaySearch(@RequestParam("q") String query, Model model, HttpServletRequest request, HttpServletResponse response, Locale locale) throws Exception {
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.MERCHANT_STORE);
+
+ model.addAttribute("q",query);
+
+ /** template **/
+ StringBuilder template = new StringBuilder().append(ControllerConstants.Tiles.Search.search).append(".").append(store.getStoreTemplate());
+ return template.toString();
+ }
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/store/controller/shoppingCart/facade/ShoppingCartFacade.java b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/shoppingCart/facade/ShoppingCartFacade.java
new file mode 100644
index 0000000..0e59f54
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/shoppingCart/facade/ShoppingCartFacade.java
@@ -0,0 +1,49 @@
+/**
+ *
+ */
+package com.salesmanager.web.shop.controller.shoppingCart.facade;
+
+import java.util.List;
+
+import com.salesmanager.core.business.customer.model.Customer;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.business.shoppingcart.model.ShoppingCart;
+import com.salesmanager.web.entity.shoppingcart.ShoppingCartData;
+import com.salesmanager.web.entity.shoppingcart.ShoppingCartItem;
+
+/**
+ * </p>Shopping cart Facade which provide abstraction layer between
+ * SM core module and Controller.
+ * Only Data Object will be exposed to controller by hiding model
+ * object from view.</p>
+ * @author Umesh Awasthi
+ * @version 1.2
+ * @since1.2
+ *
+ */
+
+
+public interface ShoppingCartFacade {
+
+ public ShoppingCartData addItemsToShoppingCart(ShoppingCartData shoppingCart,final ShoppingCartItem item, final MerchantStore store,final Language language,final Customer customer) throws Exception;
+ public ShoppingCart createCartModel(final String shoppingCartCode, final MerchantStore store,final Customer customer) throws Exception;
+ /**
+ * Method responsible for getting shopping cart from
+ * either session or from underlying DB.
+ */
+ public ShoppingCartData getShoppingCartData(final Customer customer,final MerchantStore store,final String shoppingCartId) throws Exception;
+ public ShoppingCartData getShoppingCartData(final ShoppingCart shoppingCart) throws Exception;
+ public ShoppingCartData getShoppingCartData(String code, MerchantStore store) throws Exception;
+ public ShoppingCartData removeCartItem(final Long itemID, final String cartId,final MerchantStore store,final Language language ) throws Exception;
+ public ShoppingCartData updateCartItem(final Long itemID, final String cartId, final long quantity,final MerchantStore store,Language language ) throws Exception;
+ public void deleteShoppingCart(final Long id, final MerchantStore store) throws Exception;
+ ShoppingCartData updateCartItems(List<ShoppingCartItem> shoppingCartItems,
+ MerchantStore store, Language language) throws Exception;
+ public ShoppingCart getShoppingCartModel(final String shoppingCartCode, MerchantStore store) throws Exception;
+ public ShoppingCart getShoppingCartModel(final Customer customer, MerchantStore store) throws Exception;
+ void deleteShoppingCart(String code, MerchantStore store) throws Exception;
+ void saveOrUpdateShoppingCart(ShoppingCart cart) throws Exception;
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/store/controller/shoppingCart/facade/ShoppingCartFacadeImpl.java b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/shoppingCart/facade/ShoppingCartFacadeImpl.java
new file mode 100644
index 0000000..9096c9e
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/shoppingCart/facade/ShoppingCartFacadeImpl.java
@@ -0,0 +1,551 @@
+/**
+ *
+ */
+package com.salesmanager.web.shop.controller.shoppingCart.facade;
+
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import java.util.UUID;
+
+import javax.persistence.NoResultException;
+
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.Validate;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.stereotype.Service;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
+
+import com.salesmanager.core.business.catalog.product.model.Product;
+import com.salesmanager.core.business.catalog.product.model.attribute.ProductAttribute;
+import com.salesmanager.core.business.catalog.product.model.price.FinalPrice;
+import com.salesmanager.core.business.catalog.product.service.PricingService;
+import com.salesmanager.core.business.catalog.product.service.ProductService;
+import com.salesmanager.core.business.catalog.product.service.attribute.ProductAttributeService;
+import com.salesmanager.core.business.customer.model.Customer;
+import com.salesmanager.core.business.generic.exception.ServiceException;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.business.shoppingcart.model.ShoppingCart;
+import com.salesmanager.core.business.shoppingcart.service.ShoppingCartCalculationService;
+import com.salesmanager.core.business.shoppingcart.service.ShoppingCartService;
+import com.salesmanager.core.utils.ProductPriceUtils;
+import com.salesmanager.web.constants.Constants;
+import com.salesmanager.web.entity.order.CartModificationException;
+import com.salesmanager.web.entity.shoppingcart.ShoppingCartAttribute;
+import com.salesmanager.web.entity.shoppingcart.ShoppingCartData;
+import com.salesmanager.web.entity.shoppingcart.ShoppingCartItem;
+import com.salesmanager.web.populator.shoppingCart.ShoppingCartDataPopulator;
+import com.salesmanager.web.utils.ImageFilePath;
+
+/**
+ * @author Umesh Awasthi
+ * @version 1.2
+ * @since 1.2
+ */
+@Service( value = "shoppingCartFacade" )
+public class ShoppingCartFacadeImpl
+ implements ShoppingCartFacade
+{
+
+
+ private static final Logger LOG = LoggerFactory.getLogger(ShoppingCartFacadeImpl.class);
+
+ @Inject
+ private ShoppingCartService shoppingCartService;
+
+ @Inject
+ ShoppingCartCalculationService shoppingCartCalculationService;
+
+ @Inject
+ private ProductPriceUtils productPriceUtils;
+
+ @Inject
+ private ProductService productService;
+
+ @Inject
+ private PricingService pricingService;
+
+ @Inject
+ private ProductAttributeService productAttributeService;
+
+ @Inject
+ @Qualifier("img")
+ private ImageFilePath imageUtils;
+
+ public void deleteShoppingCart(final Long id, final MerchantStore store) throws Exception {
+ ShoppingCart cart = shoppingCartService.getById(id, store);
+ if(cart!=null) {
+ shoppingCartService.deleteCart(cart);
+ }
+ }
+
+ @Override
+ public void deleteShoppingCart(final String code, final MerchantStore store) throws Exception {
+ ShoppingCart cart = shoppingCartService.getByCode(code, store);
+ if(cart!=null) {
+ shoppingCartService.deleteCart(cart);
+ }
+ }
+
+ @Override
+ public ShoppingCartData addItemsToShoppingCart( final ShoppingCartData shoppingCartData,
+ final ShoppingCartItem item, final MerchantStore store, final Language language,final Customer customer )
+ throws Exception
+ {
+
+ ShoppingCart cartModel = null;
+ if ( !StringUtils.isBlank( item.getCode() ) )
+ {
+ // get it from the db
+ cartModel = getShoppingCartModel( item.getCode(), store );
+ if ( cartModel == null )
+ {
+ cartModel = createCartModel( shoppingCartData.getCode(), store,customer );
+ }
+
+ }
+
+ if ( cartModel == null )
+ {
+
+ final String shoppingCartCode =
+ StringUtils.isNotBlank( shoppingCartData.getCode() ) ? shoppingCartData.getCode() : null;
+ cartModel = createCartModel( shoppingCartCode, store,customer );
+
+ }
+ com.salesmanager.core.business.shoppingcart.model.ShoppingCartItem shoppingCartItem =
+ createCartItem( cartModel, item, store );
+
+ boolean duplicateFound = false;
+ if(CollectionUtils.isEmpty(item.getShoppingCartAttributes())) {//increment quantity
+ //get duplicate item from the cart
+ Set<com.salesmanager.core.business.shoppingcart.model.ShoppingCartItem> cartModelItems = cartModel.getLineItems();
+ for(com.salesmanager.core.business.shoppingcart.model.ShoppingCartItem cartItem : cartModelItems) {
+ if(cartItem.getProduct().getId().longValue()==shoppingCartItem.getProduct().getId().longValue()) {
+ if(CollectionUtils.isEmpty(cartItem.getAttributes())) {
+ if(!duplicateFound) {
+ if(!shoppingCartItem.isProductVirtual()) {
+ cartItem.setQuantity(cartItem.getQuantity() + shoppingCartItem.getQuantity());
+ }
+ duplicateFound = true;
+ break;
+ }
+ }
+ }
+ }
+ }
+
+ if(!duplicateFound) {
+ cartModel.getLineItems().add( shoppingCartItem );
+ }
+
+ /** Update cart in database with line items **/
+ shoppingCartService.saveOrUpdate( cartModel );
+
+ //refresh cart
+ cartModel = shoppingCartService.getById(cartModel.getId(), store);
+
+ shoppingCartCalculationService.calculate( cartModel, store, language );
+
+ ShoppingCartDataPopulator shoppingCartDataPopulator = new ShoppingCartDataPopulator();
+ shoppingCartDataPopulator.setShoppingCartCalculationService( shoppingCartCalculationService );
+ shoppingCartDataPopulator.setPricingService( pricingService );
+ shoppingCartDataPopulator.setimageUtils(imageUtils);
+
+ return shoppingCartDataPopulator.populate( cartModel, store, language );
+ }
+
+ private com.salesmanager.core.business.shoppingcart.model.ShoppingCartItem createCartItem( final ShoppingCart cartModel,
+ final ShoppingCartItem shoppingCartItem,
+ final MerchantStore store )
+ throws Exception
+ {
+
+ Product product = productService.getById( shoppingCartItem.getProductId() );
+
+ if ( product == null )
+ {
+ throw new Exception( "Item with id " + shoppingCartItem.getProductId() + " does not exist" );
+ }
+
+ if ( product.getMerchantStore().getId().intValue() != store.getId().intValue() )
+ {
+ throw new Exception( "Item with id " + shoppingCartItem.getProductId() + " does not belong to merchant "
+ + store.getId() );
+ }
+
+ com.salesmanager.core.business.shoppingcart.model.ShoppingCartItem item =
+ shoppingCartService.populateShoppingCartItem( product );
+
+ item.setQuantity( shoppingCartItem.getQuantity() );
+ item.setShoppingCart( cartModel );
+
+ // attributes
+ List<ShoppingCartAttribute> cartAttributes = shoppingCartItem.getShoppingCartAttributes();
+ if ( !CollectionUtils.isEmpty( cartAttributes ) )
+ {
+ for ( ShoppingCartAttribute attribute : cartAttributes )
+ {
+ ProductAttribute productAttribute = productAttributeService.getById( attribute.getAttributeId() );
+ if ( productAttribute != null
+ && productAttribute.getProduct().getId().longValue() == product.getId().longValue() )
+ {
+ com.salesmanager.core.business.shoppingcart.model.ShoppingCartAttributeItem attributeItem =
+ new com.salesmanager.core.business.shoppingcart.model.ShoppingCartAttributeItem( item,
+ productAttribute );
+
+ item.addAttributes( attributeItem );
+ }
+ }
+ }
+ return item;
+
+ }
+
+ @Override
+ public ShoppingCart createCartModel( final String shoppingCartCode, final MerchantStore store,final Customer customer )
+ throws Exception
+ {
+ final Long CustomerId = customer != null ? customer.getId() : null;
+ ShoppingCart cartModel = new ShoppingCart();
+ if ( StringUtils.isNotBlank( shoppingCartCode ) )
+ {
+ cartModel.setShoppingCartCode( shoppingCartCode );
+ }
+ else
+ {
+ cartModel.setShoppingCartCode( UUID.randomUUID().toString().replaceAll( "-", "" ) );
+ }
+
+ cartModel.setMerchantStore( store );
+ if ( CustomerId != null )
+ {
+ cartModel.setCustomerId( CustomerId );
+ ;
+ }
+ shoppingCartService.create( cartModel );
+ return cartModel;
+ }
+
+
+
+
+
+ private com.salesmanager.core.business.shoppingcart.model.ShoppingCartItem getEntryToUpdate( final long entryId,
+ final ShoppingCart cartModel )
+ {
+ if ( CollectionUtils.isNotEmpty( cartModel.getLineItems() ) )
+ {
+ for ( com.salesmanager.core.business.shoppingcart.model.ShoppingCartItem shoppingCartItem : cartModel.getLineItems() )
+ {
+ if ( shoppingCartItem.getId().longValue() == entryId )
+ {
+ LOG.info( "Found line item for given entry id: " + entryId );
+ return shoppingCartItem;
+
+ }
+ }
+ }
+ LOG.info( "Unable to find any entry for given Id: " + entryId );
+ return null;
+ }
+
+ private Object getKeyValue( final String key )
+ {
+ ServletRequestAttributes reqAttr = (ServletRequestAttributes) RequestContextHolder.currentRequestAttributes();
+ return reqAttr.getRequest().getAttribute( key );
+ }
+
+ @Override
+ public ShoppingCartData getShoppingCartData( final Customer customer, final MerchantStore store,
+ final String shoppingCartId )
+ throws Exception
+ {
+
+ ShoppingCart cart = null;
+ try
+ {
+ if ( customer != null )
+ {
+ LOG.info( "Reteriving customer shopping cart..." );
+
+ cart = shoppingCartService.getShoppingCart( customer );
+
+ }
+
+ else
+ {
+ if ( StringUtils.isNotBlank( shoppingCartId ) && cart == null )
+ {
+ cart = shoppingCartService.getByCode( shoppingCartId, store );
+ }
+
+ }
+ }
+ catch ( ServiceException ex )
+ {
+ LOG.error( "Error while retriving cart from customer", ex );
+ }
+ catch( NoResultException nre) {
+ //nothing
+ }
+
+ if ( cart == null )
+ {
+ return null;
+ }
+
+ LOG.info( "Cart model found." );
+
+ ShoppingCartDataPopulator shoppingCartDataPopulator = new ShoppingCartDataPopulator();
+ shoppingCartDataPopulator.setShoppingCartCalculationService( shoppingCartCalculationService );
+ shoppingCartDataPopulator.setPricingService( pricingService );
+ shoppingCartDataPopulator.setimageUtils(imageUtils);
+
+ Language language = (Language) getKeyValue( Constants.LANGUAGE );
+ MerchantStore merchantStore = (MerchantStore) getKeyValue( Constants.MERCHANT_STORE );
+
+ ShoppingCartData shoppingCartData = shoppingCartDataPopulator.populate( cart, merchantStore, language );
+
+/* List<ShoppingCartItem> unavailables = new ArrayList<ShoppingCartItem>();
+ List<ShoppingCartItem> availables = new ArrayList<ShoppingCartItem>();
+ //Take out items no more available
+ List<ShoppingCartItem> items = shoppingCartData.getShoppingCartItems();
+ for(ShoppingCartItem item : items) {
+ String code = item.getProductCode();
+ Product p =productService.getByCode(code, language);
+ if(!p.isAvailable()) {
+ unavailables.add(item);
+ } else {
+ availables.add(item);
+ }
+
+ }
+ shoppingCartData.setShoppingCartItems(availables);
+ shoppingCartData.setUnavailables(unavailables);*/
+
+ return shoppingCartData;
+
+ }
+
+ @Override
+ public ShoppingCartData getShoppingCartData( final ShoppingCart shoppingCartModel )
+ throws Exception
+ {
+
+ ShoppingCartDataPopulator shoppingCartDataPopulator = new ShoppingCartDataPopulator();
+ shoppingCartDataPopulator.setShoppingCartCalculationService( shoppingCartCalculationService );
+ shoppingCartDataPopulator.setPricingService( pricingService );
+ shoppingCartDataPopulator.setimageUtils(imageUtils);
+ Language language = (Language) getKeyValue( Constants.LANGUAGE );
+ MerchantStore merchantStore = (MerchantStore) getKeyValue( Constants.MERCHANT_STORE );
+ return shoppingCartDataPopulator.populate( shoppingCartModel, merchantStore, language );
+ }
+
+ @Override
+ public ShoppingCartData removeCartItem( final Long itemID, final String cartId ,final MerchantStore store,final Language language )
+ throws Exception
+ {
+ if ( StringUtils.isNotBlank( cartId ) )
+ {
+
+ ShoppingCart cartModel = getCartModel( cartId,store );
+ if ( cartModel != null )
+ {
+ if ( CollectionUtils.isNotEmpty( cartModel.getLineItems() ) )
+ {
+ Set<com.salesmanager.core.business.shoppingcart.model.ShoppingCartItem> shoppingCartItemSet =
+ new HashSet<com.salesmanager.core.business.shoppingcart.model.ShoppingCartItem>();
+ for ( com.salesmanager.core.business.shoppingcart.model.ShoppingCartItem shoppingCartItem : cartModel.getLineItems() )
+ {
+ if ( shoppingCartItem.getId().longValue() != itemID.longValue() )
+ {
+ shoppingCartItemSet.add( shoppingCartItem );
+ }
+ }
+ cartModel.setLineItems( shoppingCartItemSet );
+ shoppingCartService.saveOrUpdate( cartModel );
+
+
+
+
+ ShoppingCartDataPopulator shoppingCartDataPopulator = new ShoppingCartDataPopulator();
+ shoppingCartDataPopulator.setShoppingCartCalculationService( shoppingCartCalculationService );
+ shoppingCartDataPopulator.setPricingService( pricingService );
+ shoppingCartDataPopulator.setimageUtils(imageUtils);
+ return shoppingCartDataPopulator.populate( cartModel, store, language );
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public ShoppingCartData updateCartItem( final Long itemID, final String cartId, final long newQuantity,final MerchantStore store, final Language language )
+ throws Exception
+ {
+ if ( newQuantity < 1 )
+ {
+ throw new CartModificationException( "Quantity must not be less than one" );
+ }
+ if ( StringUtils.isNotBlank( cartId ) )
+ {
+ ShoppingCart cartModel = getCartModel( cartId,store );
+ if ( cartModel != null )
+ {
+ com.salesmanager.core.business.shoppingcart.model.ShoppingCartItem entryToUpdate =
+ getEntryToUpdate( itemID.longValue(), cartModel );
+
+ if ( entryToUpdate == null )
+ {
+ throw new CartModificationException( "Unknown entry number." );
+ }
+
+ entryToUpdate.getProduct();
+
+ LOG.info( "Updating cart entry quantity to" + newQuantity );
+ entryToUpdate.setQuantity( (int) newQuantity );
+ List<ProductAttribute> productAttributes = new ArrayList<ProductAttribute>();
+ productAttributes.addAll( entryToUpdate.getProduct().getAttributes() );
+ final FinalPrice finalPrice =
+ productPriceUtils.getFinalProductPrice( entryToUpdate.getProduct(), productAttributes );
+ entryToUpdate.setItemPrice( finalPrice.getFinalPrice() );
+ shoppingCartService.saveOrUpdate( cartModel );
+
+ LOG.info( "Cart entry updated with desired quantity" );
+ ShoppingCartDataPopulator shoppingCartDataPopulator = new ShoppingCartDataPopulator();
+ shoppingCartDataPopulator.setShoppingCartCalculationService( shoppingCartCalculationService );
+ shoppingCartDataPopulator.setPricingService( pricingService );
+ shoppingCartDataPopulator.setimageUtils(imageUtils);
+ return shoppingCartDataPopulator.populate( cartModel, store, language );
+
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public ShoppingCartData updateCartItems( final List<ShoppingCartItem> shoppingCartItems, final MerchantStore store, final Language language )
+ throws Exception
+ {
+
+ Validate.notEmpty(shoppingCartItems,"shoppingCartItems null or empty");
+ ShoppingCart cartModel = null;
+ Set<com.salesmanager.core.business.shoppingcart.model.ShoppingCartItem> cartItems = new HashSet<com.salesmanager.core.business.shoppingcart.model.ShoppingCartItem>();
+ for(ShoppingCartItem item : shoppingCartItems) {
+
+ if(item.getQuantity()<1) {
+ throw new CartModificationException( "Quantity must not be less than one" );
+ }
+
+ if(cartModel==null) {
+ cartModel = getCartModel( item.getCode(), store );
+ }
+
+ com.salesmanager.core.business.shoppingcart.model.ShoppingCartItem entryToUpdate =
+ getEntryToUpdate( item.getId(), cartModel );
+
+ if ( entryToUpdate == null ) {
+ throw new CartModificationException( "Unknown entry number." );
+ }
+
+ entryToUpdate.getProduct();
+
+ LOG.info( "Updating cart entry quantity to" + item.getQuantity() );
+ entryToUpdate.setQuantity( (int) item.getQuantity() );
+
+ List<ProductAttribute> productAttributes = new ArrayList<ProductAttribute>();
+ productAttributes.addAll( entryToUpdate.getProduct().getAttributes() );
+
+ final FinalPrice finalPrice =
+ productPriceUtils.getFinalProductPrice( entryToUpdate.getProduct(), productAttributes );
+ entryToUpdate.setItemPrice( finalPrice.getFinalPrice() );
+
+
+ cartItems.add(entryToUpdate);
+
+
+
+
+ }
+
+ cartModel.setLineItems(cartItems);
+ shoppingCartService.saveOrUpdate( cartModel );
+ LOG.info( "Cart entry updated with desired quantity" );
+ ShoppingCartDataPopulator shoppingCartDataPopulator = new ShoppingCartDataPopulator();
+ shoppingCartDataPopulator.setShoppingCartCalculationService( shoppingCartCalculationService );
+ shoppingCartDataPopulator.setPricingService( pricingService );
+ shoppingCartDataPopulator.setimageUtils(imageUtils);
+ return shoppingCartDataPopulator.populate( cartModel, store, language );
+
+ }
+
+
+ private ShoppingCart getCartModel( final String cartId,final MerchantStore store )
+ {
+ if ( StringUtils.isNotBlank( cartId ) )
+ {
+ try
+ {
+ return shoppingCartService.getByCode( cartId, store );
+ }
+ catch ( ServiceException e )
+ {
+ LOG.error( "unable to find any cart asscoiated with this Id: " + cartId );
+ LOG.error( "error while fetching cart model...", e );
+ return null;
+ }
+ catch( NoResultException nre) {
+ //nothing
+ }
+
+ }
+ return null;
+ }
+
+ @Override
+ public ShoppingCartData getShoppingCartData(String code, MerchantStore store) {
+ try {
+ ShoppingCart cartModel = shoppingCartService.getByCode( code, store );
+ if(cartModel!=null) {
+ ShoppingCartData cart = getShoppingCartData(cartModel);
+ return cart;
+ }
+ } catch( NoResultException nre) {
+ //nothing
+
+ } catch(Exception e) {
+ LOG.error("Cannot retrieve cart code " + code,e);
+ }
+
+
+ return null;
+ }
+
+ @Override
+ public ShoppingCart getShoppingCartModel(String shoppingCartCode,
+ MerchantStore store) throws Exception {
+ return shoppingCartService.getByCode( shoppingCartCode, store );
+ }
+
+ @Override
+ public ShoppingCart getShoppingCartModel(Customer customer,
+ MerchantStore store) throws Exception {
+ return shoppingCartService.getByCustomer(customer);
+ }
+
+ @Override
+ public void saveOrUpdateShoppingCart(ShoppingCart cart) throws Exception {
+ shoppingCartService.saveOrUpdate(cart);
+
+ }
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/store/controller/shoppingCart/MiniCartController.java b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/shoppingCart/MiniCartController.java
new file mode 100644
index 0000000..bb45e42
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/shoppingCart/MiniCartController.java
@@ -0,0 +1,93 @@
+/**
+ *
+ */
+package com.salesmanager.web.shop.controller.shoppingCart;
+
+import javax.servlet.http.HttpServletRequest;
+
+import org.apache.commons.collections.CollectionUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import com.salesmanager.core.business.customer.model.Customer;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.web.constants.Constants;
+import com.salesmanager.web.entity.shoppingcart.ShoppingCartData;
+import com.salesmanager.web.shop.controller.AbstractController;
+import com.salesmanager.web.shop.controller.shoppingCart.facade.ShoppingCartFacade;
+
+/**
+ * @author Umesh A
+ *
+ */
+@Controller
+@RequestMapping("/shop/cart")
+public class MiniCartController extends AbstractController{
+
+ private static final Logger LOG = LoggerFactory.getLogger(MiniCartController.class);
+
+ @Inject
+ private ShoppingCartFacade shoppingCartFacade;
+
+
+
+
+ @RequestMapping(value={"/displayMiniCartByCode.html"}, method = { RequestMethod.GET, RequestMethod.POST })
+ public @ResponseBody ShoppingCartData displayMiniCart(final String shoppingCartCode, HttpServletRequest request, Model model){
+
+ try {
+ MerchantStore merchantStore = (MerchantStore)request.getAttribute(Constants.MERCHANT_STORE);
+ Customer customer = getSessionAttribute( Constants.CUSTOMER, request );
+ ShoppingCartData cart = shoppingCartFacade.getShoppingCartData(customer,merchantStore,shoppingCartCode);
+ if(cart!=null) {
+ request.getSession().setAttribute(Constants.SHOPPING_CART, cart.getCode());
+ }
+ if(cart==null) {
+ request.getSession().removeAttribute(Constants.SHOPPING_CART);//make sure there is no cart here
+ cart = new ShoppingCartData();//create an empty cart
+ }
+ return cart;
+
+
+ } catch(Exception e) {
+ LOG.error("Error while getting the shopping cart",e);
+ }
+
+ return null;
+
+ }
+
+
+ @RequestMapping(value={"/removeMiniShoppingCartItem.html"}, method = { RequestMethod.GET, RequestMethod.POST })
+ public @ResponseBody ShoppingCartData removeShoppingCartItem(Long lineItemId, final String shoppingCartCode, HttpServletRequest request, Model model) throws Exception {
+ Language language = (Language)request.getAttribute(Constants.LANGUAGE);
+ MerchantStore merchantStore = (MerchantStore)request.getAttribute(Constants.MERCHANT_STORE);
+ ShoppingCartData cart = shoppingCartFacade.getShoppingCartData(null, merchantStore, shoppingCartCode);
+ if(cart==null) {
+ return null;
+ }
+ ShoppingCartData shoppingCartData=shoppingCartFacade.removeCartItem(lineItemId, cart.getCode(), merchantStore,language);
+
+
+ if(CollectionUtils.isEmpty(shoppingCartData.getShoppingCartItems())) {
+ shoppingCartFacade.deleteShoppingCart(shoppingCartData.getId(), merchantStore);
+ request.getSession().removeAttribute(Constants.SHOPPING_CART);
+ return null;
+ }
+
+
+ request.getSession().setAttribute(Constants.SHOPPING_CART, cart.getCode());
+
+ LOG.debug("removed item" + lineItemId + "from cart");
+ return shoppingCartData;
+ }
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/store/controller/shoppingCart/ShoppingCartController.java b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/shoppingCart/ShoppingCartController.java
new file mode 100644
index 0000000..041453e
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/shoppingCart/ShoppingCartController.java
@@ -0,0 +1,453 @@
+package com.salesmanager.web.shop.controller.shoppingCart;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Locale;
+import java.util.UUID;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import com.salesmanager.core.business.catalog.product.model.Product;
+import com.salesmanager.core.business.catalog.product.service.PricingService;
+import com.salesmanager.core.business.catalog.product.service.ProductService;
+import com.salesmanager.core.business.catalog.product.service.attribute.ProductAttributeService;
+import com.salesmanager.core.business.customer.model.Customer;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.order.service.OrderService;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.business.shoppingcart.service.ShoppingCartService;
+import com.salesmanager.core.utils.ProductPriceUtils;
+import com.salesmanager.core.utils.ajax.AjaxResponse;
+import com.salesmanager.web.constants.Constants;
+import com.salesmanager.web.entity.shop.PageInformation;
+import com.salesmanager.web.entity.shoppingcart.ShoppingCartData;
+import com.salesmanager.web.entity.shoppingcart.ShoppingCartItem;
+import com.salesmanager.web.shop.controller.AbstractController;
+import com.salesmanager.web.shop.controller.ControllerConstants;
+import com.salesmanager.web.shop.controller.shoppingCart.facade.ShoppingCartFacade;
+import com.salesmanager.web.utils.LabelUtils;
+import com.salesmanager.web.utils.LanguageUtils;
+
+import edu.emory.mathcs.backport.java.util.Arrays;
+
+
+/**
+ * A mini shopping cart is available on the public shopping section from the upper menu
+ * Landing page, Category page (list of products) and Product details page contains a form
+ * that let the user add an item to the cart, see the quantity of items, total price of items
+ * in the cart and remove items
+ *
+ * Add To Cart
+ * ---------------
+ * The add to cart is 100% driven by javascript / ajax. The code is available in webapp\resources\js\functions.js
+ *
+ * <!-- Simple add to cart html example ${id} is the product id -->
+ * <form id="input-${id}">
+ * <input type="text" class="input-small" id="quantity-productId-${id}" placeholder="1" value="1">
+ * <a href="#" class="addToCart" productId="${id}">Add to cart</a>
+ * </form>
+ *
+ * The javascript function creates com.salesmanager.web.entity.shoppingcart.ShoppingCartItem and ShoppingCartAttribute based on user selection
+ * The javascript looks in the cookie if a shopping cart code exists ex $.cookie( 'cart' ); // requires jQuery-cookie
+ * The javascript posts the ShoppingCartItem and the shopping cart code if present to /shop/addShoppingCartItem.html
+ *
+ * @see
+ *
+ * The javascript re-creates the shopping cart div item (div id shoppingcart) (see webapp\pages\shop\templates\bootstrap\sections\header.jsp)
+ * The javascript set the shopping cart code in the cookie
+ *
+ * Display a page
+ * ----------------
+ *
+ * When a page is displayed from the shopping section, the shopping cart has to be displayed
+ * 4 paths 1) No shopping cart 2) A shopping cart exist in the session 3) A shopping cart code exists in the cookie 4) A customer is logeed in and a shopping cart exists in the database
+ *
+ * 1) No shopping cart, nothing to do !
+ *
+ * 2) StoreFilter will tak care of a ShoppingCart present in the HttpSession
+ *
+ * 3) Once a page is displayed and no cart returned from the controller, a javascript looks on load in the cookie to see if a shopping cart code is present
+ * If a code is present, by ajax the cart is loaded and displayed
+ *
+ * 4) No cart in the session but the customer logs in, the system looks in the DB if a shopping cart exists, if so it is putted in the session so the StoreFilter can manage it and putted in the request
+ *
+ * @author Carl Samson
+ * @author Umesh
+ */
+
+@Controller
+@RequestMapping("/shop/cart/")
+public class ShoppingCartController extends AbstractController {
+
+ private static final Logger LOG = LoggerFactory.getLogger(ShoppingCartController.class);
+ @Inject
+ private ProductService productService;
+
+ @Inject
+ private ProductAttributeService productAttributeService;
+
+ @Inject
+ private PricingService pricingService;
+
+ @Inject
+ private OrderService orderService;
+
+ @Inject
+ private ShoppingCartService shoppingCartService;
+
+ @Inject
+ private ProductPriceUtils productPriceUtils;
+
+ @Inject
+ private ShoppingCartFacade shoppingCartFacade;
+
+ @Inject
+ private LabelUtils messages;
+
+ @Inject
+ private LanguageUtils languageUtils;
+
+
+
+ /**
+ * Add an item to the ShoppingCart (AJAX exposed method)
+ * @param id
+ * @param quantity
+ * @param request
+ * @param response
+ * @return
+ * @throws Exception
+ */
+ @RequestMapping(value={"/addShoppingCartItem.html"}, method=RequestMethod.POST)
+ public @ResponseBody
+ ShoppingCartData addShoppingCartItem(@RequestBody final ShoppingCartItem item, final HttpServletRequest request, final HttpServletResponse response, final Locale locale) throws Exception {
+
+
+ ShoppingCartData shoppingCart=null;
+
+
+
+ //Look in the HttpSession to see if a customer is logged in
+ MerchantStore store = getSessionAttribute(Constants.MERCHANT_STORE, request);
+ Language language = (Language)request.getAttribute(Constants.LANGUAGE);
+ Customer customer = getSessionAttribute( Constants.CUSTOMER, request );
+
+
+ if(customer != null) {
+ com.salesmanager.core.business.shoppingcart.model.ShoppingCart customerCart = shoppingCartService.getByCustomer(customer);
+ if(customerCart!=null) {
+ shoppingCart = shoppingCartFacade.getShoppingCartData( customerCart);
+
+
+ //TODO if shoppingCart != null ?? merge
+ //TODO maybe they have the same code
+ //TODO what if codes are different (-- merge carts, keep the latest one, delete the oldest, switch codes --)
+ }
+ }
+
+
+ if(shoppingCart==null && !StringUtils.isBlank(item.getCode())) {
+ shoppingCart = shoppingCartFacade.getShoppingCartData(item.getCode(), store);
+ }
+
+
+ //if shoppingCart is null create a new one
+ if(shoppingCart==null) {
+ shoppingCart = new ShoppingCartData();
+ String code = UUID.randomUUID().toString().replaceAll("-", "");
+ shoppingCart.setCode(code);
+ }
+
+ shoppingCart=shoppingCartFacade.addItemsToShoppingCart( shoppingCart, item, store,language,customer );
+ request.getSession().setAttribute(Constants.SHOPPING_CART, shoppingCart.getCode());
+
+
+ /******************************************************/
+ //TODO validate all of this
+
+ //if a customer exists in http session
+ //if a cart does not exist in httpsession
+ //get cart from database
+ //if a cart exist in the database add the item to the cart and put cart in httpsession and save to the database
+ //else a cart does not exist in the database, create a new one, set the customer id, set the cart in the httpsession
+ //else a cart exist in the httpsession, add item to httpsession cart and save to the database
+ //else no customer in httpsession
+ //if a cart does not exist in httpsession
+ //create a new one, set the cart in the httpsession
+ //else a cart exist in the httpsession, add item to httpsession cart and save to the database
+
+
+ /**
+ * my concern is with the following :
+ * what if you add item in the shopping cart as an anonymous user
+ * later on you log in to process with checkout but the system retrieves a previous shopping cart saved in the database for that customer
+ * in that case we need to synchronize both carts and the original one (the one with the customer id) supercedes the current cart in session
+ * the system will have to deal with the original one and remove the latest
+ */
+
+
+ //**more implementation details
+ //calculate the price of each item by using ProductPriceUtils in sm-core
+ //for each product in the shopping cart get the product
+ //invoke productPriceUtils.getFinalProductPrice
+ //from FinalPrice get final price which is the calculated price given attributes and discounts
+ //set each item price in ShoppingCartItem.price
+
+ //add new item shoppingCartService.create
+
+ //create JSON representation of the shopping cart
+
+ //return the JSON structure in AjaxResponse
+
+
+
+ //AjaxResponse resp = new AjaxResponse();
+ //resp.setStatus(AjaxResponse.RESPONSE_STATUS_SUCCESS);
+ return shoppingCart;
+
+ }
+
+
+
+ /**
+ * Retrieves a Shopping cart from the database (regular shopping cart)
+ * @param model
+ * @param request
+ * @param response
+ * @return
+ * @throws Exception
+ */
+ @RequestMapping( value = { "/shoppingCart.html" }, method = RequestMethod.GET )
+ public String displayShoppingCart( final Model model, final HttpServletRequest request, final HttpServletResponse response, final Locale locale )
+ throws Exception
+ {
+
+ LOG.debug( "Starting to calculate shopping cart..." );
+
+
+ //meta information
+ PageInformation pageInformation = new PageInformation();
+ pageInformation.setPageTitle(messages.getMessage("label.cart.placeorder", locale));
+ request.setAttribute(Constants.REQUEST_PAGE_INFORMATION, pageInformation);
+
+
+ MerchantStore store = (MerchantStore) request.getAttribute(Constants.MERCHANT_STORE);
+ Customer customer = getSessionAttribute( Constants.CUSTOMER, request );
+
+ /** there must be a cart in the session **/
+ String cartCode = (String)request.getSession().getAttribute(Constants.SHOPPING_CART);
+
+ if(StringUtils.isBlank(cartCode)) {
+ //display empty cart
+ StringBuilder template =
+ new StringBuilder().append( ControllerConstants.Tiles.ShoppingCart.shoppingCart ).append( "." ).append( store.getStoreTemplate() );
+ return template.toString();
+ }
+
+ ShoppingCartData shoppingCart = shoppingCartFacade.getShoppingCartData(customer, store, cartCode);
+
+ Language lang = languageUtils.getRequestLanguage(request, response);
+ //Filter unavailables
+ List<ShoppingCartItem> unavailables = new ArrayList<ShoppingCartItem>();
+ List<ShoppingCartItem> availables = new ArrayList<ShoppingCartItem>();
+ //Take out items no more available
+ List<ShoppingCartItem> items = shoppingCart.getShoppingCartItems();
+ for(ShoppingCartItem item : items) {
+ String code = item.getProductCode();
+ Product p =productService.getByCode(code, lang);
+ if(!p.isAvailable()) {
+ unavailables.add(item);
+ } else {
+ availables.add(item);
+ }
+
+ }
+ shoppingCart.setShoppingCartItems(availables);
+ shoppingCart.setUnavailables(unavailables);
+
+
+
+ model.addAttribute( "cart", shoppingCart );
+
+
+
+
+
+ /** template **/
+ StringBuilder template =
+ new StringBuilder().append( ControllerConstants.Tiles.ShoppingCart.shoppingCart ).append( "." ).append( store.getStoreTemplate() );
+ return template.toString();
+
+ }
+
+
+ @RequestMapping(value={"/shoppingCartByCode.html"}, method = { RequestMethod.GET })
+ public String displayShoppingCart(@ModelAttribute String shoppingCartCode, final Model model, HttpServletRequest request, HttpServletResponse response, final Locale locale) throws Exception{
+
+ MerchantStore merchantStore = (MerchantStore)request.getAttribute(Constants.MERCHANT_STORE);
+ Customer customer = getSessionAttribute( Constants.CUSTOMER, request );
+
+ if(StringUtils.isBlank(shoppingCartCode)) {
+ return "redirect:/shop";
+ }
+
+ ShoppingCartData cart = shoppingCartFacade.getShoppingCartData(customer,merchantStore,shoppingCartCode);
+ if(cart==null) {
+ return "redirect:/shop";
+ }
+
+
+ Language lang = languageUtils.getRequestLanguage(request, response);
+ //Filter unavailables
+ List<ShoppingCartItem> unavailables = new ArrayList<ShoppingCartItem>();
+ List<ShoppingCartItem> availables = new ArrayList<ShoppingCartItem>();
+ //Take out items no more available
+ List<ShoppingCartItem> items = cart.getShoppingCartItems();
+ for(ShoppingCartItem item : items) {
+ String code = item.getProductCode();
+ Product p =productService.getByCode(code, lang);
+ if(!p.isAvailable()) {
+ unavailables.add(item);
+ } else {
+ availables.add(item);
+ }
+
+ }
+ cart.setShoppingCartItems(availables);
+ cart.setUnavailables(unavailables);
+
+
+ //meta information
+ PageInformation pageInformation = new PageInformation();
+ pageInformation.setPageTitle(messages.getMessage("label.cart.placeorder", locale));
+ request.setAttribute(Constants.REQUEST_PAGE_INFORMATION, pageInformation);
+ request.getSession().setAttribute(Constants.SHOPPING_CART, cart.getCode());
+ model.addAttribute("cart", cart);
+
+ /** template **/
+ StringBuilder template =
+ new StringBuilder().append( ControllerConstants.Tiles.ShoppingCart.shoppingCart ).append( "." ).append( merchantStore.getStoreTemplate() );
+ return template.toString();
+
+
+
+ }
+
+
+ /**
+ * Removes an item from the Shopping Cart (AJAX exposed method)
+ * @param id
+ * @param request
+ * @param response
+ * @return
+ * @throws Exception
+ */
+ @RequestMapping(value={"/removeShoppingCartItem.html"}, method = { RequestMethod.GET, RequestMethod.POST })
+
+ String removeShoppingCartItem(final Long lineItemId, final HttpServletRequest request, final HttpServletResponse response) throws Exception {
+
+
+
+ //Looks in the HttpSession to see if a customer is logged in
+
+ //get any shopping cart for this user
+
+ //** need to check if the item has property, similar items may exist but with different properties
+ //String attributes = request.getParameter("attribute");//attributes id are sent as 1|2|5|
+ //this will help with hte removal of the appropriate item
+
+ //remove the item shoppingCartService.create
+
+ //create JSON representation of the shopping cart
+
+ //return the JSON structure in AjaxResponse
+
+ //store the shopping cart in the http session
+
+ MerchantStore store = getSessionAttribute(Constants.MERCHANT_STORE, request);
+ Language language = (Language)request.getAttribute(Constants.LANGUAGE);
+ Customer customer = getSessionAttribute( Constants.CUSTOMER, request );
+
+ /** there must be a cart in the session **/
+ String cartCode = (String)request.getSession().getAttribute(Constants.SHOPPING_CART);
+
+ if(StringUtils.isBlank(cartCode)) {
+ return "redirect:/shop";
+ }
+
+ ShoppingCartData shoppingCart = shoppingCartFacade.getShoppingCartData(customer, store, cartCode);
+
+ ShoppingCartData shoppingCartData=shoppingCartFacade.removeCartItem(lineItemId, shoppingCart.getCode(),store,language);
+
+
+ if(CollectionUtils.isEmpty(shoppingCartData.getShoppingCartItems())) {
+ shoppingCartFacade.deleteShoppingCart(shoppingCartData.getId(), store);
+ return "redirect:/shop";
+ }
+
+
+
+ return Constants.REDIRECT_PREFIX + "/shop/cart/shoppingCart.html";
+
+
+
+
+ }
+
+ /**
+ * Update the quantity of an item in the Shopping Cart (AJAX exposed method)
+ * @param id
+ * @param quantity
+ * @param request
+ * @param response
+ * @return
+ * @throws Exception
+ */
+ @RequestMapping(value={"/updateShoppingCartItem.html"}, method = { RequestMethod.POST })
+ public @ResponseBody String updateShoppingCartItem( @RequestBody final ShoppingCartItem[] shoppingCartItems, final HttpServletRequest request, final HttpServletResponse response) {
+
+ AjaxResponse ajaxResponse = new AjaxResponse();
+
+
+
+ MerchantStore store = getSessionAttribute(Constants.MERCHANT_STORE, request);
+ Language language = (Language)request.getAttribute(Constants.LANGUAGE);
+
+
+ String cartCode = (String)request.getSession().getAttribute(Constants.SHOPPING_CART);
+
+ if(StringUtils.isBlank(cartCode)) {
+ return "redirect:/shop";
+ }
+
+ try {
+ List<ShoppingCartItem> items = Arrays.asList(shoppingCartItems);
+ ShoppingCartData shoppingCart = shoppingCartFacade.updateCartItems(items, store, language);
+ ajaxResponse.setStatus(AjaxResponse.RESPONSE_STATUS_SUCCESS);
+
+ } catch (Exception e) {
+ LOG.error("Excption while updating cart" ,e);
+ ajaxResponse.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ }
+
+ return ajaxResponse.toJSONString();
+
+
+ }
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/store/controller/store/ContactController.java b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/store/ContactController.java
new file mode 100644
index 0000000..b94b09d
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/store/ContactController.java
@@ -0,0 +1,181 @@
+package com.salesmanager.web.shop.controller.store;
+
+import java.util.Locale;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.lang.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.validation.BindingResult;
+import org.springframework.validation.FieldError;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import com.salesmanager.core.business.content.model.Content;
+import com.salesmanager.core.business.content.model.ContentDescription;
+import com.salesmanager.core.business.content.service.ContentService;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.utils.CoreConfiguration;
+import com.salesmanager.core.utils.ajax.AjaxResponse;
+import com.salesmanager.web.constants.ApplicationConstants;
+import com.salesmanager.web.constants.Constants;
+import com.salesmanager.web.entity.shop.ContactForm;
+import com.salesmanager.web.entity.shop.PageInformation;
+import com.salesmanager.web.shop.controller.AbstractController;
+import com.salesmanager.web.shop.controller.ControllerConstants;
+import com.salesmanager.web.utils.CaptchaRequestUtils;
+import com.salesmanager.web.utils.EmailTemplatesUtils;
+import com.salesmanager.web.utils.LabelUtils;
+import com.salesmanager.web.utils.LocaleUtils;
+
+@Controller
+public class ContactController extends AbstractController {
+
+ private static final Logger LOGGER = LoggerFactory
+ .getLogger(ContactController.class);
+
+ @Inject
+ private ContentService contentService;
+
+ @Inject
+ private CoreConfiguration coreConfiguration;
+
+ @Inject
+ private LabelUtils messages;
+
+ @Inject
+ private EmailTemplatesUtils emailTemplatesUtils;
+
+ @Inject
+ private CaptchaRequestUtils captchaRequestUtils;
+
+ private final static String CONTACT_LINK = "CONTACT";
+
+
+ @RequestMapping("/shop/store/contactus.html")
+ public String displayContact(Model model, HttpServletRequest request, HttpServletResponse response, Locale locale) throws Exception {
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.MERCHANT_STORE);
+
+ request.setAttribute(Constants.LINK_CODE, CONTACT_LINK);
+
+ Language language = (Language)request.getAttribute("LANGUAGE");
+
+ ContactForm contact = new ContactForm();
+ model.addAttribute("contact", contact);
+
+ model.addAttribute( "recapatcha_public_key", coreConfiguration.getProperty( ApplicationConstants.RECAPTCHA_PUBLIC_KEY ) );
+
+ Content content = contentService.getByCode(Constants.CONTENT_CONTACT_US, store, language);
+ ContentDescription contentDescription = null;
+ if(content!=null && content.isVisible()) {
+ contentDescription = content.getDescription();
+ }
+
+ if(contentDescription!=null) {
+
+ //meta information
+ PageInformation pageInformation = new PageInformation();
+ pageInformation.setPageDescription(contentDescription.getMetatagDescription());
+ pageInformation.setPageKeywords(contentDescription.getMetatagKeywords());
+ pageInformation.setPageTitle(contentDescription.getTitle());
+ pageInformation.setPageUrl(contentDescription.getName());
+
+ request.setAttribute(Constants.REQUEST_PAGE_INFORMATION, pageInformation);
+
+ model.addAttribute("content",contentDescription);
+
+ }
+
+
+
+ /** template **/
+ StringBuilder template = new StringBuilder().append(ControllerConstants.Tiles.Content.contactus).append(".").append(store.getStoreTemplate());
+ return template.toString();
+
+
+ }
+
+
+ @RequestMapping(value={"/shop/store/{storeCode}/contact"}, method=RequestMethod.POST)
+ public @ResponseBody String sendEmail(@ModelAttribute(value="contact") ContactForm contact, BindingResult bindingResult, HttpServletRequest request, HttpServletResponse response, Locale locale) throws Exception {
+
+ AjaxResponse ajaxResponse = new AjaxResponse();
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.MERCHANT_STORE);
+
+ try {
+
+ //if ( StringUtils.isBlank( contact.getCaptchaResponseField() )) {
+ // FieldError error = new FieldError("captchaResponseField","captchaResponseField",messages.getMessage("NotEmpty.contact.captchaResponseField", locale));
+ // bindingResult.addError(error);
+ // ajaxResponse.setErrorString(bindingResult.getAllErrors().get(0).getDefaultMessage());
+ // ajaxResponse.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ // return ajaxResponse.toJSONString();
+ //}
+
+ //ReCaptchaImpl reCaptcha = new ReCaptchaImpl();
+ //reCaptcha.setPublicKey( coreConfiguration.getProperty( ApplicationConstants.RECAPTCHA_PUBLIC_KEY));
+ //reCaptcha.setPrivateKey( coreConfiguration.getProperty( ApplicationConstants.RECAPTCHA_PRIVATE_KEY ) );
+
+/* if ( StringUtils.isNotBlank( contact.getCaptchaChallengeField() )
+ && StringUtils.isNotBlank( contact.getCaptchaResponseField() ) )
+ {
+ ReCaptchaResponse reCaptchaResponse =
+ reCaptcha.checkAnswer( request.getRemoteAddr(), contact.getCaptchaChallengeField(),
+ contact.getCaptchaResponseField() );
+ if ( !reCaptchaResponse.isValid() )
+ {
+ LOGGER.debug( "Captcha response does not matched" );
+ FieldError error = new FieldError("captchaChallengeField","captchaChallengeField",messages.getMessage("validaion.recaptcha.not.matched", locale));
+ bindingResult.addError(error);
+ }
+
+ }*/
+
+ if(!StringUtils.isBlank(request.getParameter("g-recaptcha-response"))) {
+ boolean validateCaptcha = captchaRequestUtils.checkCaptcha(request.getParameter("g-recaptcha-response"));
+
+ if ( !validateCaptcha )
+ {
+ LOGGER.debug( "Captcha response does not matched" );
+ FieldError error = new FieldError("captchaChallengeField","captchaChallengeField",messages.getMessage("validaion.recaptcha.not.matched", locale));
+ bindingResult.addError(error);
+ }
+ }
+
+
+
+ if ( bindingResult.hasErrors() )
+ {
+ LOGGER.debug( "found {} validation error while validating in customer registration ",
+ bindingResult.getErrorCount() );
+ ajaxResponse.setErrorString(bindingResult.getAllErrors().get(0).getDefaultMessage());
+ ajaxResponse.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ return ajaxResponse.toJSONString();
+
+ }
+
+ emailTemplatesUtils.sendContactEmail(contact, store, LocaleUtils.getLocale(store.getDefaultLanguage()), request.getContextPath());
+
+ ajaxResponse.setStatus(AjaxResponse.RESPONSE_STATUS_SUCCESS);
+ } catch(Exception e) {
+ LOGGER.error("An error occured while trying to send an email",e);
+ ajaxResponse.setStatus(AjaxResponse.RESPONSE_STATUS_FAIURE);
+ }
+
+ return ajaxResponse.toJSONString();
+
+
+ }
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/store/model/catalog/Attribute.java b/sm-shop/src/main/java/com/salesmanager/shop/store/model/catalog/Attribute.java
new file mode 100644
index 0000000..111c1ee
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/store/model/catalog/Attribute.java
@@ -0,0 +1,57 @@
+package com.salesmanager.web.shop.model.catalog;
+
+import java.io.Serializable;
+import java.util.List;
+
+import com.salesmanager.web.entity.ShopEntity;
+
+public class Attribute extends ShopEntity implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private String name = null;
+ private String type = null;
+ private String code = null;
+ private List<AttributeValue> values = null;
+ private AttributeValue readOnlyValue = null;
+ public String getName() {
+ return name;
+ }
+ public void setName(String name) {
+ this.name = name;
+ }
+ public String getType() {
+ return type;
+ }
+ public void setType(String type) {
+ this.type = type;
+ }
+
+
+
+ public void setValues(List<AttributeValue> values) {
+ this.values = values;
+ }
+ public List<AttributeValue> getValues() {
+ return values;
+ }
+ public void setCode(String code) {
+ this.code = code;
+ }
+ public String getCode() {
+ return code;
+ }
+ public void setReadOnlyValue(AttributeValue readOnlyValue) {
+ this.readOnlyValue = readOnlyValue;
+ }
+ public AttributeValue getReadOnlyValue() {
+ return readOnlyValue;
+ }
+
+
+
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/store/model/catalog/AttributeValue.java b/sm-shop/src/main/java/com/salesmanager/shop/store/model/catalog/AttributeValue.java
new file mode 100644
index 0000000..a8a301f
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/store/model/catalog/AttributeValue.java
@@ -0,0 +1,50 @@
+package com.salesmanager.web.shop.model.catalog;
+
+import java.io.Serializable;
+
+import com.salesmanager.web.entity.ShopEntity;
+
+public class AttributeValue extends ShopEntity implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private String name = null;
+ private String description = null;
+ private boolean defaultAttribute;
+ private String image;
+ private String price;
+
+ public String getName() {
+ return name;
+ }
+ public void setName(String name) {
+ this.name = name;
+ }
+ public boolean isDefaultAttribute() {
+ return defaultAttribute;
+ }
+ public void setDefaultAttribute(boolean defaultAttribute) {
+ this.defaultAttribute = defaultAttribute;
+ }
+ public String getImage() {
+ return image;
+ }
+ public void setImage(String image) {
+ this.image = image;
+ }
+ public String getPrice() {
+ return price;
+ }
+ public void setPrice(String price) {
+ this.price = price;
+ }
+ public String getDescription() {
+ return description;
+ }
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/store/model/filter/QueryFilter.java b/sm-shop/src/main/java/com/salesmanager/shop/store/model/filter/QueryFilter.java
new file mode 100644
index 0000000..5e45500
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/store/model/filter/QueryFilter.java
@@ -0,0 +1,39 @@
+package com.salesmanager.web.shop.model.filter;
+
+/**
+ * Used in Category and Search to filter display based on other
+ * entities such as Manufacturer
+ * @author Carl Samson
+ *
+ */
+public class QueryFilter {
+
+ /**
+ * used when filtering on an entity code (example property)
+ */
+ private String filterCode;
+ /**
+ * used when filtering on an entity id
+ */
+ private Long filterId;
+ private QueryFilterType filterType;
+ public String getFilterCode() {
+ return filterCode;
+ }
+ public void setFilterCode(String filterCode) {
+ this.filterCode = filterCode;
+ }
+ public Long getFilterId() {
+ return filterId;
+ }
+ public void setFilterId(Long filterId) {
+ this.filterId = filterId;
+ }
+ public QueryFilterType getFilterType() {
+ return filterType;
+ }
+ public void setFilterType(QueryFilterType filterType) {
+ this.filterType = filterType;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/store/model/filter/QueryFilterType.java b/sm-shop/src/main/java/com/salesmanager/shop/store/model/filter/QueryFilterType.java
new file mode 100644
index 0000000..28161df
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/store/model/filter/QueryFilterType.java
@@ -0,0 +1,7 @@
+package com.salesmanager.web.shop.model.filter;
+
+public enum QueryFilterType {
+
+ BRAND
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/store/model/paging/PaginationData.java b/sm-shop/src/main/java/com/salesmanager/shop/store/model/paging/PaginationData.java
new file mode 100644
index 0000000..ded9a7a
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/store/model/paging/PaginationData.java
@@ -0,0 +1,143 @@
+/**
+ *
+ */
+package com.salesmanager.web.shop.model.paging;
+
+import java.io.Serializable;
+
+/**
+ * POJO representation of pagination
+ * @author Umesh Awasthi
+ *
+ */
+public class PaginationData implements Serializable
+{
+
+
+ private static final long serialVersionUID = 1L;
+
+ /** The number of results per page.*/
+ private int pageSize;
+ private int currentPage;
+ private int offset ;
+ private int totalCount;
+ private int totalPages;
+ private int countByPage;
+
+
+ public PaginationData(int pageSize,int currentPage) {
+ if (pageSize == 0)
+ throw new IllegalArgumentException("limit cannot be 0 for pagination.");
+
+
+ this.pageSize = pageSize;
+ this.currentPage=currentPage;
+ }
+
+
+ public int getPageSize()
+ {
+ return pageSize;
+ }
+
+
+ /**
+ * The current page number this pagination object represents
+ *
+ * @return the page number
+ */
+ public int getPageNumber() {
+ if (offset < pageSize || pageSize == 0)
+ return 1;
+
+ return (offset / pageSize) + 1;
+ }
+
+
+ /**
+ * The offset for this pagination object. The offset determines what index (0 index) to start retrieving results from.
+ *
+ * @return the offset
+ */
+ public int getOffset() {
+ return (currentPage - 1) * pageSize + 1;
+ }
+
+
+ /**
+ * Creates a new pagination object representing the next page
+ *
+ * @return new pagination object with offset shifted by offset+limit
+ */
+ public PaginationData getNext()
+ {
+ return new PaginationData( offset + pageSize, pageSize );
+ }
+
+
+ /**
+ * Creates a new pagination object representing the previous page
+ *
+ * @return new pagination object with offset shifted by offset-limit
+ */
+ public PaginationData getPrevious() {
+ if (pageSize >= offset) {
+ return new PaginationData(0, pageSize);
+ } else {
+ return new PaginationData(offset - pageSize, pageSize);
+ }
+ }
+
+
+ public int getCurrentPage()
+ {
+ return currentPage;
+ }
+
+
+ public void setCurrentPage( int currentPage )
+ {
+ this.currentPage = currentPage;
+ }
+
+
+ public int getTotalCount()
+ {
+ return totalCount;
+ }
+
+
+ public void setTotalCount( int totalCount )
+ {
+ this.totalCount = totalCount;
+ }
+
+
+ public int getTotalPages()
+ {
+
+ Integer totalPages= Integer.valueOf((int) (Math.ceil(Integer.valueOf(totalCount).doubleValue() / pageSize)));
+ return totalPages;
+ }
+
+
+ public int getCountByPage() {
+ return countByPage;
+ }
+
+
+ public void setCountByPage(int countByPage) {
+ this.countByPage = countByPage;
+ }
+
+
+ public void setTotalPages(int totalPages) {
+ this.totalPages = totalPages;
+ }
+
+
+
+
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/store/model/search/AutoCompleteRequest.java b/sm-shop/src/main/java/com/salesmanager/shop/store/model/search/AutoCompleteRequest.java
new file mode 100644
index 0000000..4e9c99d
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/store/model/search/AutoCompleteRequest.java
@@ -0,0 +1,88 @@
+package com.salesmanager.web.shop.model.search;
+
+import org.json.simple.JSONObject;
+
+public class AutoCompleteRequest {
+
+ //private String collectionName;
+ //private String query;
+ //private String filter;
+ private String merchantCode;
+ private String languageCode;
+
+
+ private final static String WILDCARD_QUERY = "wildcard";
+ private final static String KEYWORD = "keyword";
+ private final static String UNDERSCORE = "_";
+ private final static String ALL = "*";
+ private final static String TYPE = "type";
+ private final static String ANALYZER = "analyzer";
+ private final static String STD_ANALYZER = "standard";
+ private final static String TYPE_PHRASE = "phrase_prefix";
+ private final static String QUERY = "query";
+ private final static String MATCH = "match";
+
+ public AutoCompleteRequest(String merchantCode, String languageCode) {
+ this.merchantCode = merchantCode;
+ this.languageCode = languageCode;
+ }
+
+ @SuppressWarnings("unchecked")
+ public String toJSONString(String query) {
+
+ //{"query": {"match": {"keyword": {"query": "spr","analyzer": "standard"}}}}
+
+
+ JSONObject keyword = new JSONObject();
+ JSONObject q = new JSONObject();
+ JSONObject mq = new JSONObject();
+ JSONObject match = new JSONObject();
+
+ q.put(QUERY, query);
+ //q.put(TYPE, TYPE_PHRASE);
+ q.put(ANALYZER, STD_ANALYZER);
+
+ keyword.put(KEYWORD, q);
+
+ match.put(MATCH, keyword);
+
+ mq.put(QUERY, match);
+
+ //StringBuilder qValueBuilder = new StringBuilder();
+ //qValueBuilder.append(query.toLowerCase()).append(ALL);
+
+ //q.put(KEYWORD, qValueBuilder.toString());
+ //wildcard.put(WILDCARD_QUERY, q);
+
+
+ return mq.toJSONString();
+ }
+
+ /** keyword_en_default **/
+ public String getCollectionName() {
+ StringBuilder qBuilder = new StringBuilder();
+ qBuilder.append(KEYWORD).append(UNDERSCORE).append(getLanguageCode()).append(UNDERSCORE)
+ .append(getMerchantCode());
+
+ return qBuilder.toString().toLowerCase();
+ }
+
+
+
+ public String getMerchantCode() {
+ return merchantCode;
+ }
+
+ public void setMerchantCode(String merchantCode) {
+ this.merchantCode = merchantCode;
+ }
+
+ public String getLanguageCode() {
+ return languageCode;
+ }
+
+ public void setLanguageCode(String languageCode) {
+ this.languageCode = languageCode;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/store/security/CustomerServicesImpl.java b/sm-shop/src/main/java/com/salesmanager/shop/store/security/CustomerServicesImpl.java
new file mode 100644
index 0000000..a704ad8
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/store/security/CustomerServicesImpl.java
@@ -0,0 +1,108 @@
+package com.salesmanager.web.services.security;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+import org.apache.commons.collections.CollectionUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.dao.DataAccessException;
+import org.springframework.security.core.GrantedAuthority;
+import org.springframework.security.core.authority.GrantedAuthorityImpl;
+import org.springframework.security.core.userdetails.User;
+import org.springframework.security.core.userdetails.UserDetails;
+import org.springframework.security.core.userdetails.UserDetailsService;
+import org.springframework.security.core.userdetails.UsernameNotFoundException;
+import org.springframework.stereotype.Service;
+
+import com.salesmanager.core.business.customer.model.Customer;
+import com.salesmanager.core.business.customer.service.CustomerService;
+import com.salesmanager.core.business.generic.exception.ServiceException;
+import com.salesmanager.core.business.user.model.Group;
+import com.salesmanager.core.business.user.model.Permission;
+import com.salesmanager.core.business.user.service.GroupService;
+import com.salesmanager.core.business.user.service.PermissionService;
+import com.salesmanager.web.admin.security.SecurityDataAccessException;
+
+
+/**
+ *
+ * @author casams1
+ * http://stackoverflow.com/questions/5105776/spring-security-with
+ * -custom-user-details
+ */
+@Service("customerDetailsService")
+public class CustomerServicesImpl implements UserDetailsService{
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(CustomerServicesImpl.class);
+
+ @Inject
+ private CustomerService customerService;
+
+
+
+ @Inject
+ protected PermissionService permissionService;
+
+ @Inject
+ protected GroupService groupService;
+
+
+
+ @SuppressWarnings("deprecation")
+ public UserDetails loadUserByUsername(String userName)
+ throws UsernameNotFoundException, DataAccessException {
+
+ Customer user = null;
+ Collection<GrantedAuthority> authorities = new ArrayList<GrantedAuthority>();
+
+ try {
+
+ user = customerService.getByNick(userName);
+
+ if(user==null) {
+ return null;
+ }
+
+
+
+ List<Integer> groupsId = new ArrayList<Integer>();
+ List<Group> groups = user.getGroups();
+ for(Group group : groups) {
+ groupsId.add(group.getId());
+ }
+
+
+ if(CollectionUtils.isNotEmpty(groupsId)) {
+ List<Permission> permissions = permissionService.getPermissions(groupsId);
+ for(Permission permission : permissions) {
+ GrantedAuthority auth = new GrantedAuthorityImpl(permission.getPermissionName());
+ authorities.add(auth);
+ }
+ }
+
+
+
+
+
+
+ } catch (ServiceException e) {
+ LOGGER.error("Exception while querrying customer",e);
+ throw new SecurityDataAccessException("Cannot authenticate customer",e);
+ }
+
+ User authUser = new User(userName, user.getPassword(), true, true,
+ true, true, authorities);
+
+ return authUser;
+
+
+ }
+
+
+
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/store/security/ServicesAuthenticationEntryPoint.java b/sm-shop/src/main/java/com/salesmanager/shop/store/security/ServicesAuthenticationEntryPoint.java
new file mode 100644
index 0000000..083e779
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/store/security/ServicesAuthenticationEntryPoint.java
@@ -0,0 +1,19 @@
+package com.salesmanager.web.services.security;
+
+import java.io.IOException;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.springframework.security.core.AuthenticationException;
+import org.springframework.security.web.AuthenticationEntryPoint;
+
+public class ServicesAuthenticationEntryPoint implements AuthenticationEntryPoint {
+
+ @Override
+ public void commence( HttpServletRequest request, HttpServletResponse response,
+ AuthenticationException authException ) throws IOException{
+ response.sendError( HttpServletResponse.SC_UNAUTHORIZED, "Unauthorized" );
+ }
+
+}
\ No newline at end of file
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/store/security/ServicesAuthenticationSuccessHandler.java b/sm-shop/src/main/java/com/salesmanager/shop/store/security/ServicesAuthenticationSuccessHandler.java
new file mode 100644
index 0000000..066ebb9
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/store/security/ServicesAuthenticationSuccessHandler.java
@@ -0,0 +1,42 @@
+package com.salesmanager.web.services.security;
+
+import java.io.IOException;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.springframework.security.core.Authentication;
+import org.springframework.security.web.authentication.SimpleUrlAuthenticationSuccessHandler;
+import org.springframework.security.web.savedrequest.HttpSessionRequestCache;
+import org.springframework.security.web.savedrequest.RequestCache;
+import org.springframework.security.web.savedrequest.SavedRequest;
+import org.springframework.util.StringUtils;
+
+public class ServicesAuthenticationSuccessHandler extends SimpleUrlAuthenticationSuccessHandler {
+
+ private RequestCache requestCache = new HttpSessionRequestCache();
+
+ @Override
+ public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws ServletException, IOException {
+ SavedRequest savedRequest = requestCache.getRequest(request, response);
+
+ if (savedRequest == null) {
+ clearAuthenticationAttributes(request);
+ return;
+ }
+ String targetUrlParam = getTargetUrlParameter();
+ if (isAlwaysUseDefaultTargetUrl() || (targetUrlParam != null && StringUtils.hasText(request.getParameter(targetUrlParam)))) {
+ requestCache.removeRequest(request, response);
+ clearAuthenticationAttributes(request);
+ return;
+ }
+
+ clearAuthenticationAttributes(request);
+ }
+
+ public void setRequestCache(RequestCache requestCache) {
+ this.requestCache = requestCache;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/store/services/category/ShoppingCategoryRESTController.java b/sm-shop/src/main/java/com/salesmanager/shop/store/services/category/ShoppingCategoryRESTController.java
new file mode 100644
index 0000000..eac71ee
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/store/services/category/ShoppingCategoryRESTController.java
@@ -0,0 +1,211 @@
+package com.salesmanager.web.services.controller.category;
+
+
+import java.util.Map;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
+
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.ResponseStatus;
+
+import com.salesmanager.core.business.catalog.category.model.Category;
+import com.salesmanager.core.business.catalog.category.service.CategoryService;
+import com.salesmanager.core.business.catalog.product.service.ProductService;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.merchant.service.MerchantStoreService;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.business.reference.language.service.LanguageService;
+import com.salesmanager.web.constants.Constants;
+import com.salesmanager.web.entity.catalog.category.PersistableCategory;
+import com.salesmanager.web.entity.catalog.category.ReadableCategory;
+import com.salesmanager.web.populator.catalog.ReadableCategoryPopulator;
+import com.salesmanager.web.shop.controller.category.facade.CategoryFacade;
+
+/**
+ * Rest services for category management
+ * @author Carl Samson
+ *
+ */
+@Controller
+@RequestMapping("/services")
+public class ShoppingCategoryRESTController {
+
+ @Inject
+ private LanguageService languageService;
+
+ @Inject
+ private MerchantStoreService merchantStoreService;
+
+ @Inject
+ private CategoryService categoryService;
+
+ @Inject
+ private ProductService productService;
+
+ @Inject
+ private CategoryFacade categoryFacade;
+
+
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(ShoppingCategoryRESTController.class);
+
+
+
+ @RequestMapping( value="/public/{store}/category/{id}", method=RequestMethod.GET)
+ @ResponseBody
+ public ReadableCategory getCategory(@PathVariable final String store, @PathVariable Long id, HttpServletRequest request, HttpServletResponse response) {
+
+
+ try {
+
+ /** default routine **/
+
+ MerchantStore merchantStore = (MerchantStore)request.getAttribute(Constants.MERCHANT_STORE);
+ if(merchantStore!=null) {
+ if(!merchantStore.getCode().equals(store)) {
+ merchantStore = null;
+ }
+ }
+
+ if(merchantStore== null) {
+ merchantStore = merchantStoreService.getByCode(store);
+ }
+
+ if(merchantStore==null) {
+ LOGGER.error("Merchant store is null for code " + store);
+ response.sendError(503, "Merchant store is null for code " + store);
+ return null;
+ }
+
+ Language language = merchantStore.getDefaultLanguage();
+
+ Map<String,Language> langs = languageService.getLanguagesMap();
+
+
+ if(!StringUtils.isBlank(request.getParameter(Constants.LANG))) {
+ String lang = request.getParameter(Constants.LANG);
+ if(lang!=null) {
+ language = langs.get(language);
+ }
+ }
+
+ if(language==null) {
+ language = merchantStore.getDefaultLanguage();
+ }
+
+
+ /** end default routine **/
+
+
+ Category dbCategory = categoryService.getByLanguage(id, language);
+
+ if(dbCategory==null) {
+ response.sendError(503, "Invalid category id");
+ return null;
+ }
+
+ if(dbCategory.getMerchantStore().getId().intValue()!=merchantStore.getId().intValue()){
+ response.sendError(503, "Invalid category id");
+ return null;
+ }
+
+
+ ReadableCategoryPopulator populator = new ReadableCategoryPopulator();
+
+ //TODO count products by category
+ ReadableCategory category = populator.populate(dbCategory, new ReadableCategory(), merchantStore, merchantStore.getDefaultLanguage());
+
+ return category;
+
+ } catch (Exception e) {
+ LOGGER.error("Error while saving category",e);
+ try {
+ response.sendError(503, "Error while saving category " + e.getMessage());
+ } catch (Exception ignore) {
+ }
+ return null;
+ }
+ }
+
+
+
+
+ /**
+ * Create new category for a given MerchantStore
+ */
+ @RequestMapping( value="/private/{store}/category", method=RequestMethod.POST)
+ @ResponseStatus(HttpStatus.CREATED)
+ @ResponseBody
+ public PersistableCategory createCategory(@PathVariable final String store, @Valid @RequestBody PersistableCategory category, HttpServletRequest request, HttpServletResponse response) {
+
+
+ try {
+
+
+ MerchantStore merchantStore = (MerchantStore)request.getAttribute(Constants.MERCHANT_STORE);
+ if(merchantStore!=null) {
+ if(!merchantStore.getCode().equals(store)) {
+ merchantStore = null;
+ }
+ }
+
+ if(merchantStore== null) {
+ merchantStore = merchantStoreService.getByCode(store);
+ }
+
+ if(merchantStore==null) {
+ LOGGER.error("Merchant store is null for code " + store);
+ response.sendError(503, "Merchant store is null for code " + store);
+ return null;
+ }
+
+ categoryFacade.saveCategory(merchantStore, category);
+
+
+ category.setId(category.getId());
+
+ return category;
+
+ } catch (Exception e) {
+ LOGGER.error("Error while saving category",e);
+ try {
+ response.sendError(503, "Error while saving category " + e.getMessage());
+ } catch (Exception ignore) {
+ }
+ return null;
+ }
+ }
+
+
+
+ /**
+ * Deletes a category for a given MerchantStore
+ */
+ @RequestMapping( value="/private/{store}/category/{id}", method=RequestMethod.DELETE)
+ @ResponseStatus(HttpStatus.NO_CONTENT)
+ public void deleteCategory(@PathVariable final String store, @PathVariable Long id, HttpServletRequest request, HttpServletResponse response) throws Exception {
+ Category category = categoryService.getById(id);
+ if(category != null && category.getMerchantStore().getCode().equalsIgnoreCase(store)){
+ categoryService.delete(category);
+ }else{
+ response.sendError(404, "No Category found for ID : " + id);
+ }
+ }
+
+
+
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/store/services/customer/CustomerRESTController.java b/sm-shop/src/main/java/com/salesmanager/shop/store/services/customer/CustomerRESTController.java
new file mode 100644
index 0000000..b755fb5
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/store/services/customer/CustomerRESTController.java
@@ -0,0 +1,394 @@
+package com.salesmanager.web.services.controller.customer;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Locale;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
+
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.security.authentication.encoding.PasswordEncoder;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.ResponseStatus;
+
+import com.salesmanager.core.business.customer.model.Customer;
+import com.salesmanager.core.business.customer.service.CustomerService;
+import com.salesmanager.core.business.customer.service.attribute.CustomerOptionService;
+import com.salesmanager.core.business.customer.service.attribute.CustomerOptionValueService;
+import com.salesmanager.core.business.generic.exception.ServiceException;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.merchant.service.MerchantStoreService;
+import com.salesmanager.core.business.reference.country.service.CountryService;
+import com.salesmanager.core.business.reference.language.service.LanguageService;
+import com.salesmanager.core.business.reference.zone.service.ZoneService;
+import com.salesmanager.core.business.system.service.EmailService;
+import com.salesmanager.core.business.user.model.Group;
+import com.salesmanager.core.business.user.model.GroupType;
+import com.salesmanager.core.business.user.service.GroupService;
+import com.salesmanager.web.admin.entity.userpassword.UserReset;
+import com.salesmanager.web.constants.Constants;
+import com.salesmanager.web.entity.customer.PersistableCustomer;
+import com.salesmanager.web.entity.customer.ReadableCustomer;
+import com.salesmanager.web.entity.customer.attribute.PersistableCustomerOption;
+import com.salesmanager.web.entity.customer.attribute.PersistableCustomerOptionValue;
+import com.salesmanager.web.populator.customer.CustomerPopulator;
+import com.salesmanager.web.populator.customer.PersistableCustomerOptionPopulator;
+import com.salesmanager.web.populator.customer.PersistableCustomerOptionValuePopulator;
+import com.salesmanager.web.populator.customer.ReadableCustomerPopulator;
+import com.salesmanager.web.services.controller.category.ShoppingCategoryRESTController;
+import com.salesmanager.web.utils.EmailTemplatesUtils;
+import com.salesmanager.web.utils.LabelUtils;
+import com.salesmanager.web.utils.LocaleUtils;
+
+@Controller
+@RequestMapping("/services")
+public class CustomerRESTController {
+
+ @Inject
+ private CustomerService customerService;
+
+ @Inject
+ private CustomerOptionValueService customerOptionValueService;
+
+ @Inject
+ private CustomerOptionService customerOptionService;
+
+
+ @Inject
+ private MerchantStoreService merchantStoreService;
+
+ @Inject
+ private LanguageService languageService;
+
+
+ @Inject
+ private CountryService countryService;
+
+ @Inject
+ private GroupService groupService;
+
+ @Inject
+ private ZoneService zoneService;
+
+ @Inject
+ private PasswordEncoder passwordEncoder;
+
+ @Inject
+ EmailService emailService;
+
+ @Inject
+ private LabelUtils messages;
+
+ @Inject
+ private EmailTemplatesUtils emailTemplatesUtils;
+
+
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(ShoppingCategoryRESTController.class);
+
+
+ /**
+ * Returns a single customer for a given MerchantStore
+ */
+ @RequestMapping( value="/private/{store}/customer/{id}", method=RequestMethod.GET)
+ @ResponseBody
+ public ReadableCustomer getCustomer(@PathVariable final String store, @PathVariable Long id, HttpServletRequest request, HttpServletResponse response) throws Exception {
+ MerchantStore merchantStore = (MerchantStore)request.getAttribute(Constants.MERCHANT_STORE);
+ if(merchantStore!=null) {
+ if(!merchantStore.getCode().equals(store)) {
+ merchantStore = null;
+ }
+ }
+
+ if(merchantStore== null) {
+ merchantStore = merchantStoreService.getByCode(store);
+ }
+
+ if(merchantStore==null) {
+ LOGGER.error("Merchant store is null for code " + store);
+ response.sendError(503, "Merchant store is null for code " + store);
+ return null;
+ }
+
+ Customer customer = customerService.getById(id);
+ com.salesmanager.web.entity.customer.Customer customerProxy;
+ if(customer == null){
+ response.sendError(404, "No Customer found with id : " + id);
+ return null;
+ }
+
+ ReadableCustomerPopulator populator = new ReadableCustomerPopulator();
+ ReadableCustomer readableCustomer = new ReadableCustomer();
+ populator.populate(customer, readableCustomer, merchantStore, merchantStore.getDefaultLanguage());
+
+ return readableCustomer;
+ }
+
+
+ /**
+ * Create a customer option value
+ * @param store
+ * @param optionValue
+ * @param request
+ * @param response
+ * @return
+ * @throws Exception
+ */
+ @RequestMapping( value="/private/{store}/customer/optionValue", method=RequestMethod.POST)
+ @ResponseStatus(HttpStatus.CREATED)
+ @ResponseBody
+ public PersistableCustomerOptionValue createCustomerOptionValue(@PathVariable final String store, @Valid @RequestBody PersistableCustomerOptionValue optionValue, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+
+ try {
+
+ MerchantStore merchantStore = (MerchantStore)request.getAttribute(Constants.MERCHANT_STORE);
+ if(merchantStore!=null) {
+ if(!merchantStore.getCode().equals(store)) {
+ merchantStore = null;
+ }
+ }
+
+ if(merchantStore== null) {
+ merchantStore = merchantStoreService.getByCode(store);
+ }
+
+ if(merchantStore==null) {
+ LOGGER.error("Merchant store is null for code " + store);
+ response.sendError(503, "Merchant store is null for code " + store);
+ return null;
+ }
+
+ PersistableCustomerOptionValuePopulator populator = new PersistableCustomerOptionValuePopulator();
+ populator.setLanguageService(languageService);
+
+ com.salesmanager.core.business.customer.model.attribute.CustomerOptionValue optValue = new com.salesmanager.core.business.customer.model.attribute.CustomerOptionValue();
+ populator.populate(optionValue, optValue, merchantStore, merchantStore.getDefaultLanguage());
+
+ customerOptionValueService.save(optValue);
+
+ optionValue.setId(optValue.getId());
+
+ return optionValue;
+
+ } catch (Exception e) {
+ LOGGER.error("Error while saving customer option value",e);
+ try {
+ response.sendError(503, "Error while saving product option value" + e.getMessage());
+ } catch (Exception ignore) {
+ }
+ return null;
+ }
+ }
+
+ /**
+ * Create a customer option
+ * @param store
+ * @param option
+ * @param request
+ * @param response
+ * @return
+ * @throws Exception
+ */
+ @RequestMapping( value="/private/{store}/customer/option", method=RequestMethod.POST)
+ @ResponseStatus(HttpStatus.CREATED)
+ @ResponseBody
+ public PersistableCustomerOption createCustomerOption(@PathVariable final String store, @Valid @RequestBody PersistableCustomerOption option, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+
+ try {
+
+ MerchantStore merchantStore = (MerchantStore)request.getAttribute(Constants.MERCHANT_STORE);
+ if(merchantStore!=null) {
+ if(!merchantStore.getCode().equals(store)) {
+ merchantStore = null;
+ }
+ }
+
+ if(merchantStore== null) {
+ merchantStore = merchantStoreService.getByCode(store);
+ }
+
+ if(merchantStore==null) {
+ LOGGER.error("Merchant store is null for code " + store);
+ response.sendError(503, "Merchant store is null for code " + store);
+ return null;
+ }
+
+ PersistableCustomerOptionPopulator populator = new PersistableCustomerOptionPopulator();
+ populator.setLanguageService(languageService);
+
+ com.salesmanager.core.business.customer.model.attribute.CustomerOption opt = new com.salesmanager.core.business.customer.model.attribute.CustomerOption();
+ populator.populate(option, opt, merchantStore, merchantStore.getDefaultLanguage());
+
+ customerOptionService.save(opt);
+
+ option.setId(opt.getId());
+
+ return option;
+
+ } catch (Exception e) {
+ LOGGER.error("Error while saving customer option",e);
+ try {
+ response.sendError(503, "Error while saving product option value" + e.getMessage());
+ } catch (Exception ignore) {
+ }
+ return null;
+ }
+ }
+
+
+ /**
+ * Returns all customers for a given MerchantStore
+ */
+ @RequestMapping( value="/private/{store}/customer", method=RequestMethod.GET)
+ @ResponseBody
+ public List<ReadableCustomer> getCustomers(@PathVariable final String store, HttpServletRequest request, HttpServletResponse response) throws Exception {
+ MerchantStore merchantStore = (MerchantStore)request.getAttribute(Constants.MERCHANT_STORE);
+ if(merchantStore!=null) {
+ if(!merchantStore.getCode().equals(store)) {
+ merchantStore = null;
+ }
+ }
+
+ if(merchantStore== null) {
+ merchantStore = merchantStoreService.getByCode(store);
+ }
+
+ if(merchantStore==null) {
+ LOGGER.error("Merchant store is null for code " + store);
+ response.sendError(503, "Merchant store is null for code " + store);
+ return null;
+ }
+
+ List<Customer> customers = customerService.listByStore(merchantStore);
+ List<ReadableCustomer> returnCustomers = new ArrayList<ReadableCustomer>();
+ for(Customer customer : customers) {
+
+ ReadableCustomerPopulator populator = new ReadableCustomerPopulator();
+ ReadableCustomer readableCustomer = new ReadableCustomer();
+ populator.populate(customer, readableCustomer, merchantStore, merchantStore.getDefaultLanguage());
+ returnCustomers.add(readableCustomer);
+
+ }
+
+ return returnCustomers;
+ }
+
+
+
+ /**
+ * Deletes a customer for a given MerchantStore
+ */
+ @RequestMapping( value="/private/{store}/customer/{id}", method=RequestMethod.DELETE)
+ @ResponseStatus(HttpStatus.NO_CONTENT)
+ public void deleteCustomer(@PathVariable final String store, @PathVariable Long id, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+
+ try {
+
+ Customer customer = customerService.getById(id);
+
+ if(customer==null) {
+ response.sendError(404, "No Customer found for ID : " + id);
+ return;
+ }
+
+ MerchantStore merchantStore = merchantStoreService.getByCode(store);
+ if(merchantStore == null) {
+ response.sendError(404, "Invalid merchant store : " + store);
+ return;
+ }
+
+ if(merchantStore.getId().intValue()!= customer.getMerchantStore().getId().intValue()){
+ response.sendError(404, "Customer id: " + id + " is not part of store " + store);
+ return;
+ }
+
+ customerService.delete(customer);
+
+
+ } catch (ServiceException se) {
+ LOGGER.error("Cannot delete customer",se);
+ response.sendError(404, "An exception occured while removing the customer");
+ return;
+ }
+
+ }
+
+
+ /**
+ * Create new customer for a given MerchantStore
+ */
+ @RequestMapping( value="/private/{store}/customer", method=RequestMethod.POST)
+ @ResponseStatus(HttpStatus.CREATED)
+ @ResponseBody
+ public PersistableCustomer createCustomer(@PathVariable final String store, @Valid @RequestBody PersistableCustomer customer, HttpServletRequest request, HttpServletResponse response) throws Exception {
+ MerchantStore merchantStore = (MerchantStore)request.getAttribute(Constants.MERCHANT_STORE);
+ if(merchantStore!=null) {
+ if(!merchantStore.getCode().equals(store)) {
+ merchantStore = null;
+ }
+ }
+
+ if(merchantStore== null) {
+ merchantStore = merchantStoreService.getByCode(store);
+ }
+
+ if(merchantStore==null) {
+ LOGGER.error("Merchant store is null for code " + store);
+ response.sendError(503, "Merchant store is null for code " + store);
+ return null;
+ }
+
+ Customer cust = new Customer();
+
+ CustomerPopulator populator = new CustomerPopulator();
+ populator.setCountryService(countryService);
+ populator.setCustomerOptionService(customerOptionService);
+ populator.setCustomerOptionValueService(customerOptionValueService);
+ populator.setLanguageService(languageService);
+ populator.setLanguageService(languageService);
+ populator.setZoneService(zoneService);
+ populator.populate(customer, cust, merchantStore, merchantStore.getDefaultLanguage());
+
+ List<Group> groups = groupService.listGroup(GroupType.ADMIN);
+ cust.setGroups(groups);
+
+ Locale customerLocale = LocaleUtils.getLocale(cust.getDefaultLanguage());
+
+ String password = customer.getClearPassword();
+ if(StringUtils.isBlank(password)) {
+ password = UserReset.generateRandomString();
+ customer.setClearPassword(password);
+ }
+
+ @SuppressWarnings("deprecation")
+ String encodedPassword = passwordEncoder.encodePassword(password, null);
+ if(!StringUtils.isBlank(customer.getEncodedPassword())) {
+ encodedPassword = customer.getEncodedPassword();
+ customer.setClearPassword("");
+ }
+
+ customer.setEncodedPassword(encodedPassword);
+ customerService.save(cust);
+ customer.setId(cust.getId());
+
+ emailTemplatesUtils.sendRegistrationEmail(customer, merchantStore, customerLocale, request.getContextPath());
+
+
+ return customer;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/store/services/order/OrderRESTController.java b/sm-shop/src/main/java/com/salesmanager/shop/store/services/order/OrderRESTController.java
new file mode 100644
index 0000000..7a39242
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/store/services/order/OrderRESTController.java
@@ -0,0 +1,277 @@
+package com.salesmanager.web.services.controller.order;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
+
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.ResponseStatus;
+
+import com.salesmanager.core.business.catalog.product.service.ProductService;
+import com.salesmanager.core.business.catalog.product.service.attribute.ProductAttributeService;
+import com.salesmanager.core.business.catalog.product.service.file.DigitalProductService;
+import com.salesmanager.core.business.customer.model.Customer;
+import com.salesmanager.core.business.customer.service.CustomerService;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.merchant.service.MerchantStoreService;
+import com.salesmanager.core.business.order.model.Order;
+import com.salesmanager.core.business.order.service.OrderService;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.business.reference.language.service.LanguageService;
+import com.salesmanager.web.constants.Constants;
+import com.salesmanager.web.entity.customer.PersistableCustomer;
+import com.salesmanager.web.entity.order.PersistableOrder;
+import com.salesmanager.web.entity.order.ReadableOrderList;
+import com.salesmanager.web.populator.customer.CustomerPopulator;
+import com.salesmanager.web.populator.order.PersistableOrderPopulator;
+import com.salesmanager.web.shop.controller.order.facade.OrderFacade;
+
+@Controller
+@RequestMapping("/services/private")
+public class OrderRESTController {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(OrderRESTController.class);
+
+
+ @Inject
+ private MerchantStoreService merchantStoreService;
+
+ @Inject
+ private ProductService productService;
+
+ @Inject
+ private ProductAttributeService productAttributeService;
+
+ @Inject
+ private DigitalProductService digitalProductService;
+
+ @Inject
+ private OrderFacade orderFacade;
+
+ @Inject
+ private OrderService orderService;
+
+ @Inject
+ private CustomerService customerService;
+
+ @Inject
+ private LanguageService languageService;
+
+
+ @RequestMapping( value="/{store}/orders", method=RequestMethod.POST)
+ @ResponseStatus(HttpStatus.CREATED)
+ @ResponseBody
+ public PersistableOrder createOrder(@PathVariable final String store, @Valid @RequestBody PersistableOrder order, HttpServletRequest request, HttpServletResponse response) throws Exception {
+ MerchantStore merchantStore = (MerchantStore)request.getAttribute(Constants.MERCHANT_STORE);
+ if(merchantStore!=null) {
+ if(!merchantStore.getCode().equals(store)) {
+ merchantStore = null;
+ }
+ }
+
+ if(merchantStore== null) {
+ merchantStore = merchantStoreService.getByCode(store);
+ }
+
+ if(merchantStore==null) {
+ LOGGER.error("Merchant store is null for code " + store);
+ response.sendError(503, "Merchant store is null for code " + store);
+ return null;
+ }
+
+
+ PersistableCustomer cust = order.getCustomer();
+ if(cust!=null) {
+ CustomerPopulator customerPopulator = new CustomerPopulator();
+ Customer customer = new Customer();
+ customerPopulator.populate(cust, customer, merchantStore, merchantStore.getDefaultLanguage());
+ customerService.save(customer);
+ cust.setId(customer.getId());
+ }
+
+
+ Order modelOrder = new Order();
+ PersistableOrderPopulator populator = new PersistableOrderPopulator();
+ populator.setDigitalProductService(digitalProductService);
+ populator.setProductAttributeService(productAttributeService);
+ populator.setProductService(productService);
+
+ populator.populate(order, modelOrder, merchantStore, merchantStore.getDefaultLanguage());
+
+
+ orderService.save(modelOrder);
+ order.setId(modelOrder.getId());
+
+ return order;
+ }
+
+
+ /**
+ * Get a list of orders
+ * accept request parameter 'lang' [en,fr...] otherwise store dafault language
+ * accept request parameter 'start' start index for count
+ * accept request parameter 'max' maximum number count, otherwise returns all
+ * @param store
+ * @param order
+ * @param request
+ * @param response
+ * @return
+ * @throws Exception
+ */
+ @RequestMapping( value="/{store}/orders/", method=RequestMethod.GET)
+ @ResponseStatus(HttpStatus.ACCEPTED)
+ @ResponseBody
+ public ReadableOrderList listOrders(@PathVariable final String store, HttpServletRequest request, HttpServletResponse response) throws Exception {
+ MerchantStore merchantStore = (MerchantStore)request.getAttribute(Constants.MERCHANT_STORE);
+ if(merchantStore!=null) {
+ if(!merchantStore.getCode().equals(store)) {
+ merchantStore = null;
+ }
+ }
+
+ if(merchantStore== null) {
+ merchantStore = merchantStoreService.getByCode(store);
+ }
+
+ if(merchantStore==null) {
+ LOGGER.error("Merchant store is null for code " + store);
+ response.sendError(503, "Merchant store is null for code " + store);
+ return null;
+ }
+
+ //get additional request parameters for orders
+ String lang = request.getParameter(Constants.LANG);
+ String start = request.getParameter(Constants.START);
+ String max = request.getParameter(Constants.MAX);
+
+ int startCount = 0;
+ int maxCount = 0;
+
+ if(StringUtils.isBlank(lang)) {
+ lang = merchantStore.getDefaultLanguage().getCode();
+ }
+
+
+ Language language = languageService.getByCode(lang);
+
+ if(language==null) {
+ LOGGER.error("Language is null for code " + lang);
+ response.sendError(503, "Language is null for code " + lang);
+ return null;
+ }
+
+ try {
+ startCount = Integer.parseInt(start);
+ } catch (Exception e) {
+ LOGGER.info("Invalid value for start " + start);
+ }
+
+ try {
+ maxCount = Integer.parseInt(max);
+ } catch (Exception e) {
+ LOGGER.info("Invalid value for max " + max);
+ }
+
+
+
+ ReadableOrderList returnList = orderFacade.getReadableOrderList(merchantStore, startCount, maxCount, language);
+
+ return returnList;
+ }
+
+ /**
+ * Get a list of orders for a given customer
+ * accept request parameter 'lang' [en,fr...] otherwise store dafault language
+ * accept request parameter 'start' start index for count
+ * accept request parameter 'max' maximum number count, otherwise returns all
+ * @param store
+ * @param order
+ * @param request
+ * @param response
+ * @return
+ * @throws Exception
+ */
+ @RequestMapping( value="/{store}/orders/customer/{id}", method=RequestMethod.GET)
+ @ResponseStatus(HttpStatus.ACCEPTED)
+ @ResponseBody
+ public ReadableOrderList listOrders(@PathVariable final String store, @PathVariable final Long id, HttpServletRequest request, HttpServletResponse response) throws Exception {
+ MerchantStore merchantStore = (MerchantStore)request.getAttribute(Constants.MERCHANT_STORE);
+ if(merchantStore!=null) {
+ if(!merchantStore.getCode().equals(store)) {
+ merchantStore = null;
+ }
+ }
+
+ if(merchantStore== null) {
+ merchantStore = merchantStoreService.getByCode(store);
+ }
+
+ if(merchantStore==null) {
+ LOGGER.error("Merchant store is null for code " + store);
+ response.sendError(503, "Merchant store is null for code " + store);
+ return null;
+ }
+
+ //get additional request parameters for orders
+ String lang = request.getParameter(Constants.LANG);
+ String start = request.getParameter(Constants.START);
+ String max = request.getParameter(Constants.MAX);
+
+ int startCount = 0;
+ int maxCount = 0;
+
+ if(StringUtils.isBlank(lang)) {
+ lang = merchantStore.getDefaultLanguage().getCode();
+ }
+
+
+ Language language = languageService.getByCode(lang);
+
+ if(language==null) {
+ LOGGER.error("Language is null for code " + lang);
+ response.sendError(503, "Language is null for code " + lang);
+ return null;
+ }
+
+ try {
+ startCount = Integer.parseInt(start);
+ } catch (Exception e) {
+ LOGGER.info("Invalid value for start " + start);
+ }
+
+ try {
+ maxCount = Integer.parseInt(max);
+ } catch (Exception e) {
+ LOGGER.info("Invalid value for max " + max);
+ }
+
+ Customer customer = customerService.getById(id);
+
+ if(customer==null) {
+ LOGGER.error("Customer is null for id " + id);
+ response.sendError(503, "Customer is null for id " + id);
+ return null;
+ }
+
+ if(customer.getMerchantStore().getId().intValue()!=merchantStore.getId().intValue()) {
+ LOGGER.error("Customer is null for id " + id + " and store id " + store);
+ response.sendError(503, "Customer is null for id " + id + " and store id " + store);
+ return null;
+ }
+
+ ReadableOrderList returnList = orderFacade.getReadableOrderList(merchantStore, startCount, maxCount, language);
+
+ return returnList;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/store/services/product/ProductItemsRESTController.java b/sm-shop/src/main/java/com/salesmanager/shop/store/services/product/ProductItemsRESTController.java
new file mode 100644
index 0000000..bec326c
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/store/services/product/ProductItemsRESTController.java
@@ -0,0 +1,179 @@
+package com.salesmanager.web.services.controller.product;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import javax.inject.Inject;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import com.salesmanager.core.business.catalog.category.service.CategoryService;
+import com.salesmanager.core.business.catalog.product.service.PricingService;
+import com.salesmanager.core.business.catalog.product.service.ProductService;
+import com.salesmanager.core.business.catalog.product.service.attribute.ProductOptionService;
+import com.salesmanager.core.business.catalog.product.service.attribute.ProductOptionValueService;
+import com.salesmanager.core.business.catalog.product.service.manufacturer.ManufacturerService;
+import com.salesmanager.core.business.catalog.product.service.review.ProductReviewService;
+import com.salesmanager.core.business.customer.service.CustomerService;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.merchant.service.MerchantStoreService;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.business.reference.language.service.LanguageService;
+import com.salesmanager.core.business.tax.service.TaxClassService;
+import com.salesmanager.web.constants.Constants;
+import com.salesmanager.web.entity.catalog.product.ReadableProductList;
+import com.salesmanager.web.shop.controller.items.facade.ProductItemsFacade;
+import com.salesmanager.web.shop.controller.product.facade.ProductFacade;
+import com.salesmanager.web.shop.model.filter.QueryFilter;
+import com.salesmanager.web.shop.model.filter.QueryFilterType;
+import com.salesmanager.web.utils.ImageFilePath;
+
+/**
+ * API to create, read, updat and delete a Product
+ * API to create Manufacturer
+ * @author Carl Samson
+ *
+ */
+@Controller
+@RequestMapping("/services")
+public class ProductItemsRESTController {
+
+ @Autowired
+ private MerchantStoreService merchantStoreService;
+
+ @Autowired
+ private CategoryService categoryService;
+
+ @Autowired
+ private CustomerService customerService;
+
+ @Autowired
+ private ProductService productService;
+
+ @Autowired
+ private ProductFacade productFacade;
+
+ @Inject
+ private ProductItemsFacade productItemsFacade;
+
+ @Autowired
+ private ProductReviewService productReviewService;
+
+ @Autowired
+ private PricingService pricingService;
+
+ @Autowired
+ private ProductOptionService productOptionService;
+
+ @Autowired
+ private ProductOptionValueService productOptionValueService;
+
+ @Autowired
+ private TaxClassService taxClassService;
+
+ @Autowired
+ private ManufacturerService manufacturerService;
+
+ @Autowired
+ private LanguageService languageService;
+
+ @Autowired
+ @Qualifier("img")
+ private ImageFilePath imageUtils;
+
+
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(ProductItemsRESTController.class);
+
+
+
+
+ /**
+ * Items for manufacturer
+ * filter=BRAND&filter-value=123
+ * @param start
+ * @param max
+ * @param store
+ * @param language
+ * @param category
+ * @param filterType
+ * @param filterValue
+ * @param model
+ * @param request
+ * @param response
+ * @return
+ * @throws Exception
+ */
+ //@RequestMapping("/products/public/page/{start}/{max}/{store}/{language}/{category}.html/filter={filterType}/filter-value={filterValue}")
+ /** fixed filter **/
+ @RequestMapping("/public/products/page/{start}/{max}/{store}/{language}/manufacturer/{id}")
+ @ResponseBody
+ public ReadableProductList getProductItemsByManufacturer(@PathVariable int start, @PathVariable int max, @PathVariable String store, @PathVariable final String language, @PathVariable final Long id, Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+ try {
+
+ /**
+ * How to Spring MVC Rest web service - ajax / jquery
+ * http://codetutr.com/2013/04/09/spring-mvc-easy-rest-based-json-services-with-responsebody/
+ */
+
+ MerchantStore merchantStore = (MerchantStore)request.getAttribute(Constants.MERCHANT_STORE);
+
+
+ Map<String,Language> langs = languageService.getLanguagesMap();
+
+ if(merchantStore!=null) {
+ if(!merchantStore.getCode().equals(store)) {
+ merchantStore = null; //reset for the current request
+ }
+ }
+
+ if(merchantStore== null) {
+ merchantStore = merchantStoreService.getByCode(store);
+ }
+
+ if(merchantStore==null) {
+ LOGGER.error("Merchant store is null for code " + store);
+ response.sendError(503, "Merchant store is null for code " + store);//TODO localized message
+ return null;
+ }
+
+
+
+ Language lang = langs.get(language);
+ if(lang==null) {
+ lang = langs.get(Constants.DEFAULT_LANGUAGE);
+ }
+
+
+
+ ReadableProductList list = productItemsFacade.listItemsByManufacturer(merchantStore, lang, id, start, max);
+
+
+ return list;
+
+ } catch (Exception e) {
+ LOGGER.error("Error while getting products",e);
+ response.sendError(503, "An error occured while retrieving products " + e.getMessage());
+ }
+
+ return null;
+
+ }
+
+
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/store/services/product/ShopProductRESTController.java b/sm-shop/src/main/java/com/salesmanager/shop/store/services/product/ShopProductRESTController.java
new file mode 100644
index 0000000..f265c14
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/store/services/product/ShopProductRESTController.java
@@ -0,0 +1,863 @@
+package com.salesmanager.web.services.controller.product;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import javax.inject.Inject;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
+
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.http.HttpStatus;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.ResponseStatus;
+
+import com.salesmanager.core.business.catalog.category.model.Category;
+import com.salesmanager.core.business.catalog.category.service.CategoryService;
+import com.salesmanager.core.business.catalog.product.model.Product;
+import com.salesmanager.core.business.catalog.product.model.ProductCriteria;
+import com.salesmanager.core.business.catalog.product.model.review.ProductReview;
+import com.salesmanager.core.business.catalog.product.service.PricingService;
+import com.salesmanager.core.business.catalog.product.service.ProductService;
+import com.salesmanager.core.business.catalog.product.service.attribute.ProductOptionService;
+import com.salesmanager.core.business.catalog.product.service.attribute.ProductOptionValueService;
+import com.salesmanager.core.business.catalog.product.service.manufacturer.ManufacturerService;
+import com.salesmanager.core.business.catalog.product.service.review.ProductReviewService;
+import com.salesmanager.core.business.customer.service.CustomerService;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.merchant.service.MerchantStoreService;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.business.reference.language.service.LanguageService;
+import com.salesmanager.core.business.tax.service.TaxClassService;
+import com.salesmanager.web.constants.Constants;
+import com.salesmanager.web.entity.catalog.manufacturer.PersistableManufacturer;
+import com.salesmanager.web.entity.catalog.product.PersistableProduct;
+import com.salesmanager.web.entity.catalog.product.PersistableProductReview;
+import com.salesmanager.web.entity.catalog.product.ProductPriceEntity;
+import com.salesmanager.web.entity.catalog.product.ReadableProduct;
+import com.salesmanager.web.entity.catalog.product.ReadableProductList;
+import com.salesmanager.web.entity.catalog.product.attribute.PersistableProductOption;
+import com.salesmanager.web.entity.catalog.product.attribute.PersistableProductOptionValue;
+import com.salesmanager.web.populator.catalog.PersistableProductOptionPopulator;
+import com.salesmanager.web.populator.catalog.PersistableProductOptionValuePopulator;
+import com.salesmanager.web.populator.catalog.PersistableProductReviewPopulator;
+import com.salesmanager.web.populator.catalog.ReadableProductPopulator;
+import com.salesmanager.web.populator.manufacturer.PersistableManufacturerPopulator;
+import com.salesmanager.web.shop.controller.items.facade.ProductItemsFacade;
+import com.salesmanager.web.shop.controller.product.facade.ProductFacade;
+import com.salesmanager.web.shop.model.filter.QueryFilter;
+import com.salesmanager.web.shop.model.filter.QueryFilterType;
+import com.salesmanager.web.utils.ImageFilePath;
+
+/**
+ * API to create, read, updat and delete a Product
+ * API to create Manufacturer
+ * @author Carl Samson
+ *
+ */
+@Controller
+@RequestMapping("/services")
+public class ShopProductRESTController {
+
+ @Inject
+ private MerchantStoreService merchantStoreService;
+
+ @Inject
+ private CategoryService categoryService;
+
+ @Inject
+ private CustomerService customerService;
+
+ @Inject
+ private ProductService productService;
+
+ @Inject
+ private ProductFacade productFacade;
+
+ @Inject
+ private ProductItemsFacade productItemsFacade;
+
+ @Inject
+ private ProductReviewService productReviewService;
+
+ @Inject
+ private PricingService pricingService;
+
+ @Inject
+ private ProductOptionService productOptionService;
+
+ @Inject
+ private ProductOptionValueService productOptionValueService;
+
+ @Inject
+ private TaxClassService taxClassService;
+
+ @Inject
+ private ManufacturerService manufacturerService;
+
+ @Inject
+ private LanguageService languageService;
+
+ @Inject
+ @Qualifier("img")
+ private ImageFilePath imageUtils;
+
+
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(ShopProductRESTController.class);
+
+
+ /**
+ * Create new product for a given MerchantStore
+ */
+ @RequestMapping( value="/private/{store}/product", method=RequestMethod.POST)
+ @ResponseStatus(HttpStatus.CREATED)
+ @ResponseBody
+ public PersistableProduct createProduct(@PathVariable final String store, @Valid @RequestBody PersistableProduct product, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+
+ try {
+
+ MerchantStore merchantStore = (MerchantStore)request.getAttribute(Constants.MERCHANT_STORE);
+ if(merchantStore!=null) {
+ if(!merchantStore.getCode().equals(store)) {
+ merchantStore = null;
+ }
+ }
+
+ if(merchantStore== null) {
+ merchantStore = merchantStoreService.getByCode(store);
+ }
+
+ if(merchantStore==null) {
+ LOGGER.error("Merchant store is null for code " + store);
+ response.sendError(503, "Merchant store is null for code " + store);
+ return null;
+ }
+
+ productFacade.saveProduct(merchantStore, product, merchantStore.getDefaultLanguage());
+
+ return product;
+
+ } catch (Exception e) {
+ LOGGER.error("Error while saving product",e);
+ try {
+ response.sendError(503, "Error while saving product " + e.getMessage());
+ } catch (Exception ignore) {
+ }
+
+ return null;
+ }
+
+ }
+
+
+ @RequestMapping( value="/private/{store}/product/{id}", method=RequestMethod.DELETE)
+ @ResponseStatus(HttpStatus.NO_CONTENT)
+ public void deleteProduct(@PathVariable final String store, @PathVariable Long id, HttpServletRequest request, HttpServletResponse response) throws Exception {
+ Product product = productService.getById(id);
+ if(product != null && product.getMerchantStore().getCode().equalsIgnoreCase(store)){
+ productService.delete(product);
+ }else{
+ response.sendError(404, "No Product found for ID : " + id);
+ }
+ }
+
+ /**
+ * Method for creating a manufacturer
+ * @param store
+ * @param manufacturer
+ * @param model
+ * @param request
+ * @param response
+ * @return
+ * @throws Exception
+ */
+ @RequestMapping( value="/private/{store}/manufacturer", method=RequestMethod.POST)
+ @ResponseStatus(HttpStatus.CREATED)
+ @ResponseBody
+ public PersistableManufacturer createManufacturer(@PathVariable final String store, @Valid @RequestBody PersistableManufacturer manufacturer, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+
+ try {
+
+ MerchantStore merchantStore = (MerchantStore)request.getAttribute(Constants.MERCHANT_STORE);
+ if(merchantStore!=null) {
+ if(!merchantStore.getCode().equals(store)) {
+ merchantStore = null;
+ }
+ }
+
+ if(merchantStore== null) {
+ merchantStore = merchantStoreService.getByCode(store);
+ }
+
+ if(merchantStore==null) {
+ LOGGER.error("Merchant store is null for code " + store);
+ response.sendError(503, "Merchant store is null for code " + store);
+ return null;
+ }
+
+ PersistableManufacturerPopulator populator = new PersistableManufacturerPopulator();
+ populator.setLanguageService(languageService);
+
+ com.salesmanager.core.business.catalog.product.model.manufacturer.Manufacturer manuf = new com.salesmanager.core.business.catalog.product.model.manufacturer.Manufacturer();
+
+ populator.populate(manufacturer, manuf, merchantStore, merchantStore.getDefaultLanguage());
+
+ manufacturerService.save(manuf);
+
+ manufacturer.setId(manuf.getId());
+
+ return manufacturer;
+
+ } catch (Exception e) {
+ LOGGER.error("Error while saving product",e);
+ try {
+ response.sendError(503, "Error while saving product " + e.getMessage());
+ } catch (Exception ignore) {
+ }
+
+ return null;
+ }
+
+ }
+
+
+ @RequestMapping( value="/private/{store}/product/optionValue", method=RequestMethod.POST)
+ @ResponseStatus(HttpStatus.CREATED)
+ @ResponseBody
+ public PersistableProductOptionValue createProductOptionValue(@PathVariable final String store, @Valid @RequestBody PersistableProductOptionValue optionValue, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+
+ try {
+
+ MerchantStore merchantStore = (MerchantStore)request.getAttribute(Constants.MERCHANT_STORE);
+ if(merchantStore!=null) {
+ if(!merchantStore.getCode().equals(store)) {
+ merchantStore = null;
+ }
+ }
+
+ if(merchantStore== null) {
+ merchantStore = merchantStoreService.getByCode(store);
+ }
+
+ if(merchantStore==null) {
+ LOGGER.error("Merchant store is null for code " + store);
+ response.sendError(503, "Merchant store is null for code " + store);
+ return null;
+ }
+
+ PersistableProductOptionValuePopulator populator = new PersistableProductOptionValuePopulator();
+ populator.setLanguageService(languageService);
+
+ com.salesmanager.core.business.catalog.product.model.attribute.ProductOptionValue optValue = new com.salesmanager.core.business.catalog.product.model.attribute.ProductOptionValue();
+ populator.populate(optionValue, optValue, merchantStore, merchantStore.getDefaultLanguage());
+
+ productOptionValueService.save(optValue);
+
+ optionValue.setId(optValue.getId());
+
+ return optionValue;
+
+ } catch (Exception e) {
+ LOGGER.error("Error while saving product option value",e);
+ try {
+ response.sendError(503, "Error while saving product option value" + e.getMessage());
+ } catch (Exception ignore) {
+ }
+
+ return null;
+ }
+
+ }
+
+
+ @RequestMapping( value="/private/{store}/product/option", method=RequestMethod.POST)
+ @ResponseStatus(HttpStatus.CREATED)
+ @ResponseBody
+ public PersistableProductOption createProductOption(@PathVariable final String store, @Valid @RequestBody PersistableProductOption option, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+
+ try {
+
+ MerchantStore merchantStore = (MerchantStore)request.getAttribute(Constants.MERCHANT_STORE);
+ if(merchantStore!=null) {
+ if(!merchantStore.getCode().equals(store)) {
+ merchantStore = null;
+ }
+ }
+
+ if(merchantStore== null) {
+ merchantStore = merchantStoreService.getByCode(store);
+ }
+
+ if(merchantStore==null) {
+ LOGGER.error("Merchant store is null for code " + store);
+ response.sendError(503, "Merchant store is null for code " + store);
+ return null;
+ }
+
+ PersistableProductOptionPopulator populator = new PersistableProductOptionPopulator();
+ populator.setLanguageService(languageService);
+
+ com.salesmanager.core.business.catalog.product.model.attribute.ProductOption opt = new com.salesmanager.core.business.catalog.product.model.attribute.ProductOption();
+ populator.populate(option, opt, merchantStore, merchantStore.getDefaultLanguage());
+
+ productOptionService.save(opt);
+
+ option.setId(opt.getId());
+
+ return option;
+
+ } catch (Exception e) {
+ LOGGER.error("Error while saving product option",e);
+ try {
+ response.sendError(503, "Error while saving product option" + e.getMessage());
+ } catch (Exception ignore) {
+ }
+
+ return null;
+ }
+ }
+
+
+ @RequestMapping( value="/private/{store}/product/review", method=RequestMethod.POST)
+ @ResponseStatus(HttpStatus.CREATED)
+ @ResponseBody
+ public PersistableProductReview createProductReview(@PathVariable final String store, @Valid @RequestBody PersistableProductReview review, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+
+ try {
+
+ MerchantStore merchantStore = (MerchantStore)request.getAttribute(Constants.MERCHANT_STORE);
+ if(merchantStore!=null) {
+ if(!merchantStore.getCode().equals(store)) {
+ merchantStore = null;
+ }
+ }
+
+ if(merchantStore== null) {
+ merchantStore = merchantStoreService.getByCode(store);
+ }
+
+ if(merchantStore==null) {
+ LOGGER.error("Merchant store is null for code " + store);
+ response.sendError(500, "Merchant store is null for code " + store);
+ return null;
+ }
+
+
+ //rating already exist
+ ProductReview prodReview = productReviewService.getByProductAndCustomer(review.getProductId(), review.getCustomerId());
+ if(prodReview!=null) {
+ response.sendError(500, "A review already exist for this customer and product");
+ return null;
+ }
+
+ //rating maximum 5
+ if(review.getRating()>Constants.MAX_REVIEW_RATING_SCORE) {
+ response.sendError(503, "Maximum rating score is " + Constants.MAX_REVIEW_RATING_SCORE);
+ return null;
+ }
+
+
+
+ PersistableProductReviewPopulator populator = new PersistableProductReviewPopulator();
+ populator.setLanguageService(languageService);
+ populator.setCustomerService(customerService);
+ populator.setProductService(productService);
+
+ com.salesmanager.core.business.catalog.product.model.review.ProductReview rev = new com.salesmanager.core.business.catalog.product.model.review.ProductReview();
+ populator.populate(review, rev, merchantStore, merchantStore.getDefaultLanguage());
+
+ productReviewService.create(rev);
+
+
+ review.setId(rev.getId());
+
+ return review;
+
+ } catch (Exception e) {
+ LOGGER.error("Error while saving product review",e);
+ try {
+ response.sendError(503, "Error while saving product review" + e.getMessage());
+ } catch (Exception ignore) {
+ }
+
+ return null;
+ }
+ }
+
+
+ @RequestMapping("/public/products/{store}")
+ @ResponseBody
+ public ReadableProductList getProducts(@PathVariable String store, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+
+ /** default routine **/
+
+ MerchantStore merchantStore = (MerchantStore)request.getAttribute(Constants.MERCHANT_STORE);
+ if(merchantStore!=null) {
+ if(!merchantStore.getCode().equals(store)) {
+ merchantStore = null;
+ }
+ }
+
+ if(merchantStore== null) {
+ merchantStore = merchantStoreService.getByCode(store);
+ }
+
+ if(merchantStore==null) {
+ LOGGER.error("Merchant store is null for code " + store);
+ response.sendError(503, "Merchant store is null for code " + store);
+ return null;
+ }
+
+ Language l = merchantStore.getDefaultLanguage();
+
+ String lang = l.getCode();
+
+ if(!StringUtils.isBlank(request.getParameter(Constants.LANG))) {
+
+ lang = request.getParameter(Constants.LANG);
+
+ }
+
+
+ /** end default routine **/
+
+
+
+
+ return this.getProducts(0, 10000, store, lang, null, null, request, response);
+ }
+
+/* *//**
+ * Will get products for a given category
+ * supports language by setting land as a query parameter
+ * supports paging by adding start and max as query parameters
+ * @param store
+ * @param language
+ * @param category
+ * @param model
+ * @param request
+ * @param response
+ * @return
+ * @throws Exception
+ *//*
+ @RequestMapping("/public/products/page/{start}/{max}/{store}/{language}/{category}.html")
+ @ResponseBody
+ public ReadableProductList getProducts(@PathVariable String store, @PathVariable final String category, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+
+ *//** default routine **//*
+
+ MerchantStore merchantStore = (MerchantStore)request.getAttribute(Constants.MERCHANT_STORE);
+ if(merchantStore!=null) {
+ if(!merchantStore.getCode().equals(store)) {
+ merchantStore = null;
+ }
+ }
+
+ if(merchantStore== null) {
+ merchantStore = merchantStoreService.getByCode(store);
+ }
+
+ if(merchantStore==null) {
+ LOGGER.error("Merchant store is null for code " + store);
+ response.sendError(503, "Merchant store is null for code " + store);
+ return null;
+ }
+
+ Language language = merchantStore.getDefaultLanguage();
+
+ String lang = language.getCode();
+
+ if(!StringUtils.isBlank(request.getParameter(Constants.LANG))) {
+
+ lang = request.getParameter(Constants.LANG);
+
+ }
+
+
+ *//** end default routine **//*
+
+
+ //start
+ int iStart = 0;
+ if(!StringUtils.isBlank(request.getParameter(Constants.START))) {
+
+ String start = request.getParameter(Constants.START);
+
+ try {
+ iStart = Integer.parseInt(start);
+ } catch(Exception e) {
+ LOGGER.error("Cannot parse start parameter " + start);
+ }
+
+ }
+
+ //max
+ int iMax = 0;
+ if(!StringUtils.isBlank(request.getParameter(Constants.MAX))) {
+
+ String max = request.getParameter(Constants.MAX);
+
+ try {
+ iMax = Integer.parseInt(max);
+ } catch(Exception e) {
+ LOGGER.error("Cannot parse max parameter " + max);
+ }
+
+ }
+
+
+ return this.getProducts(iStart, iMax, store, lang, category, null, request, response);
+ }*/
+
+
+ /**
+ * An entry point for filtering by another entity such as Manufacturer
+ * filter=BRAND&filter-value=123
+ * @param start
+ * @param max
+ * @param store
+ * @param language
+ * @param category
+ * @param filterType
+ * @param filterValue
+ * @param model
+ * @param request
+ * @param response
+ * @return
+ * @throws Exception
+ */
+ @RequestMapping("/products/public/page/{start}/{max}/{store}/{language}/{category}.html/filter={filterType}/filter-value={filterValue}")
+ @ResponseBody
+ public ReadableProductList getProductsFilteredByType(@PathVariable int start, @PathVariable int max, @PathVariable String store, @PathVariable final String language, @PathVariable final String category, @PathVariable final String filterType, @PathVariable final String filterValue, Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+ List<QueryFilter> queryFilters = null;
+ try {
+ if(filterType.equals(QueryFilterType.BRAND.name())) {//the only one implemented so far
+ QueryFilter filter = new QueryFilter();
+ filter.setFilterType(QueryFilterType.BRAND);
+ filter.setFilterId(Long.parseLong(filterValue));
+ if(queryFilters==null) {
+ queryFilters = new ArrayList<QueryFilter>();
+ }
+ queryFilters.add(filter);
+ }
+ } catch(Exception e) {
+ LOGGER.error("Invalid filter or filter-value " + filterType + " - " + filterValue,e);
+ }
+
+ return this.getProducts(start, max, store, language, category, queryFilters, request, response);
+ }
+
+
+ private ReadableProductList getProducts(final int start, final int max, final String store, final String language, final String category, final List<QueryFilter> filters, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+
+ try {
+
+
+ /**
+ * How to Spring MVC Rest web service - ajax / jquery
+ * http://codetutr.com/2013/04/09/spring-mvc-easy-rest-based-json-services-with-responsebody/
+ */
+
+ MerchantStore merchantStore = (MerchantStore)request.getAttribute(Constants.MERCHANT_STORE);
+
+
+ Map<String,Language> langs = languageService.getLanguagesMap();
+
+ if(merchantStore!=null) {
+ if(!merchantStore.getCode().equals(store)) {
+ merchantStore = null; //reset for the current request
+ }
+ }
+
+ if(merchantStore== null) {
+ merchantStore = merchantStoreService.getByCode(store);
+ }
+
+ if(merchantStore==null) {
+ LOGGER.error("Merchant store is null for code " + store);
+ response.sendError(503, "Merchant store is null for code " + store);//TODO localized message
+ return null;
+ }
+
+
+
+ Language lang = langs.get(language);
+ if(lang==null) {
+ lang = langs.get(Constants.DEFAULT_LANGUAGE);
+ }
+
+ ProductCriteria productCriteria = new ProductCriteria();
+ productCriteria.setMaxCount(max);
+ productCriteria.setStartIndex(start);
+
+ //get the category by code
+ if(!StringUtils.isBlank(category)) {
+ Category cat = categoryService.getBySeUrl(merchantStore, category);
+
+ if(cat==null) {
+ LOGGER.error("Category " + category + " is null");
+ response.sendError(503, "Category is null");//TODO localized message
+ return null;
+ }
+
+
+ String lineage = new StringBuilder().append(cat.getLineage()).append(cat.getId()).append("/").toString();
+
+ List<Category> categories = categoryService.listByLineage(store, lineage);
+
+ List<Long> ids = new ArrayList<Long>();
+ if(categories!=null && categories.size()>0) {
+ for(Category c : categories) {
+ ids.add(c.getId());
+ }
+ }
+ ids.add(cat.getId());
+
+
+ productCriteria.setCategoryIds(ids);
+ }
+
+ if(filters!=null) {
+ for(QueryFilter filter : filters) {
+ if(filter.getFilterType().name().equals(QueryFilterType.BRAND.name())) {//the only filter implemented
+ productCriteria.setManufacturerId(filter.getFilterId());
+ }
+ }
+ }
+
+ com.salesmanager.core.business.catalog.product.model.ProductList products = productService.listByStore(merchantStore, lang, productCriteria);
+
+
+ ReadableProductPopulator populator = new ReadableProductPopulator();
+ populator.setPricingService(pricingService);
+ populator.setimageUtils(imageUtils);
+
+
+ ReadableProductList productList = new ReadableProductList();
+ for(Product product : products.getProducts()) {
+
+ //create new proxy product
+ ReadableProduct readProduct = populator.populate(product, new ReadableProduct(), merchantStore, lang);
+ productList.getProducts().add(readProduct);
+
+ }
+
+ productList.setTotalCount(products.getTotalCount());
+
+
+ return productList;
+
+
+ } catch (Exception e) {
+ LOGGER.error("Error while getting products",e);
+ response.sendError(503, "An error occured while retrieving products " + e.getMessage());
+ }
+
+ return null;
+
+ }
+
+
+ @RequestMapping(value = "/public/{store}/product/{id}", method=RequestMethod.GET)
+ @ResponseBody
+ public ReadableProduct getProduct(@PathVariable String store, @PathVariable final Long id, @RequestParam String lang, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+
+ /** bcz of the filter **/
+ MerchantStore merchantStore = (MerchantStore)request.getAttribute(Constants.MERCHANT_STORE);
+ if(merchantStore!=null) {
+ if(!merchantStore.getCode().equals(store)) {
+ merchantStore = null;
+ }
+ }
+
+ if(store!=null) {
+ merchantStore = merchantStoreService.getByCode(store);
+ }
+
+ if(merchantStore==null) {
+ LOGGER.error("Merchant store is null for code " + store);
+ response.sendError(503, "Merchant store is null for code " + store);
+ return null;
+ }
+
+ Language language = null;
+
+ if(!StringUtils.isBlank(lang)) {
+ language = languageService.getByCode(lang);
+ }
+
+ if(language==null) {
+ language = merchantStore.getDefaultLanguage();
+ }
+
+ ReadableProduct product = productFacade.getProduct(merchantStore, id, language);
+
+ if(product==null) {
+ response.sendError(404, "Product not fount for id " + id);
+ return null;
+ }
+
+ return product;
+
+ }
+
+
+ /**
+ * Update the price of an item
+ * ?lang=en|fr otherwise default store language
+ */
+ @RequestMapping( value="/private/{store}/product/price/{sku}", method=RequestMethod.POST)
+ @ResponseStatus(HttpStatus.CREATED)
+ @ResponseBody
+ public ReadableProduct updateProductPrice(@PathVariable final String store, @Valid @RequestBody ProductPriceEntity price, @PathVariable final String sku, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+
+ try {
+
+ MerchantStore merchantStore = (MerchantStore)request.getAttribute(Constants.MERCHANT_STORE);
+ if(merchantStore!=null) {
+ if(!merchantStore.getCode().equals(store)) {
+ merchantStore = null;
+ }
+ }
+
+ String lang = request.getParameter("lang");
+ Language language = null;
+
+ if(merchantStore== null) {
+ merchantStore = merchantStoreService.getByCode(store);
+ }
+
+ if(merchantStore==null) {
+ LOGGER.error("Merchant store is null for code " + store);
+ response.sendError(503, "Merchant store is null for code " + store);
+ return null;
+ }
+
+ if(StringUtils.isBlank(lang)) {
+ language = merchantStore.getDefaultLanguage();
+ } else {
+ language = languageService.getByCode(lang);
+ }
+
+ if(language==null) {
+ language = merchantStore.getDefaultLanguage();
+ }
+
+ ReadableProduct product = productFacade.getProduct(merchantStore, sku, language);
+
+ if(product==null) {
+ LOGGER.error("Product is null for sku " +sku);
+ response.sendError(503, "Product is null for sku " +sku);
+ return null;
+ }
+
+ product = productFacade.updateProductPrice(product, price, language);
+
+ return product;
+
+
+ } catch (Exception e) {
+ LOGGER.error("Error while saving product",e);
+ try {
+ response.sendError(503, "Error while updating product " + e.getMessage());
+ } catch (Exception ignore) {
+ }
+
+ return null;
+ }
+
+ }
+
+ /**
+ * Update the quantity of an item
+ * ?lang=en|fr otherwise default store language
+ */
+ @RequestMapping( value="/private/{store}/product/quantity/{sku}/{qty}", method=RequestMethod.POST)
+ @ResponseStatus(HttpStatus.CREATED)
+ @ResponseBody
+ public ReadableProduct updateProductQuantity(@PathVariable final String store, @PathVariable final String sku, @PathVariable final int qty, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+
+ try {
+
+ MerchantStore merchantStore = (MerchantStore)request.getAttribute(Constants.MERCHANT_STORE);
+ if(merchantStore!=null) {
+ if(!merchantStore.getCode().equals(store)) {
+ merchantStore = null;
+ }
+ }
+
+ String lang = request.getParameter("lang");
+ Language language = null;
+
+ if(merchantStore== null) {
+ merchantStore = merchantStoreService.getByCode(store);
+ }
+
+ if(merchantStore==null) {
+ LOGGER.error("Merchant store is null for code " + store);
+ response.sendError(503, "Merchant store is null for code " + store);
+ return null;
+ }
+
+ if(StringUtils.isBlank(lang)) {
+ language = merchantStore.getDefaultLanguage();
+ } else {
+ language = languageService.getByCode(lang);
+ }
+
+ if(language==null) {
+ language = merchantStore.getDefaultLanguage();
+ }
+
+ ReadableProduct product = productFacade.getProduct(merchantStore, sku, language);
+
+ if(product==null) {
+ LOGGER.error("Product is null for sku " +sku);
+ response.sendError(503, "Product is null for sku " +sku);
+ return null;
+ }
+
+ product = productFacade.updateProductQuantity(product, qty, language);
+
+ return product;
+
+
+ } catch (Exception e) {
+ LOGGER.error("Error while saving product",e);
+ try {
+ response.sendError(503, "Error while updating product " + e.getMessage());
+ } catch (Exception ignore) {
+ }
+
+ return null;
+ }
+
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/store/services/search/SearchRESTController.java b/sm-shop/src/main/java/com/salesmanager/shop/store/services/search/SearchRESTController.java
new file mode 100644
index 0000000..824d803
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/store/services/search/SearchRESTController.java
@@ -0,0 +1,70 @@
+package com.salesmanager.web.services.controller.search;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.merchant.service.MerchantStoreService;
+import com.salesmanager.core.utils.ajax.AjaxResponse;
+import com.salesmanager.web.shop.controller.search.facade.SearchFacade;
+
+/**
+ * Searching and indexing products
+ * @author c.samson
+ *
+ */
+
+@Controller
+@RequestMapping("/services")
+public class SearchRESTController {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(SearchRESTController.class);
+
+ @Inject
+ private MerchantStoreService merchantStoreService;
+
+ @Inject
+ private SearchFacade searchFacade;
+
+ @RequestMapping( value="/private/{store}/search/index", method=RequestMethod.GET)
+ @ResponseBody
+ public AjaxResponse indexProducts(@PathVariable String store, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+
+ AjaxResponse resp = new AjaxResponse();
+
+ try {
+
+ MerchantStore merchantStore = merchantStoreService.getByCode(store);
+ if(merchantStore==null) {
+ LOGGER.error("Merchant store is null for code " + store);
+ resp.setStatus(500);
+ resp.setErrorString("Merchant store is null for code " + store);
+ return resp;
+ }
+
+ LOGGER.debug("Index all data : " + store);
+ searchFacade.indexAllData(merchantStore);
+ response.setStatus(200);
+ resp.setStatus(200);
+
+ } catch(Exception e) {
+ resp.setStatus(500);
+ resp.setErrorMessage(e);
+ response.sendError(503, "Exception while indexing all data for store " + store + " " + e.getMessage());
+ }
+
+ return resp;
+
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/store/services/store/StoreContactRESTController.java b/sm-shop/src/main/java/com/salesmanager/shop/store/services/store/StoreContactRESTController.java
new file mode 100644
index 0000000..ed17e97
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/store/services/store/StoreContactRESTController.java
@@ -0,0 +1,178 @@
+package com.salesmanager.web.services.controller.store;
+
+
+import java.util.Locale;
+import java.util.Map;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
+
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.ResponseStatus;
+
+import com.salesmanager.core.business.catalog.category.service.CategoryService;
+import com.salesmanager.core.business.catalog.product.service.ProductService;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.merchant.service.MerchantStoreService;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.business.reference.language.service.LanguageService;
+import com.salesmanager.core.utils.ajax.AjaxResponse;
+import com.salesmanager.web.constants.Constants;
+import com.salesmanager.web.entity.shop.ContactForm;
+import com.salesmanager.web.utils.EmailTemplatesUtils;
+import com.salesmanager.web.utils.LocaleUtils;
+
+/**
+ * Rest services for sending contact
+ * @author Carl Samson
+ *
+ */
+@Controller
+@RequestMapping("/services")
+public class StoreContactRESTController {
+
+ @Inject
+ private LanguageService languageService;
+
+ @Inject
+ private MerchantStoreService merchantStoreService;
+
+ @Inject
+ private CategoryService categoryService;
+
+ @Inject
+ private ProductService productService;
+
+ @Inject
+ private EmailTemplatesUtils emailTemplatesUtils;
+
+
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(StoreContactRESTController.class);
+
+
+
+ @RequestMapping( value="/public/{store}", method=RequestMethod.GET)
+ @ResponseStatus(HttpStatus.ACCEPTED)
+ @ResponseBody
+ public AjaxResponse store(@PathVariable final String store, HttpServletRequest request, HttpServletResponse response) {
+
+ AjaxResponse ajaxResponse = new AjaxResponse();
+ try {
+
+ /** default routine **/
+
+ MerchantStore merchantStore = (MerchantStore)request.getAttribute(Constants.MERCHANT_STORE);
+ if(merchantStore!=null) {
+ if(!merchantStore.getCode().equals(store)) {
+ merchantStore = null;
+ }
+ }
+
+ if(merchantStore== null) {
+ merchantStore = merchantStoreService.getByCode(store);
+ }
+
+ if(merchantStore==null) {
+ LOGGER.error("Merchant store is null for code " + store);
+ response.sendError(503, "Merchant store is null for code " + store);
+ return null;
+ }
+
+ Language language = merchantStore.getDefaultLanguage();
+
+ Map<String,Language> langs = languageService.getLanguagesMap();
+
+
+ return null;
+
+
+ } catch (Exception e) {
+ LOGGER.error("Error while saving category",e);
+ try {
+ response.sendError(503, "Error while saving category " + e.getMessage());
+ } catch (Exception ignore) {
+ }
+ return null;
+ }
+ }
+
+
+ @RequestMapping( value="/public/{store}/contact", method=RequestMethod.POST)
+ @ResponseStatus(HttpStatus.ACCEPTED)
+ @ResponseBody
+ public AjaxResponse contact(@PathVariable final String store, @Valid @RequestBody ContactForm contact, HttpServletRequest request, HttpServletResponse response) {
+
+ AjaxResponse ajaxResponse = new AjaxResponse();
+ try {
+
+ /** default routine **/
+
+ MerchantStore merchantStore = (MerchantStore)request.getAttribute(Constants.MERCHANT_STORE);
+ if(merchantStore!=null) {
+ if(!merchantStore.getCode().equals(store)) {
+ merchantStore = null;
+ }
+ }
+
+ if(merchantStore== null) {
+ merchantStore = merchantStoreService.getByCode(store);
+ }
+
+ if(merchantStore==null) {
+ LOGGER.error("Merchant store is null for code " + store);
+ response.sendError(503, "Merchant store is null for code " + store);
+ return null;
+ }
+
+ Language language = merchantStore.getDefaultLanguage();
+
+ Map<String,Language> langs = languageService.getLanguagesMap();
+
+
+ if(!StringUtils.isBlank(request.getParameter(Constants.LANG))) {
+ String lang = request.getParameter(Constants.LANG);
+ if(lang!=null) {
+ language = langs.get(language);
+ }
+ }
+
+ if(language==null) {
+ language = merchantStore.getDefaultLanguage();
+ }
+
+ Locale l = LocaleUtils.getLocale(language);
+
+
+ /** end default routine **/
+
+
+ emailTemplatesUtils.sendContactEmail(contact, merchantStore, l, request.getContextPath());
+
+ ajaxResponse.setStatus(AjaxResponse.RESPONSE_STATUS_SUCCESS);
+
+ return ajaxResponse;
+
+
+ } catch (Exception e) {
+ LOGGER.error("Error while saving category",e);
+ try {
+ response.sendError(503, "Error while saving category " + e.getMessage());
+ } catch (Exception ignore) {
+ }
+ return null;
+ }
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/store/services/system/SystemRESTController.java b/sm-shop/src/main/java/com/salesmanager/shop/store/services/system/SystemRESTController.java
new file mode 100644
index 0000000..d53186c
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/store/services/system/SystemRESTController.java
@@ -0,0 +1,156 @@
+package com.salesmanager.web.services.controller.system;
+
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import com.salesmanager.core.business.system.service.ModuleConfigurationService;
+import com.salesmanager.core.utils.ajax.AjaxResponse;
+
+/**
+ * Rest services for the system configuration
+ * @author Carl Samson
+ *
+ */
+@Controller
+@RequestMapping("/services")
+public class SystemRESTController {
+
+
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(SystemRESTController.class);
+
+ @Inject
+ private ModuleConfigurationService moduleConfigurationService;
+
+ /**
+ * Creates or updates a configuration module. A JSON has to be created on the client side which represents
+ * an object that will create a new module (payment, shipping ...) which can be used and configured from
+ * the administration tool. Here is an example of configuration accepted
+ *
+ * {
+ "module": "PAYMENT",
+ "code": "paypal-express-checkout",
+ "type":"paypal",
+ "version":"104.0",
+ "regions": ["*"],
+ "image":"icon-paypal.png",
+ "configuration":[{"env":"TEST","scheme":"","host":"","port":"","uri":"","config1":"https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token="},{"env":"PROD","scheme":"","host":"","port":"","uri":"","config1":"https://www.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token="}]
+
+ }
+ *
+ * see : shopizer/sm-core/src/main/resources/reference/integrationmodules.json for more samples
+ * @param json
+ * @param request
+ * @param response
+ * @throws Exception
+ */
+ @RequestMapping( value="/private/system/module", method=RequestMethod.POST, consumes = "application/json")
+ @ResponseBody
+ public AjaxResponse createOrUpdateModule(@RequestBody final String json, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+
+ AjaxResponse resp = new AjaxResponse();
+
+ try {
+
+
+
+ LOGGER.debug("Creating or updating an integration module : " + json);
+
+ moduleConfigurationService.createOrUpdateModule(json);
+
+ response.setStatus(200);
+
+ resp.setStatus(200);
+
+ } catch(Exception e) {
+ resp.setStatus(500);
+ resp.setErrorMessage(e);
+ response.sendError(503, "Exception while creating or updating the module " + e.getMessage());
+ }
+
+ return resp;
+
+ }
+
+ @RequestMapping( value="/private/system/optin", method=RequestMethod.POST)
+ @ResponseBody
+ public AjaxResponse createOptin(@RequestBody final String json, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+
+ AjaxResponse resp = new AjaxResponse();
+
+ try {
+ LOGGER.debug("Creating an optin : " + json);
+ //moduleConfigurationService.createOrUpdateModule(json);
+ response.setStatus(200);
+ resp.setStatus(200);
+
+ } catch(Exception e) {
+ resp.setStatus(500);
+ resp.setErrorMessage(e);
+ response.sendError(503, "Exception while creating optin " + e.getMessage());
+ }
+
+ return resp;
+
+ }
+
+ @RequestMapping( value="/private/system/optin/{code}", method=RequestMethod.DELETE)
+ @ResponseBody
+ public AjaxResponse deleteOptin(@RequestBody final String code, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+
+ AjaxResponse resp = new AjaxResponse();
+
+ try {
+ LOGGER.debug("Delete optin : " + code);
+ //moduleConfigurationService.createOrUpdateModule(json);
+ response.setStatus(200);
+ resp.setStatus(200);
+
+ } catch(Exception e) {
+ resp.setStatus(500);
+ resp.setErrorMessage(e);
+ response.sendError(503, "Exception while deleting optin " + e.getMessage());
+ }
+
+ return resp;
+
+ }
+
+ @RequestMapping( value="/private/system/optin/{code}/customer", method=RequestMethod.POST, consumes = "application/json")
+ @ResponseBody
+ public AjaxResponse createOptinCustomer(@RequestBody final String code, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+
+ AjaxResponse resp = new AjaxResponse();
+
+ try {
+ LOGGER.debug("Adding a customer optin : " + code);
+ //moduleConfigurationService.createOrUpdateModule(json);
+ response.setStatus(200);
+ resp.setStatus(200);
+
+ } catch(Exception e) {
+ resp.setStatus(500);
+ resp.setErrorMessage(e);
+ response.sendError(503, "Exception while creating uptin " + e.getMessage());
+ }
+
+ return resp;
+
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/store/services/utility/CallbackController.java b/sm-shop/src/main/java/com/salesmanager/shop/store/services/utility/CallbackController.java
new file mode 100644
index 0000000..091b41f
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/store/services/utility/CallbackController.java
@@ -0,0 +1,64 @@
+package com.salesmanager.web.services.controller.utility;
+
+import java.io.IOException;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+
+
+/**
+ * In progress entry point for receiving various hooks and callback
+ * from various web AP.
+ *
+ * The first draft implementation is for facebook conversations
+ * with messenger. The FB messanger API supports the possibility to track
+ * all conversations messages which are sent back to the webhook. It accepts request parameters
+ * and respond back simple acknowledge answer.
+ *
+ * A good enhancement would be to have sub-implementation by webhook so this controller could
+ * delegate to a worker according to a request parameter. But ... let's start exploring with FB first.
+ * @author carlsamson
+ *
+ */
+@Controller
+@RequestMapping("/services")
+public class CallbackController {
+
+ private static final String VERIFY_MESSENGER_WEBHOOK = "VERIFY_MESSENGER_WEBHOOK";
+
+ @RequestMapping( value="/public/callBack", method=RequestMethod.GET)
+ public void callBack(HttpServletRequest request, HttpServletResponse response) throws IOException {
+
+ System.out.println("*** ENTERING CALLBACK ***");
+
+ String verificationToken = request.getParameter("hub.verify_token");
+
+ if(!StringUtils.isBlank(verificationToken)) {
+
+ System.out.println("*** CALLBACK " + verificationToken);
+
+ if(verificationToken.equals(VERIFY_MESSENGER_WEBHOOK)) {
+ String replyToken = request.getParameter("hub.challenge");
+
+ System.out.println("*** CHALLENGE " + replyToken);
+
+ response.setStatus(HttpServletResponse.SC_OK);
+ response.getWriter().write(replyToken);
+ response.getWriter().flush();
+ response.getWriter().close();
+ }
+
+ }
+ return;
+ }
+
+ public String verifyCallBack() {
+ return null;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/tags/ActiveLinkTag.java b/sm-shop/src/main/java/com/salesmanager/shop/tags/ActiveLinkTag.java
new file mode 100644
index 0000000..440ce29
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/tags/ActiveLinkTag.java
@@ -0,0 +1,98 @@
+package com.salesmanager.web.tags;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.jsp.JspException;
+import javax.servlet.jsp.tagext.TagSupport;
+
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.salesmanager.web.constants.Constants;
+
+public class ActiveLinkTag extends TagSupport {
+
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private static final Logger LOGGER = LoggerFactory.getLogger(ActiveLinkTag.class);
+
+ private final static String ACTIVE = "active";
+
+ private String linkCode = null;
+ private String activeReturnCode = null;
+ private String inactiveReturnCode = null;
+
+
+ public int doStartTag() throws JspException {
+ try {
+
+
+
+ HttpServletRequest request = (HttpServletRequest) pageContext
+ .getRequest();
+
+ String requestLinkCode = (String)request.getAttribute(Constants.LINK_CODE);
+
+ if(StringUtils.isBlank(requestLinkCode)) {
+ if(!StringUtils.isBlank(inactiveReturnCode)) {
+ pageContext.getOut().print(inactiveReturnCode);
+ } else {
+ pageContext.getOut().print("");
+ }
+ } else {
+ if(requestLinkCode.equalsIgnoreCase(linkCode)) {
+ if(!StringUtils.isBlank(activeReturnCode)) {
+ pageContext.getOut().print(activeReturnCode);
+ } else {
+ pageContext.getOut().print(ACTIVE);
+ }
+ } else {
+ if(!StringUtils.isBlank(inactiveReturnCode)) {
+ pageContext.getOut().print(inactiveReturnCode);
+ } else {
+ pageContext.getOut().print("");
+ }
+ }
+ }
+
+
+
+ } catch (Exception ex) {
+ LOGGER.error("Error while creating active link", ex);
+ }
+ return SKIP_BODY;
+ }
+
+ public int doEndTag() {
+ return EVAL_PAGE;
+ }
+
+ public String getLinkCode() {
+ return linkCode;
+ }
+
+ public void setLinkCode(String linkCode) {
+ this.linkCode = linkCode;
+ }
+
+ public String getActiveReturnCode() {
+ return activeReturnCode;
+ }
+
+ public void setActiveReturnCode(String activeReturnCode) {
+ this.activeReturnCode = activeReturnCode;
+ }
+
+
+
+
+
+
+
+
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/tags/AdminProductDownloadUrlTag.java b/sm-shop/src/main/java/com/salesmanager/shop/tags/AdminProductDownloadUrlTag.java
new file mode 100644
index 0000000..334a735
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/tags/AdminProductDownloadUrlTag.java
@@ -0,0 +1,111 @@
+package com.salesmanager.web.tags;
+
+import java.util.Map;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpSession;
+import javax.servlet.jsp.JspException;
+import javax.servlet.jsp.tagext.TagSupport;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.config.AutowireCapableBeanFactory;
+import org.springframework.web.context.WebApplicationContext;
+import org.springframework.web.servlet.tags.RequestContextAwareTag;
+
+import com.salesmanager.core.business.catalog.product.model.file.DigitalProduct;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.web.constants.Constants;
+import com.salesmanager.web.utils.FilePathUtils;
+
+public class AdminProductDownloadUrlTag extends RequestContextAwareTag {
+
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 6319855234657139862L;
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(AdminProductDownloadUrlTag.class);
+
+ private DigitalProduct digitalProduct;
+
+ @Inject
+ private FilePathUtils filePathUtils;
+
+
+
+
+ public DigitalProduct getDigitalProduct() {
+ return digitalProduct;
+ }
+
+ public void setDigitalProduct(DigitalProduct digitalProduct) {
+ this.digitalProduct = digitalProduct;
+ }
+
+ public int doStartTagInternal() throws JspException {
+ try {
+
+ if (filePathUtils==null) {
+ WebApplicationContext wac = getRequestContext().getWebApplicationContext();
+ AutowireCapableBeanFactory factory = wac.getAutowireCapableBeanFactory();
+ factory.autowireBean(this);
+ }
+
+
+ HttpServletRequest request = (HttpServletRequest) pageContext
+ .getRequest();
+
+ MerchantStore merchantStore = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ HttpSession session = request.getSession();
+
+ StringBuilder filePath = new StringBuilder();
+
+ //TODO domain from merchant, else from global config, else from property (localhost)
+
+ // example -> "/files/{storeCode}/{fileName}.{extension}"
+
+
+ @SuppressWarnings("unchecked")
+ Map<String,String> configurations = (Map<String, String>)session.getAttribute(Constants.STORE_CONFIGURATION);
+ String scheme = Constants.HTTP_SCHEME;
+ if(configurations!=null) {
+ scheme = (String)configurations.get("scheme");
+ }
+
+
+
+ filePath.append(scheme).append("://")
+ .append(merchantStore.getDomainName())
+ //.append("/")
+ .append(request.getContextPath());
+
+ filePath
+ .append(filePathUtils.buildAdminDownloadProductFilePath(merchantStore, digitalProduct)).toString();
+
+
+
+ pageContext.getOut().print(filePath.toString());
+
+
+
+ } catch (Exception ex) {
+ LOGGER.error("Error while getting content url", ex);
+ }
+ return SKIP_BODY;
+ }
+
+ public int doEndTag() {
+ return EVAL_PAGE;
+ }
+
+
+
+
+
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/tags/Computer - Shortcut.lnk b/sm-shop/src/main/java/com/salesmanager/shop/tags/Computer - Shortcut.lnk
new file mode 100644
index 0000000..1534abc
Binary files /dev/null and b/sm-shop/src/main/java/com/salesmanager/shop/tags/Computer - Shortcut.lnk differ
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/tags/ConfigurationTag.java b/sm-shop/src/main/java/com/salesmanager/shop/tags/ConfigurationTag.java
new file mode 100644
index 0000000..ff7cdf7
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/tags/ConfigurationTag.java
@@ -0,0 +1,77 @@
+package com.salesmanager.web.tags;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.jsp.JspException;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.config.AutowireCapableBeanFactory;
+import org.springframework.web.context.WebApplicationContext;
+import org.springframework.web.servlet.tags.RequestContextAwareTag;
+
+import com.salesmanager.core.utils.CoreConfiguration;
+
+public class ConfigurationTag extends RequestContextAwareTag {
+
+
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private static final Logger LOGGER = LoggerFactory.getLogger(ConfigurationTag.class);
+
+
+ @Inject
+ private CoreConfiguration coreConfiguration;
+
+ private String configurationCode;
+
+
+ public int doStartTagInternal() throws JspException {
+ try {
+
+ if (coreConfiguration==null) {
+ WebApplicationContext wac = getRequestContext().getWebApplicationContext();
+ AutowireCapableBeanFactory factory = wac.getAutowireCapableBeanFactory();
+ factory.autowireBean(this);
+ }
+
+ HttpServletRequest request = (HttpServletRequest) pageContext
+ .getRequest();
+
+
+ pageContext.getOut().print(coreConfiguration.getProperty(this.getConfigurationCode(), "property " + getConfigurationCode() + " not found"));
+
+
+
+ } catch (Exception ex) {
+ LOGGER.error("Error while getting content url", ex);
+ }
+ return SKIP_BODY;
+ }
+
+ public int doEndTag() {
+ return EVAL_PAGE;
+ }
+
+ public String getConfigurationCode() {
+ return configurationCode;
+ }
+
+ public void setConfigurationCode(String configurationCode) {
+ this.configurationCode = configurationCode;
+ }
+
+
+
+
+
+
+
+
+
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/tags/ContentImageUrlTag.java b/sm-shop/src/main/java/com/salesmanager/shop/tags/ContentImageUrlTag.java
new file mode 100644
index 0000000..d491a86
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/tags/ContentImageUrlTag.java
@@ -0,0 +1,109 @@
+package com.salesmanager.web.tags;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.jsp.JspException;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.beans.factory.config.AutowireCapableBeanFactory;
+import org.springframework.web.context.WebApplicationContext;
+import org.springframework.web.servlet.tags.RequestContextAwareTag;
+
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.web.constants.Constants;
+import com.salesmanager.web.utils.FilePathUtils;
+import com.salesmanager.web.utils.ImageFilePath;
+
+public class ContentImageUrlTag extends RequestContextAwareTag {
+
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 6319855234657139862L;
+ private static final Logger LOGGER = LoggerFactory.getLogger(ContentImageUrlTag.class);
+
+ private MerchantStore merchantStore;
+ private String imageName;
+ private String imageType;
+
+ @Inject
+ private FilePathUtils filePathUtils;
+
+ @Inject
+ @Qualifier("img")
+ private ImageFilePath imageUtils;
+
+
+ public int doStartTagInternal() throws JspException {
+ try {
+
+
+ if (filePathUtils==null || imageUtils==null) {
+ WebApplicationContext wac = getRequestContext().getWebApplicationContext();
+ AutowireCapableBeanFactory factory = wac.getAutowireCapableBeanFactory();
+ factory.autowireBean(this);
+ }
+
+ HttpServletRequest request = (HttpServletRequest) pageContext
+ .getRequest();
+
+ MerchantStore merchantStore = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+ if(this.getMerchantStore()!=null) {
+ merchantStore = this.getMerchantStore();
+ }
+
+ //TODO TO BE REVISED
+ //StringBuilder imagePath = new StringBuilder();
+ //String baseUrl = filePathUtils.buildStoreUri(merchantStore, request);
+ //imagePath.append(baseUrl);
+
+
+ String img = imageUtils.buildStaticimageUtils(merchantStore,this.getImageType(),this.getImageName());
+ //imagePath.append(img);
+
+ pageContext.getOut().print(img);
+
+
+
+ } catch (Exception ex) {
+ LOGGER.error("Error while getting content url", ex);
+ }
+ return SKIP_BODY;
+ }
+
+ public int doEndTag() {
+ return EVAL_PAGE;
+ }
+
+ public void setMerchantStore(MerchantStore merchantStore) {
+ this.merchantStore = merchantStore;
+ }
+
+ public MerchantStore getMerchantStore() {
+ return merchantStore;
+ }
+
+ public void setImageName(String imageName) {
+ this.imageName = imageName;
+ }
+
+ public String getImageName() {
+ return imageName;
+ }
+
+ public void setImageType(String imageType) {
+ this.imageType = imageType;
+ }
+
+ public String getImageType() {
+ return imageType;
+ }
+
+
+
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/tags/ManufacturerImageUrlTag.java b/sm-shop/src/main/java/com/salesmanager/shop/tags/ManufacturerImageUrlTag.java
new file mode 100644
index 0000000..463523b
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/tags/ManufacturerImageUrlTag.java
@@ -0,0 +1,104 @@
+package com.salesmanager.web.tags;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.jsp.JspException;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.beans.factory.config.AutowireCapableBeanFactory;
+import org.springframework.web.context.WebApplicationContext;
+import org.springframework.web.servlet.tags.RequestContextAwareTag;
+
+import com.salesmanager.core.business.catalog.product.model.manufacturer.Manufacturer;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.web.constants.Constants;
+import com.salesmanager.web.utils.FilePathUtils;
+import com.salesmanager.web.utils.ImageFilePath;
+
+public class ManufacturerImageUrlTag extends RequestContextAwareTag {
+
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 6319855234657139862L;
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(ManufacturerImageUrlTag.class);
+
+
+ private String imageName;
+ private String imageType;
+ private Manufacturer manufacturer;
+
+ @Inject
+ private FilePathUtils filePathUtils;
+
+
+ @Inject
+ @Qualifier("img")
+ private ImageFilePath imageUtils;
+
+ public int doStartTagInternal() throws JspException {
+ try {
+
+ if (filePathUtils==null || imageUtils==null) {
+ WebApplicationContext wac = getRequestContext().getWebApplicationContext();
+ AutowireCapableBeanFactory factory = wac.getAutowireCapableBeanFactory();
+ factory.autowireBean(this);
+ }
+
+
+ HttpServletRequest request = (HttpServletRequest) pageContext
+ .getRequest();
+
+ MerchantStore merchantStore = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ StringBuilder imagePath = new StringBuilder();
+
+ String baseUrl = filePathUtils.buildStoreUri(merchantStore, request);
+ imagePath.append(baseUrl);
+
+ pageContext.getOut().print(imagePath.toString());
+
+
+
+ } catch (Exception ex) {
+ LOGGER.error("Error while getting content url", ex);
+ }
+ return SKIP_BODY;
+ }
+
+ public int doEndTag() {
+ return EVAL_PAGE;
+ }
+
+
+ public void setImageName(String imageName) {
+ this.imageName = imageName;
+ }
+
+ public String getImageName() {
+ return imageName;
+ }
+
+ public void setImageType(String imageType) {
+ this.imageType = imageType;
+ }
+
+ public String getImageType() {
+ return imageType;
+ }
+
+ public Manufacturer getManufacturer() {
+ return manufacturer;
+ }
+
+ public void setManufacturer(Manufacturer manufacturer) {
+ this.manufacturer = manufacturer;
+ }
+
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/tags/OrderProductDownloadUrlTag.java b/sm-shop/src/main/java/com/salesmanager/shop/tags/OrderProductDownloadUrlTag.java
new file mode 100644
index 0000000..9f752fe
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/tags/OrderProductDownloadUrlTag.java
@@ -0,0 +1,101 @@
+package com.salesmanager.web.tags;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.jsp.JspException;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.config.AutowireCapableBeanFactory;
+import org.springframework.web.context.WebApplicationContext;
+import org.springframework.web.servlet.tags.RequestContextAwareTag;
+
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.web.constants.Constants;
+import com.salesmanager.web.entity.order.ReadableOrderProductDownload;
+import com.salesmanager.web.utils.FilePathUtils;
+
+public class OrderProductDownloadUrlTag extends RequestContextAwareTag {
+
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 6319855234657139862L;
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(OrderProductDownloadUrlTag.class);
+
+
+ private ReadableOrderProductDownload productDownload;
+
+ private Long orderId;
+
+ @Inject
+ private FilePathUtils filePathUtils;
+
+
+
+
+ public int doStartTagInternal() throws JspException {
+ try {
+
+ if (filePathUtils==null) {
+ WebApplicationContext wac = getRequestContext().getWebApplicationContext();
+ AutowireCapableBeanFactory factory = wac.getAutowireCapableBeanFactory();
+ factory.autowireBean(this);
+ }
+
+
+ HttpServletRequest request = (HttpServletRequest) pageContext
+ .getRequest();
+
+ MerchantStore merchantStore = (MerchantStore)request.getAttribute(Constants.MERCHANT_STORE);
+
+ StringBuilder filePath = new StringBuilder();
+
+ filePath.append(filePathUtils.buildStoreUri(merchantStore,request));
+
+ filePath
+ .append(filePathUtils.buildOrderDownloadProductFilePath(merchantStore, this.getProductDownload(), this.getOrderId())).toString();
+
+
+
+ pageContext.getOut().print(filePath.toString());
+
+
+
+ } catch (Exception ex) {
+ LOGGER.error("Error while getting order product download url", ex);
+ }
+ return SKIP_BODY;
+ }
+
+ public int doEndTag() {
+ return EVAL_PAGE;
+ }
+
+
+
+ public Long getOrderId() {
+ return orderId;
+ }
+
+ public void setOrderId(Long orderId) {
+ this.orderId = orderId;
+ }
+
+ public ReadableOrderProductDownload getProductDownload() {
+ return productDownload;
+ }
+
+ public void setProductDownload(ReadableOrderProductDownload productDownload) {
+ this.productDownload = productDownload;
+ }
+
+
+
+
+
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/tags/PageContentTag.java b/sm-shop/src/main/java/com/salesmanager/shop/tags/PageContentTag.java
new file mode 100644
index 0000000..4b24694
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/tags/PageContentTag.java
@@ -0,0 +1,90 @@
+package com.salesmanager.web.tags;
+
+import javax.servlet.http.HttpServletRequest;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.config.AutowireCapableBeanFactory;
+import org.springframework.web.context.WebApplicationContext;
+import org.springframework.web.servlet.tags.RequestContextAwareTag;
+
+import com.salesmanager.core.business.content.model.Content;
+import com.salesmanager.core.business.content.model.ContentDescription;
+import com.salesmanager.core.business.content.service.ContentService;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.web.constants.Constants;
+
+public class PageContentTag extends RequestContextAwareTag {
+
+
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(PageContentTag.class);
+
+
+ @Inject
+ private ContentService contentService;
+
+ private String contentCode;
+
+
+
+
+ public String getContentCode() {
+ return contentCode;
+ }
+
+
+ public void setContentCode(String contentCode) {
+ this.contentCode = contentCode;
+ }
+
+
+ @Override
+ protected int doStartTagInternal() throws Exception {
+ if (contentService == null || contentService==null) {
+ LOGGER.debug("Autowiring contentService");
+ WebApplicationContext wac = getRequestContext().getWebApplicationContext();
+ AutowireCapableBeanFactory factory = wac.getAutowireCapableBeanFactory();
+ factory.autowireBean(this);
+ }
+
+ HttpServletRequest request = (HttpServletRequest) pageContext
+ .getRequest();
+
+ Language language = (Language)request.getAttribute(Constants.LANGUAGE);
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.MERCHANT_STORE);
+
+ Content content = contentService.getByCode(contentCode, store, language);
+
+ String pageContent = "";
+ if(content!=null) {
+ ContentDescription description = content.getDescription();
+ if(description != null) {
+ pageContent = description.getDescription();
+ }
+ }
+
+
+ pageContext.getOut().print(pageContent);
+
+ return SKIP_BODY;
+
+ }
+
+
+ public int doEndTag() {
+ return EVAL_PAGE;
+ }
+
+
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/tags/ProductDescriptionUrlTag.java b/sm-shop/src/main/java/com/salesmanager/shop/tags/ProductDescriptionUrlTag.java
new file mode 100644
index 0000000..4367537
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/tags/ProductDescriptionUrlTag.java
@@ -0,0 +1,100 @@
+package com.salesmanager.web.tags;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.jsp.JspException;
+
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.config.AutowireCapableBeanFactory;
+import org.springframework.web.context.WebApplicationContext;
+import org.springframework.web.servlet.tags.RequestContextAwareTag;
+
+import com.salesmanager.core.business.catalog.product.model.description.ProductDescription;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.web.constants.Constants;
+import com.salesmanager.web.utils.FilePathUtils;
+
+public class ProductDescriptionUrlTag extends RequestContextAwareTag {
+
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 6319855234657139862L;
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(ProductDescriptionUrlTag.class);
+
+
+
+ private ProductDescription productDescription;
+
+ @Inject
+ private FilePathUtils filePathUtils;
+
+ /**
+ * Created the product url for the store front
+ */
+ public int doStartTagInternal() throws JspException {
+ try {
+
+ if (filePathUtils==null) {
+ WebApplicationContext wac = getRequestContext().getWebApplicationContext();
+ AutowireCapableBeanFactory factory = wac.getAutowireCapableBeanFactory();
+ factory.autowireBean(this);
+ }
+
+ HttpServletRequest request = (HttpServletRequest) pageContext
+ .getRequest();
+
+ MerchantStore merchantStore = (MerchantStore)request.getAttribute(Constants.MERCHANT_STORE);
+ //*** IF USED FROM ADMIN THE STORE WILL BE NULL, THEN TRY TO USE ADMIN STORE
+ if(merchantStore==null) {
+ merchantStore = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+ }
+
+
+ StringBuilder productPath = new StringBuilder();
+
+ String baseUrl = filePathUtils.buildStoreUri(merchantStore, request);
+ productPath.append(baseUrl);
+
+ if(!StringUtils.isBlank(this.getProductDescription().getSeUrl())) {
+ productPath.append(Constants.PRODUCT_URI).append("/");
+ productPath.append(this.getProductDescription().getSeUrl());
+ } else {
+ productPath.append(Constants.PRODUCT_ID_URI).append("/");
+ productPath.append(this.getProductDescription().getProduct().getSku());
+ }
+
+ productPath.append(Constants.URL_EXTENSION);
+
+
+
+ pageContext.getOut().print(productPath.toString());
+
+
+
+ } catch (Exception ex) {
+ LOGGER.error("Error while getting content url", ex);
+ }
+ return SKIP_BODY;
+ }
+
+ public int doEndTag() {
+ return EVAL_PAGE;
+ }
+
+ public void setProductDescription(ProductDescription productDescription) {
+ this.productDescription = productDescription;
+ }
+
+ public ProductDescription getProductDescription() {
+ return productDescription;
+ }
+
+
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/tags/ProductImageUrlTag.java b/sm-shop/src/main/java/com/salesmanager/shop/tags/ProductImageUrlTag.java
new file mode 100644
index 0000000..7281c40
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/tags/ProductImageUrlTag.java
@@ -0,0 +1,112 @@
+package com.salesmanager.web.tags;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.jsp.JspException;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.beans.factory.config.AutowireCapableBeanFactory;
+import org.springframework.web.context.WebApplicationContext;
+import org.springframework.web.servlet.tags.RequestContextAwareTag;
+
+import com.salesmanager.core.business.catalog.product.model.Product;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.web.constants.Constants;
+import com.salesmanager.web.utils.FilePathUtils;
+import com.salesmanager.web.utils.ImageFilePath;
+
+public class ProductImageUrlTag extends RequestContextAwareTag {
+
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 6319855234657139862L;
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(ProductImageUrlTag.class);
+
+
+ private String imageName;
+ private String imageType;
+ private Product product;
+
+ @Inject
+ private FilePathUtils filePathUtils;
+
+ @Inject
+ @Qualifier("img")
+ private ImageFilePath imageUtils;
+
+ public int doStartTagInternal() throws JspException {
+ try {
+
+
+ if (filePathUtils==null || imageUtils==null) {
+ WebApplicationContext wac = getRequestContext().getWebApplicationContext();
+ AutowireCapableBeanFactory factory = wac.getAutowireCapableBeanFactory();
+ factory.autowireBean(this);
+ }
+
+ HttpServletRequest request = (HttpServletRequest) pageContext
+ .getRequest();
+
+ MerchantStore merchantStore = (MerchantStore)request.getAttribute(Constants.ADMIN_STORE);
+
+ StringBuilder imagePath = new StringBuilder();
+
+ String baseUrl = filePathUtils.buildRelativeStoreUri(request, merchantStore);
+ imagePath.append(baseUrl);
+
+ imagePath
+
+ .append(imageUtils.buildProductimageUtils(merchantStore, product, this.getImageName())).toString();
+
+ System.out.println("Printing image " + imagePath.toString());
+
+ pageContext.getOut().print(imagePath.toString());
+
+
+
+ } catch (Exception ex) {
+ LOGGER.error("Error while getting content url", ex);
+ }
+ return SKIP_BODY;
+ }
+
+ public int doEndTag() {
+ return EVAL_PAGE;
+ }
+
+
+ public void setImageName(String imageName) {
+ this.imageName = imageName;
+ }
+
+ public String getImageName() {
+ return imageName;
+ }
+
+ public void setImageType(String imageType) {
+ this.imageType = imageType;
+ }
+
+ public String getImageType() {
+ return imageType;
+ }
+
+ public void setProduct(Product product) {
+ this.product = product;
+ }
+
+ public Product getProduct() {
+ return product;
+ }
+
+
+
+
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/tags/ShopProductImageUrlTag.java b/sm-shop/src/main/java/com/salesmanager/shop/tags/ShopProductImageUrlTag.java
new file mode 100644
index 0000000..c57e728
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/tags/ShopProductImageUrlTag.java
@@ -0,0 +1,119 @@
+package com.salesmanager.web.tags;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.jsp.JspException;
+
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.beans.factory.config.AutowireCapableBeanFactory;
+import org.springframework.web.context.WebApplicationContext;
+import org.springframework.web.servlet.tags.RequestContextAwareTag;
+
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.web.constants.Constants;
+import com.salesmanager.web.utils.FilePathUtils;
+import com.salesmanager.web.utils.ImageFilePath;
+
+
+public class ShopProductImageUrlTag extends RequestContextAwareTag {
+
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 6319855234657139862L;
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(ShopProductImageUrlTag.class);
+
+ private final static String SMALL = "SMALL";
+ private final static String LARGE = "LARGE";
+
+ private String imageName;
+ private String sku;
+ private String size; //SMALL | LARGE
+
+ @Inject
+ private FilePathUtils filePathUtils;
+
+ @Inject
+ @Qualifier("img")
+ private ImageFilePath imageUtils;
+
+ public int doStartTagInternal() throws JspException {
+ try {
+
+ if (filePathUtils==null || imageUtils==null) {
+ WebApplicationContext wac = getRequestContext().getWebApplicationContext();
+ AutowireCapableBeanFactory factory = wac.getAutowireCapableBeanFactory();
+ factory.autowireBean(this);
+ }
+
+ HttpServletRequest request = (HttpServletRequest) pageContext
+ .getRequest();
+
+ MerchantStore merchantStore = (MerchantStore)request.getAttribute(Constants.MERCHANT_STORE);
+
+ StringBuilder imagePath = new StringBuilder();
+
+ String baseUrl = filePathUtils.buildRelativeStoreUri(request, merchantStore);
+ imagePath.append(baseUrl);
+
+ if(StringUtils.isBlank(this.getSize()) || this.getSize().equals(SMALL)) {
+ imagePath.append(imageUtils.buildProductimageUtils(merchantStore, this.getSku(), this.getImageName())).toString();
+ } else {
+ imagePath.append(imageUtils.buildLargeProductimageUtils(merchantStore, this.getSku(), this.getImageName())).toString();
+ }
+
+ //System.out.println("Printing image -M " + imagePath.toString());
+
+ pageContext.getOut().print(imagePath.toString());
+
+
+
+ } catch (Exception ex) {
+ LOGGER.error("Error while getting content url", ex);
+ }
+ return SKIP_BODY;
+ }
+
+
+ public int doEndTag() {
+ return EVAL_PAGE;
+ }
+
+
+ public void setImageName(String imageName) {
+ this.imageName = imageName;
+ }
+
+ public String getImageName() {
+ return imageName;
+ }
+
+
+
+ public void setSku(String sku) {
+ this.sku = sku;
+ }
+
+ public String getSku() {
+ return sku;
+ }
+
+ public String getSize() {
+ return size;
+ }
+
+ public void setSize(String size) {
+ this.size = size;
+ }
+
+
+
+
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/tags/ShopProductPriceFormatTag.java b/sm-shop/src/main/java/com/salesmanager/shop/tags/ShopProductPriceFormatTag.java
new file mode 100644
index 0000000..7b578e1
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/tags/ShopProductPriceFormatTag.java
@@ -0,0 +1,107 @@
+package com.salesmanager.web.tags;
+
+import java.math.BigDecimal;
+
+import javax.servlet.http.HttpServletRequest;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.config.AutowireCapableBeanFactory;
+import org.springframework.web.context.WebApplicationContext;
+import org.springframework.web.servlet.tags.RequestContextAwareTag;
+
+import com.salesmanager.core.business.catalog.product.service.PricingService;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.currency.model.Currency;
+import com.salesmanager.core.utils.ProductPriceUtils;
+import com.salesmanager.web.constants.Constants;
+
+public class ShopProductPriceFormatTag extends RequestContextAwareTag {
+
+
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(ShopProductPriceFormatTag.class);
+
+ @Inject
+ private PricingService pricingService;
+
+ @Inject
+ private ProductPriceUtils productPriceUtils;
+
+
+
+ private BigDecimal value;
+
+
+
+ private Currency currency;
+
+
+
+
+
+ public Currency getCurrency() {
+ return currency;
+ }
+
+
+ public void setCurrency(Currency currency) {
+ this.currency = currency;
+ }
+
+
+ @Override
+ protected int doStartTagInternal() throws Exception {
+ if (pricingService == null || productPriceUtils==null) {
+ LOGGER.debug("Autowiring productPriceUtils");
+ WebApplicationContext wac = getRequestContext().getWebApplicationContext();
+ AutowireCapableBeanFactory factory = wac.getAutowireCapableBeanFactory();
+ factory.autowireBean(this);
+ }
+
+ HttpServletRequest request = (HttpServletRequest) pageContext
+ .getRequest();
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.MERCHANT_STORE);
+
+ String formatedPrice = null;
+
+ if(this.getCurrency()!=null) {
+ formatedPrice = productPriceUtils.getFormatedAmountWithCurrency(this.getCurrency(), this.getValue());
+ } else {
+ formatedPrice = pricingService.getDisplayAmount(this.getValue(), store);
+ }
+
+ pageContext.getOut().print(formatedPrice);
+
+ return SKIP_BODY;
+
+ }
+
+
+ public int doEndTag() {
+ return EVAL_PAGE;
+ }
+
+
+ public void setValue(BigDecimal value) {
+ this.value = value;
+ }
+
+
+ public BigDecimal getValue() {
+ return value;
+ }
+
+
+
+
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/tags/ShopProductRelationshipTag.java b/sm-shop/src/main/java/com/salesmanager/shop/tags/ShopProductRelationshipTag.java
new file mode 100644
index 0000000..163d48e
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/tags/ShopProductRelationshipTag.java
@@ -0,0 +1,161 @@
+package com.salesmanager.web.tags;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.servlet.http.HttpServletRequest;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.beans.factory.config.AutowireCapableBeanFactory;
+import org.springframework.web.context.WebApplicationContext;
+import org.springframework.web.servlet.tags.RequestContextAwareTag;
+
+import com.salesmanager.core.business.catalog.product.model.Product;
+import com.salesmanager.core.business.catalog.product.model.relationship.ProductRelationship;
+import com.salesmanager.core.business.catalog.product.service.PricingService;
+import com.salesmanager.core.business.catalog.product.service.relationship.ProductRelationshipService;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.utils.CacheUtils;
+import com.salesmanager.web.constants.Constants;
+import com.salesmanager.web.entity.catalog.product.ReadableProduct;
+import com.salesmanager.web.populator.catalog.ReadableProductPopulator;
+import com.salesmanager.web.utils.ImageFilePath;
+
+public class ShopProductRelationshipTag extends RequestContextAwareTag {
+
+
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(ShopProductRelationshipTag.class);
+
+ @Inject
+ private ProductRelationshipService productRelationshipService;
+
+ @Inject
+ private PricingService pricingService;
+
+ @Inject
+ private CacheUtils cache;
+
+ @Inject
+ @Qualifier("img")
+ private ImageFilePath imageUtils;
+
+
+ private String groupName;
+
+
+
+ public String getGroupName() {
+ return groupName;
+ }
+
+
+ public void setGroupName(String groupName) {
+ this.groupName = groupName;
+ }
+
+
+ @SuppressWarnings("unchecked")
+ @Override
+ protected int doStartTagInternal() throws Exception {
+ if (productRelationshipService == null || pricingService==null || imageUtils==null) {
+ LOGGER.debug("Autowiring ProductRelationshipService");
+ WebApplicationContext wac = getRequestContext().getWebApplicationContext();
+ AutowireCapableBeanFactory factory = wac.getAutowireCapableBeanFactory();
+ factory.autowireBean(this);
+ }
+
+ HttpServletRequest request = (HttpServletRequest) pageContext
+ .getRequest();
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.MERCHANT_STORE);
+
+ Language language = (Language)request.getAttribute(Constants.LANGUAGE);
+
+ StringBuilder groupKey = new StringBuilder();
+ groupKey
+ .append(store.getId())
+ .append("_")
+ .append(Constants.PRODUCTS_GROUP_CACHE_KEY)
+ .append("-")
+ .append(this.getGroupName())
+ .append("_")
+ .append(language.getCode());
+
+ StringBuilder groupKeyMissed = new StringBuilder();
+ groupKeyMissed
+ .append(groupKey.toString())
+ .append(Constants.MISSED_CACHE_KEY);
+
+ List<ReadableProduct> objects = null;
+
+ if(store.isUseCache()) {
+
+ //get from the cache
+ objects = (List<ReadableProduct>) cache.getFromCache(groupKey.toString());
+ Boolean missedContent = null;
+
+ if(objects==null && missedContent==null) {
+ objects = getProducts(request);
+
+ //put in cache
+ cache.putInCache(objects, groupKey.toString());
+
+ } else {
+ //put in missed cache
+ //cache.putInCache(new Boolean(true), groupKeyMissed.toString());
+ }
+
+ } else {
+ objects = getProducts(request);
+ }
+ if(objects!=null && objects.size()>0) {
+ request.setAttribute(this.getGroupName(), objects);
+ }
+
+ return SKIP_BODY;
+
+ }
+
+
+ public int doEndTag() {
+ return EVAL_PAGE;
+ }
+
+ private List<ReadableProduct> getProducts(HttpServletRequest request) throws Exception {
+
+ MerchantStore store = (MerchantStore)request.getAttribute(Constants.MERCHANT_STORE);
+ Language language = (Language)request.getAttribute(Constants.LANGUAGE);
+
+ List<ProductRelationship> relationships = productRelationshipService.getByGroup(store, this.getGroupName(), language);
+
+ ReadableProductPopulator populator = new ReadableProductPopulator();
+ populator.setPricingService(pricingService);
+ populator.setimageUtils(imageUtils);
+
+ List<ReadableProduct> products = new ArrayList<ReadableProduct>();
+ for(ProductRelationship relationship : relationships) {
+
+ Product product = relationship.getRelatedProduct();
+
+ ReadableProduct proxyProduct = populator.populate(product, new ReadableProduct(), store, language);
+ products.add(proxyProduct);
+
+ }
+
+ return products;
+
+ }
+
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/tags/StoreBreadcrumbsTag.java b/sm-shop/src/main/java/com/salesmanager/shop/tags/StoreBreadcrumbsTag.java
new file mode 100644
index 0000000..80e89c9
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/tags/StoreBreadcrumbsTag.java
@@ -0,0 +1,111 @@
+package com.salesmanager.web.tags;
+
+import java.util.LinkedList;
+import java.util.List;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.jsp.JspException;
+import javax.servlet.jsp.tagext.TagSupport;
+
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.salesmanager.web.constants.Constants;
+import com.salesmanager.web.entity.shop.Breadcrumb;
+
+import edu.emory.mathcs.backport.java.util.Arrays;
+
+public class StoreBreadcrumbsTag extends TagSupport {
+
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(StoreBreadcrumbsTag.class);
+
+ private Long categoryId = null;
+ private Long productId = null;
+
+ public int doStartTag() throws JspException {
+ try {
+
+
+
+ HttpServletRequest request = (HttpServletRequest) pageContext
+ .getRequest();
+
+ Breadcrumb breadCrumb = (Breadcrumb)request.getAttribute(Constants.BREADCRUMB);
+
+ StringBuilder ref = new StringBuilder();
+
+ if(breadCrumb!=null && !StringUtils.isBlank(breadCrumb.getUrlRefContent())) {
+ ref.append(Constants.SLASH).append(Constants.REF).append(Constants.EQUALS).append(breadCrumb.getUrlRefContent());
+ if(categoryId!=null) {
+ List<String> ids = this.parseBreadCrumb(breadCrumb.getUrlRefContent());
+ if(!ids.contains(String.valueOf(this.getCategoryId()))) {
+ ref.append(",").append(this.getCategoryId().longValue());
+ }
+ }
+ } else {
+ if(categoryId!=null) {
+ ref.append(Constants.SLASH).append(Constants.REF).append(Constants.EQUALS).append(Constants.REF_C).append(this.getCategoryId());
+ } else {
+ ref.append("");
+ }
+ }
+
+
+ pageContext.getOut().print(ref.toString());
+
+
+
+ } catch (Exception ex) {
+ LOGGER.error("Error while getting content url", ex);
+ }
+ return SKIP_BODY;
+ }
+
+ /** only category **/
+ private List<String> parseBreadCrumb(String refContent) throws Exception {
+
+ /** c:1,2,3 **/
+ String[] categoryComa = refContent.split(":");
+ String[] categoryIds = categoryComa[1].split(",");
+ return new LinkedList(Arrays.asList(categoryIds));
+
+
+ }
+
+ public int doEndTag() {
+ return EVAL_PAGE;
+ }
+
+ public Long getCategoryId() {
+ return categoryId;
+ }
+
+ public void setCategoryId(Long categoryId) {
+ this.categoryId = categoryId;
+ }
+
+ public Long getProductId() {
+ return productId;
+ }
+
+ public void setProductId(Long productId) {
+ this.productId = productId;
+ }
+
+
+
+
+
+
+
+
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/tags/StoreFooterlTag.java b/sm-shop/src/main/java/com/salesmanager/shop/tags/StoreFooterlTag.java
new file mode 100644
index 0000000..424ca3f
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/tags/StoreFooterlTag.java
@@ -0,0 +1,83 @@
+package com.salesmanager.web.tags;
+
+import java.util.Calendar;
+import java.util.Date;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.jsp.JspException;
+import javax.servlet.jsp.tagext.TagSupport;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.web.constants.Constants;
+
+public class StoreFooterlTag extends TagSupport {
+
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 6319855234657139862L;
+ private static final Logger LOGGER = LoggerFactory.getLogger(StoreFooterlTag.class);
+
+ private final static String COPY = "\u00a9";
+
+
+ public int doStartTag() throws JspException {
+ try {
+
+
+
+ HttpServletRequest request = (HttpServletRequest) pageContext
+ .getRequest();
+
+ MerchantStore merchantStore = (MerchantStore)request.getAttribute(Constants.MERCHANT_STORE);
+
+
+ StringBuilder y = new StringBuilder();
+ int currentYear = Calendar.getInstance().get(Calendar.YEAR);
+
+
+ if(merchantStore!=null) {
+ Date dateBusiness=merchantStore.getInBusinessSince();
+ if(dateBusiness!=null) {
+ Calendar c = Calendar.getInstance();
+ c.setTime(dateBusiness);
+ int startBusiness = c.get(Calendar.YEAR);
+ if(startBusiness<currentYear) {
+ y.append(startBusiness).append("-");
+ }
+ }
+ }
+
+ y.append(currentYear);
+
+ StringBuilder copy = new StringBuilder();
+ copy.append(COPY).append(" ").append(merchantStore.getStorename()).append(" ").append(y.toString());
+
+ pageContext.getOut().print(copy.toString());
+
+
+
+ } catch (Exception ex) {
+ LOGGER.error("Error while getting content url", ex);
+ }
+ return SKIP_BODY;
+ }
+
+ public int doEndTag() {
+ return EVAL_PAGE;
+ }
+
+
+
+
+
+
+
+
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/tags/StoreLogoUrlTag.java b/sm-shop/src/main/java/com/salesmanager/shop/tags/StoreLogoUrlTag.java
new file mode 100644
index 0000000..e004f3a
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/tags/StoreLogoUrlTag.java
@@ -0,0 +1,95 @@
+package com.salesmanager.web.tags;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.jsp.JspException;
+
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.beans.factory.config.AutowireCapableBeanFactory;
+import org.springframework.web.context.WebApplicationContext;
+import org.springframework.web.servlet.tags.RequestContextAwareTag;
+
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.web.constants.Constants;
+import com.salesmanager.web.utils.FilePathUtils;
+import com.salesmanager.web.utils.ImageFilePath;
+
+public class StoreLogoUrlTag extends RequestContextAwareTag {
+
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 6319855234657139862L;
+ private static final Logger LOGGER = LoggerFactory.getLogger(StoreLogoUrlTag.class);
+ private static final String RESOURCES = "resources";
+ private static final String IMG = "img";
+ private static final String SHOPIZER_LOGO = "shopizer_small.png";
+
+ @Inject
+ private FilePathUtils filePathUtils;
+
+
+ @Inject
+ @Qualifier("img")
+ private ImageFilePath imageUtils;
+
+ public int doStartTagInternal() throws JspException {
+ try {
+
+ if (filePathUtils==null || imageUtils!=null) {
+ WebApplicationContext wac = getRequestContext().getWebApplicationContext();
+ AutowireCapableBeanFactory factory = wac.getAutowireCapableBeanFactory();
+ factory.autowireBean(this);
+ }
+
+ HttpServletRequest request = (HttpServletRequest) pageContext
+ .getRequest();
+
+ MerchantStore merchantStore = (MerchantStore)request.getAttribute(Constants.MERCHANT_STORE);
+
+ StringBuilder imagePath = new StringBuilder();
+
+ String baseUrl = filePathUtils.buildRelativeStoreUri(request, merchantStore);
+ imagePath.append(baseUrl);
+
+ if(StringUtils.isBlank(merchantStore.getStoreLogo())){
+
+ imagePath
+ .append(RESOURCES).append("/")
+ .append(IMG).append("/").append(SHOPIZER_LOGO);
+ } else {
+
+ imagePath
+ .append(imageUtils.buildStoreLogoFilePath(merchantStore));
+
+ }
+
+ pageContext.getOut().print(imagePath.toString());
+
+
+
+ } catch (Exception ex) {
+ LOGGER.error("Error while getting content url", ex);
+ }
+ return SKIP_BODY;
+ }
+
+ public int doEndTag() {
+ return EVAL_PAGE;
+ }
+
+
+
+
+
+
+
+
+
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/utils/AbstractimageFilePath.java b/sm-shop/src/main/java/com/salesmanager/shop/utils/AbstractimageFilePath.java
new file mode 100644
index 0000000..1321534
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/utils/AbstractimageFilePath.java
@@ -0,0 +1,148 @@
+package com.salesmanager.web.utils;
+
+import org.apache.commons.lang3.StringUtils;
+
+import com.salesmanager.core.business.catalog.product.model.Product;
+import com.salesmanager.core.business.catalog.product.model.manufacturer.Manufacturer;
+import com.salesmanager.core.business.content.model.FileContentType;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.web.constants.Constants;
+
+
+
+public abstract class AbstractimageFilePath implements ImageFilePath {
+
+ public abstract String getBasePath();
+
+ public abstract void setBasePath(String basePath);
+
+ /**
+ * Builds a static content image file path that can be used by image servlet
+ * utility for getting the physical image
+ * @param store
+ * @param imageName
+ * @return
+ */
+ public String buildStaticimageUtils(MerchantStore store, String imageName) {
+ StringBuilder imgName = new StringBuilder().append(getBasePath()).append(Constants.SLASH).append(store.getCode()).append(Constants.SLASH).append(FileContentType.IMAGE.name()).append(Constants.SLASH);
+ if(!StringUtils.isBlank(imageName)) {
+ imgName.append(imageName);
+ }
+ return imgName.toString();
+
+ }
+
+ /**
+ * Builds a static content image file path that can be used by image servlet
+ * utility for getting the physical image by specifying the image type
+ * @param store
+ * @param imageName
+ * @return
+ */
+ public String buildStaticimageUtils(MerchantStore store, String type, String imageName) {
+ StringBuilder imgName = new StringBuilder().append(getBasePath()).append(Constants.SLASH).append(store.getCode()).append(Constants.SLASH).append(type).append(Constants.SLASH);
+ if(!StringUtils.isBlank(imageName)) {
+ imgName.append(imageName);
+ }
+ return imgName.toString();
+
+ }
+
+ /**
+ * Builds a manufacturer image file path that can be used by image servlet
+ * utility for getting the physical image
+ * @param store
+ * @param manufacturer
+ * @param imageName
+ * @return
+ */
+ public String buildManufacturerimageUtils(MerchantStore store, Manufacturer manufacturer, String imageName) {
+ return new StringBuilder().append(getBasePath()).append(Constants.SLASH).append(store.getCode()).append(Constants.SLASH).
+ append(FileContentType.MANUFACTURER.name()).append(Constants.SLASH)
+ .append(manufacturer.getId()).append(Constants.SLASH)
+ .append(imageName).toString();
+ }
+
+ /**
+ * Builds a product image file path that can be used by image servlet
+ * utility for getting the physical image
+ * @param store
+ * @param product
+ * @param imageName
+ * @return
+ */
+ public String buildProductimageUtils(MerchantStore store, Product product, String imageName) {
+ return new StringBuilder().append(getBasePath()).append(Constants.SLASH).append(store.getCode()).append(Constants.SLASH).append(FileContentType.PRODUCT.name()).append(Constants.SLASH)
+ .append(product.getSku()).append(Constants.SLASH).append(imageName).toString();
+ }
+
+ /**
+ * Builds a default product image file path that can be used by image servlet
+ * utility for getting the physical image
+ * @param store
+ * @param sku
+ * @param imageName
+ * @return
+ */
+ public String buildProductimageUtils(MerchantStore store, String sku, String imageName) {
+ return new StringBuilder().append(getBasePath()).append(Constants.SLASH).append(store.getCode()).append(Constants.SLASH).append(FileContentType.PRODUCT.name()).append(Constants.SLASH)
+ .append(sku).append(Constants.SLASH).append(imageName).toString();
+ }
+
+ /**
+ * Builds a large product image file path that can be used by the image servlet
+ * @param store
+ * @param sku
+ * @param imageName
+ * @return
+ */
+ public String buildLargeProductimageUtils(MerchantStore store, String sku, String imageName) {
+ return new StringBuilder().append(getBasePath()).append(Constants.SLASH).append(store.getCode()).append(Constants.SLASH).append(FileContentType.PRODUCTLG.name()).append(Constants.SLASH)
+ .append(sku).append(Constants.SLASH).append(imageName).toString();
+ }
+
+
+
+ /**
+ * Builds a merchant store logo path
+ * @param store
+ * @return
+ */
+ public String buildStoreLogoFilePath(MerchantStore store) {
+ return new StringBuilder().append(getBasePath()).append(Constants.SLASH).append(store.getCode()).append(Constants.SLASH).append(FileContentType.LOGO).append(Constants.SLASH)
+ .append(store.getStoreLogo()).toString();
+ }
+
+ /**
+ * Builds product property image url path
+ * @param store
+ * @param imageName
+ * @return
+ */
+ public String buildProductPropertyimageFilePath(MerchantStore store, String imageName) {
+ return new StringBuilder().append(getBasePath()).append(Constants.SLASH).append(store.getCode()).append(Constants.SLASH).append(FileContentType.PROPERTY).append(Constants.SLASH)
+ .append(imageName).toString();
+ }
+
+ public String buildProductPropertyimageUtils(MerchantStore store, String imageName) {
+ return new StringBuilder().append(getBasePath()).append("/files/").append(store.getCode()).append("/").append(FileContentType.PROPERTY).append("/")
+ .append(imageName).toString();
+ }
+
+ /**
+ * Builds pstatic file url path
+ * @param store
+ * @param imageName
+ * @return
+ */
+ public String buildStaticContentFilePath(MerchantStore store, String fileName) {
+ return new StringBuilder().append(getBasePath()).append(Constants.FILES_URI).append(Constants.SLASH).append(store.getCode()).append(Constants.SLASH).append(FileContentType.STATIC_FILE).append(Constants.SLASH)
+ .append(fileName).toString();
+ }
+
+
+
+
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/utils/AdminAccessDeniedHandler.java b/sm-shop/src/main/java/com/salesmanager/shop/utils/AdminAccessDeniedHandler.java
new file mode 100644
index 0000000..784211e
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/utils/AdminAccessDeniedHandler.java
@@ -0,0 +1,33 @@
+package com.salesmanager.web.utils;
+
+import java.io.IOException;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.springframework.security.access.AccessDeniedException;
+import org.springframework.security.web.access.AccessDeniedHandler;
+
+public class AdminAccessDeniedHandler implements AccessDeniedHandler {
+
+ @Override
+ public void handle(HttpServletRequest request,
+ HttpServletResponse response,
+ AccessDeniedException accessDeniedException) throws IOException,
+ ServletException {
+ response.sendRedirect(request.getContextPath() + getAccessDeniedUrl());
+
+ }
+
+ public String getAccessDeniedUrl() {
+ return accessDeniedUrl;
+ }
+
+ public void setAccessDeniedUrl(String accessDeniedUrl) {
+ this.accessDeniedUrl = accessDeniedUrl;
+ }
+
+ private String accessDeniedUrl = null;
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/utils/AppConfiguration.java b/sm-shop/src/main/java/com/salesmanager/shop/utils/AppConfiguration.java
new file mode 100644
index 0000000..5b1dadc
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/utils/AppConfiguration.java
@@ -0,0 +1,37 @@
+package com.salesmanager.web.utils;
+
+import java.util.Properties;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Component;
+
+@Component
+public class AppConfiguration {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(AppConfiguration.class);
+ public Properties properties;
+
+ public Properties getProperties() {
+ return properties;
+ }
+
+ public void setProperties(Properties properties) {
+ this.properties = properties;
+ }
+
+ public AppConfiguration() {}
+
+ public String getProperty(String propertyKey) {
+
+ if(properties!=null) {
+ return properties.getProperty(propertyKey);
+ } else {
+ LOGGER.warn("Application properties are not loaded");
+ return null;
+ }
+
+
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/utils/BeanUtils.java b/sm-shop/src/main/java/com/salesmanager/shop/utils/BeanUtils.java
new file mode 100644
index 0000000..63bf8c1
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/utils/BeanUtils.java
@@ -0,0 +1,65 @@
+package com.salesmanager.web.utils;
+
+import java.beans.BeanInfo;
+import java.beans.IntrospectionException;
+import java.beans.Introspector;
+import java.beans.PropertyDescriptor;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+
+public class BeanUtils
+{
+ private BeanUtils(){
+
+ }
+
+ public static BeanUtils newInstance(){
+ return new BeanUtils();
+ }
+
+ @SuppressWarnings( "nls" )
+ public Object getPropertyValue( Object bean, String property )
+ throws IntrospectionException, IllegalArgumentException, IllegalAccessException, InvocationTargetException
+ {
+
+ if (bean == null) {
+ throw new IllegalArgumentException("No bean specified");
+ }
+ if(property == null){
+
+ throw new IllegalArgumentException("No name specified for bean class '" + bean.getClass() + "'");
+ }
+ Class<?> beanClass = bean.getClass();
+ PropertyDescriptor propertyDescriptor = getPropertyDescriptor( beanClass, property );
+ if ( propertyDescriptor == null )
+ {
+ throw new IllegalArgumentException( "No such property " + property + " for " + beanClass + " exists" );
+ }
+
+ Method readMethod = propertyDescriptor.getReadMethod();
+ if ( readMethod == null )
+ {
+ throw new IllegalStateException( "No getter available for property " + property + " on " + beanClass );
+ }
+ return readMethod.invoke( bean );
+ }
+
+ private PropertyDescriptor getPropertyDescriptor( Class<?> beanClass, String propertyname )
+ throws IntrospectionException
+ {
+ BeanInfo beanInfo = Introspector.getBeanInfo( beanClass );
+ PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
+ PropertyDescriptor propertyDescriptor = null;
+ for ( int i = 0; i < propertyDescriptors.length; i++ )
+ {
+ PropertyDescriptor currentPropertyDescriptor = propertyDescriptors[i];
+ if ( currentPropertyDescriptor.getName().equals( propertyname ) )
+ {
+ propertyDescriptor = currentPropertyDescriptor;
+ }
+
+ }
+ return propertyDescriptor;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/utils/BreadcrumbsUtils.java b/sm-shop/src/main/java/com/salesmanager/shop/utils/BreadcrumbsUtils.java
new file mode 100644
index 0000000..be6c87a
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/utils/BreadcrumbsUtils.java
@@ -0,0 +1,190 @@
+package com.salesmanager.web.utils;
+
+import java.util.ArrayList;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import com.salesmanager.core.business.catalog.category.model.Category;
+import com.salesmanager.core.business.catalog.category.service.CategoryService;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.web.constants.Constants;
+import com.salesmanager.web.entity.catalog.category.ReadableCategory;
+import com.salesmanager.web.entity.catalog.product.ReadableProduct;
+import com.salesmanager.web.entity.shop.Breadcrumb;
+import com.salesmanager.web.entity.shop.BreadcrumbItem;
+import com.salesmanager.web.entity.shop.BreadcrumbItemType;
+
+import edu.emory.mathcs.backport.java.util.Arrays;
+
+@Component
+public class BreadcrumbsUtils {
+
+ @Inject
+ private LabelUtils messages;
+
+ @Inject
+ private CategoryService categoryService;
+
+ @Inject
+ private FilePathUtils filePathUtils;
+
+
+ public Breadcrumb buildCategoryBreadcrumb(ReadableCategory categoryClicked, MerchantStore store, Language language, String contextPath) throws Exception {
+
+ /** Rebuild breadcrumb **/
+ BreadcrumbItem home = new BreadcrumbItem();
+ home.setItemType(BreadcrumbItemType.HOME);
+ home.setLabel(messages.getMessage(Constants.HOME_MENU_KEY, LocaleUtils.getLocale(language)));
+ home.setUrl(filePathUtils.buildStoreUri(store, contextPath) + Constants.SHOP_URI);
+
+ Breadcrumb breadCrumb = new Breadcrumb();
+ breadCrumb.setLanguage(language);
+
+ List<BreadcrumbItem> items = new ArrayList<BreadcrumbItem>();
+ items.add(home);
+
+ //if(!StringUtils.isBlank(refContent)) {
+
+ //List<String> categoryIds = parseBreadCrumb(refContent);
+ List<String> categoryIds = parseCategoryLineage(categoryClicked.getLineage());
+ List<Long> ids = new ArrayList<Long>();
+ for(String c : categoryIds) {
+ ids.add(Long.parseLong(c));
+ }
+
+ ids.add(categoryClicked.getId());
+
+
+ List<Category> categories = categoryService.listByIds(store, ids, language);
+
+ //category path - use lineage
+ for(Category c : categories) {
+ BreadcrumbItem categoryBreadcrump = new BreadcrumbItem();
+ categoryBreadcrump.setItemType(BreadcrumbItemType.CATEGORY);
+ categoryBreadcrump.setLabel(c.getDescription().getName());
+ categoryBreadcrump.setUrl(filePathUtils.buildCategoryUrl(store, contextPath, c.getDescription().getSeUrl()));
+ items.add(categoryBreadcrump);
+ }
+
+ breadCrumb.setUrlRefContent(buildBreadCrumb(ids));
+
+ //}
+
+
+
+ breadCrumb.setBreadCrumbs(items);
+ breadCrumb.setItemType(BreadcrumbItemType.CATEGORY);
+
+
+ return breadCrumb;
+ }
+
+
+ public Breadcrumb buildProductBreadcrumb(String refContent, ReadableProduct productClicked, MerchantStore store, Language language, String contextPath) throws Exception {
+
+ /** Rebuild breadcrumb **/
+ BreadcrumbItem home = new BreadcrumbItem();
+ home.setItemType(BreadcrumbItemType.HOME);
+ home.setLabel(messages.getMessage(Constants.HOME_MENU_KEY, LocaleUtils.getLocale(language)));
+ home.setUrl(filePathUtils.buildStoreUri(store, contextPath) + Constants.SHOP_URI);
+
+ Breadcrumb breadCrumb = new Breadcrumb();
+ breadCrumb.setLanguage(language);
+
+ List<BreadcrumbItem> items = new ArrayList<BreadcrumbItem>();
+ items.add(home);
+
+ if(!StringUtils.isBlank(refContent)) {
+
+ List<String> categoryIds = parseBreadCrumb(refContent);
+ List<Long> ids = new ArrayList<Long>();
+ for(String c : categoryIds) {
+ ids.add(Long.parseLong(c));
+ }
+
+
+ List<Category> categories = categoryService.listByIds(store, ids, language);
+
+ //category path - use lineage
+ for(Category c : categories) {
+ BreadcrumbItem categoryBreadcrump = new BreadcrumbItem();
+ categoryBreadcrump.setItemType(BreadcrumbItemType.CATEGORY);
+ categoryBreadcrump.setLabel(c.getDescription().getName());
+ categoryBreadcrump.setUrl(filePathUtils.buildCategoryUrl(store, contextPath, c.getDescription().getSeUrl()));
+ items.add(categoryBreadcrump);
+ }
+
+
+ breadCrumb.setUrlRefContent(buildBreadCrumb(ids));
+ }
+
+ BreadcrumbItem productBreadcrump = new BreadcrumbItem();
+ productBreadcrump.setItemType(BreadcrumbItemType.PRODUCT);
+ productBreadcrump.setLabel(productClicked.getDescription().getName());
+ productBreadcrump.setUrl(filePathUtils.buildProductUrl(store, contextPath, productClicked.getDescription().getFriendlyUrl()));
+ items.add(productBreadcrump);
+
+
+
+
+
+ breadCrumb.setBreadCrumbs(items);
+ breadCrumb.setItemType(BreadcrumbItemType.CATEGORY);
+
+
+ return breadCrumb;
+ }
+
+ @SuppressWarnings({ "unchecked", "rawtypes", "unused" })
+ private List<String> parseBreadCrumb(String refContent) throws Exception {
+
+ /** c:1,2,3 **/
+ String[] categoryComa = refContent.split(":");
+ String[] categoryIds = categoryComa[1].split(",");
+ return new LinkedList(Arrays.asList(categoryIds));
+
+
+ }
+
+
+ private List<String> parseCategoryLineage(String lineage) throws Exception {
+
+ String[] categoryPath = lineage.split(Constants.CATEGORY_LINEAGE_DELIMITER);
+ List<String> returnList = new LinkedList<String>();
+ for(String c : categoryPath) {
+ if(!StringUtils.isBlank(c)) {
+ returnList.add(c);
+ }
+ }
+ return returnList;
+
+ }
+
+ private String buildBreadCrumb(List<Long> ids) throws Exception {
+
+ if(CollectionUtils.isEmpty(ids)) {
+ return null;
+ }
+ StringBuilder sb = new StringBuilder();
+ sb.append("c:");
+ int count = 1;
+ for(Long c : ids) {
+ sb.append(c);
+ if(count < ids.size()) {
+ sb.append(",");
+ }
+ count++;
+ }
+
+
+ return sb.toString();
+
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/utils/CaptchaRequestUtils.java b/sm-shop/src/main/java/com/salesmanager/shop/utils/CaptchaRequestUtils.java
new file mode 100644
index 0000000..bea06d6
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/utils/CaptchaRequestUtils.java
@@ -0,0 +1,97 @@
+package com.salesmanager.web.utils;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.commons.httpclient.HttpClient;
+import org.apache.commons.httpclient.HttpStatus;
+import org.apache.commons.httpclient.NameValuePair;
+import org.apache.commons.httpclient.methods.PostMethod;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.salesmanager.core.utils.CoreConfiguration;
+import com.salesmanager.web.constants.ApplicationConstants;
+
+/**
+ * Creates a request to reCaptcha 2
+ * https://www.google.com/recaptcha/api/siteverify
+ * Throws an exception if it can't connect to reCaptcha
+ * returns true or false if validation has passed
+ * @author carlsamson
+ *
+ */
+@Component
+public class CaptchaRequestUtils {
+
+ @Inject
+ private CoreConfiguration configuration; //for reading public and secret key
+
+ private static final String SUCCESS_INDICATOR = "success";
+
+ public boolean checkCaptcha(String gRecaptchaResponse) throws Exception {
+
+ HttpClient client = new HttpClient();
+
+ String url = configuration.getProperty(ApplicationConstants.RECAPTCHA_URL);;
+
+ NameValuePair[] data = {
+ new NameValuePair("secret", configuration.getProperty(ApplicationConstants.RECAPTCHA_PRIVATE_KEY)),
+ new NameValuePair("response", gRecaptchaResponse)
+ };
+
+ // Create a method instance.
+ PostMethod post = new PostMethod(url);
+ post.setRequestBody(data);
+
+ boolean checkCaptcha = false;
+
+
+ try {
+ // Execute the method.
+ int statusCode = client.executeMethod(post);
+
+ if (statusCode != HttpStatus.SC_OK) {
+ throw new Exception("Got an invalid response from reCaptcha " + url + " [" + post.getStatusLine() + "]");
+ }
+
+ // Read the response body.
+ byte[] responseBody = post.getResponseBody();
+
+ // Deal with the response.
+ // Use caution: ensure correct character encoding and is not binary data
+ //System.out.println(new String(responseBody));
+
+ String json = new String(responseBody);
+
+ Map<String,String> map = new HashMap<String,String>();
+ ObjectMapper mapper = new ObjectMapper();
+
+ map = mapper.readValue(json,
+ new TypeReference<HashMap<String,String>>(){});
+
+ String successInd = map.get(SUCCESS_INDICATOR);
+
+ if(StringUtils.isBlank(successInd)) {
+ throw new Exception("Unreadable response from reCaptcha " + json);
+ }
+
+ Boolean responseBoolean = Boolean.valueOf(successInd);
+
+ if(responseBoolean) {
+ checkCaptcha = true;
+ }
+
+ return checkCaptcha;
+
+ } finally {
+ // Release the connection.
+ post.releaseConnection();
+ }
+ }
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/utils/DateUtil.java b/sm-shop/src/main/java/com/salesmanager/shop/utils/DateUtil.java
new file mode 100644
index 0000000..2a70201
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/utils/DateUtil.java
@@ -0,0 +1,161 @@
+/*
+ * Licensed to csti consulting
+ * You may obtain a copy of the License at
+ *
+ * http://www.csticonsulting.com
+ * Copyright (c) 2006-Aug 24, 2010 Consultation CS-TI inc.
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package com.salesmanager.web.utils;
+
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.Date;
+
+import javax.servlet.http.HttpServletRequest;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.salesmanager.core.constants.Constants;
+
+
+
+public class DateUtil {
+
+ private Date startDate = new Date(new Date().getTime());
+ private Date endDate = new Date(new Date().getTime());
+ private static final Logger LOGGER = LoggerFactory.getLogger(DateUtil.class);
+ private final static String LONGDATE_FORMAT = "EEE, d MMM yyyy HH:mm:ss Z";
+
+
+
+ /**
+ * Generates a time stamp
+ * yyyymmddhhmmss
+ * @return
+ */
+ public static String generateTimeStamp() {
+ SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmSS");
+ return format.format(new Date());
+ }
+
+ /**
+ * yyyy-MM-dd
+ *
+ * @param dt
+ * @return
+ */
+ public static String formatDate(Date dt) {
+
+ if (dt == null)
+ return null;
+ SimpleDateFormat format = new SimpleDateFormat(Constants.DEFAULT_DATE_FORMAT);
+ return format.format(dt);
+
+ }
+
+ public static String formatYear(Date dt) {
+
+ if (dt == null)
+ return null;
+ SimpleDateFormat format = new SimpleDateFormat(Constants.DEFAULT_DATE_FORMAT_YEAR);
+ return format.format(dt);
+
+ }
+
+ public static String formatLongDate(Date date) {
+
+ if (date == null)
+ return null;
+ SimpleDateFormat format = new SimpleDateFormat(LONGDATE_FORMAT);
+ return format.format(date);
+
+ }
+
+ /**
+ * yy-MMM-dd
+ *
+ * @param dt
+ * @return
+ */
+ public static String formatDateMonthString(Date dt) {
+
+ if (dt == null)
+ return null;
+ SimpleDateFormat format = new SimpleDateFormat(Constants.DEFAULT_DATE_FORMAT);
+ return format.format(dt);
+
+ }
+
+ public static Date getDate(String date) throws Exception {
+ DateFormat myDateFormat = new SimpleDateFormat(Constants.DEFAULT_DATE_FORMAT);
+ return myDateFormat.parse(date);
+ }
+
+ public static Date addDaysToCurrentDate(int days) {
+ Calendar c = Calendar.getInstance();
+ c.setTime(new Date());
+ c.add(Calendar.DATE, days);
+ return c.getTime();
+
+ }
+
+ public static Date getDate() {
+
+ return new Date(new Date().getTime());
+
+ }
+
+ public static String getPresentDate() {
+
+ Date dt = new Date();
+
+ SimpleDateFormat format = new SimpleDateFormat(Constants.DEFAULT_DATE_FORMAT);
+ return format.format(new Date(dt.getTime()));
+ }
+
+ public static String getPresentYear() {
+
+ Date dt = new Date();
+
+ SimpleDateFormat format = new SimpleDateFormat("yyyy");
+ return format.format(new Date(dt.getTime()));
+ }
+
+ public void processPostedDates(HttpServletRequest request) {
+ Date dt = new Date();
+ DateFormat myDateFormat = new SimpleDateFormat(Constants.DEFAULT_DATE_FORMAT);
+ Date sDate = null;
+ Date eDate = null;
+ try {
+ if (request.getParameter("startdate") != null) {
+ sDate = myDateFormat.parse(request.getParameter("startdate"));
+ }
+ if (request.getParameter("enddate") != null) {
+ eDate = myDateFormat.parse(request.getParameter("enddate"));
+ }
+ this.startDate = sDate;
+ this.endDate = eDate;
+ } catch (Exception e) {
+ LOGGER.error("",e);
+ this.startDate = new Date(dt.getTime());
+ this.endDate = new Date(dt.getTime());
+ }
+ }
+
+ public Date getEndDate() {
+ return endDate;
+ }
+
+ public Date getStartDate() {
+ return startDate;
+ }
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/utils/EmailTemplatesUtils.java b/sm-shop/src/main/java/com/salesmanager/shop/utils/EmailTemplatesUtils.java
new file mode 100644
index 0000000..5814706
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/utils/EmailTemplatesUtils.java
@@ -0,0 +1,510 @@
+package com.salesmanager.web.utils;
+
+import java.util.Date;
+import java.util.Locale;
+import java.util.Map;
+
+import org.apache.commons.lang3.StringUtils;
+import org.apache.http.impl.cookie.DateUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.stereotype.Component;
+
+import com.salesmanager.core.business.catalog.product.service.PricingService;
+import com.salesmanager.core.business.catalog.product.service.ProductService;
+import com.salesmanager.core.business.customer.model.Customer;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.order.model.Order;
+import com.salesmanager.core.business.order.model.OrderTotal;
+import com.salesmanager.core.business.order.model.orderproduct.OrderProduct;
+import com.salesmanager.core.business.order.model.orderstatus.OrderStatusHistory;
+import com.salesmanager.core.business.reference.country.model.Country;
+import com.salesmanager.core.business.reference.country.service.CountryService;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.business.reference.zone.model.Zone;
+import com.salesmanager.core.business.reference.zone.service.ZoneService;
+import com.salesmanager.core.business.system.service.EmailService;
+import com.salesmanager.core.modules.email.Email;
+import com.salesmanager.web.constants.ApplicationConstants;
+import com.salesmanager.web.constants.EmailConstants;
+import com.salesmanager.web.entity.customer.PersistableCustomer;
+import com.salesmanager.web.entity.shop.ContactForm;
+
+
+@Component
+public class EmailTemplatesUtils {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(EmailTemplatesUtils.class);
+
+ @Inject
+ private EmailService emailService;
+
+ @Inject
+ private LabelUtils messages;
+
+ @Inject
+ private CountryService countryService;
+
+ @Inject
+ private ProductService productService;
+
+ @Inject
+ private ZoneService zoneService;
+
+ @Inject
+ private PricingService pricingService;
+
+ @Inject
+ @Qualifier("img")
+ private ImageFilePath imageUtils;
+
+ @Inject
+ private EmailUtils emailUtils;
+
+ @Inject
+ private FilePathUtils filePathUtils;
+
+ private final static String LINE_BREAK = "<br/>";
+ private final static String TABLE = "<table width=\"100%\">";
+ private final static String CLOSING_TABLE = "</table>";
+ private final static String TR = "<tr>";
+ private final static String TR_BORDER = "<tr class=\"border\">";
+ private final static String CLOSING_TR = "</tr>";
+ private final static String TD = "<td valign=\"top\">";
+ private final static String CLOSING_TD = "</td>";
+
+
+ /**
+ * Sends an email to the customer after a completed order
+ * @param customer
+ * @param order
+ * @param customerLocale
+ * @param language
+ * @param merchantStore
+ * @param contextPath
+ */
+ @Async
+ public void sendOrderEmail(Customer customer, Order order, Locale customerLocale, Language language, MerchantStore merchantStore, String contextPath) {
+ /** issue with putting that elsewhere **/
+ LOGGER.info( "Sending welcome email to customer" );
+ try {
+
+ Map<String,Zone> zones = zoneService.getZones(language);
+
+ Map<String,Country> countries = countryService.getCountriesMap(language);
+
+ //format Billing address
+ StringBuilder billing = new StringBuilder();
+ if(StringUtils.isBlank(order.getBilling().getCompany())) {
+ billing.append(order.getBilling().getFirstName()).append(" ")
+ .append(order.getBilling().getLastName()).append(LINE_BREAK);
+ } else {
+ billing.append(order.getBilling().getCompany()).append(LINE_BREAK);
+ }
+ billing.append(order.getBilling().getAddress()).append(LINE_BREAK);
+ billing.append(order.getBilling().getCity()).append(", ");
+
+ if(order.getBilling().getZone()!=null) {
+ Zone zone = zones.get(order.getBilling().getZone().getCode());
+ if(zone!=null) {
+ billing.append(zone.getName());
+ } else {
+ billing.append(zone.getCode());
+ }
+ billing.append(LINE_BREAK);
+ } else if(!StringUtils.isBlank(order.getBilling().getState())) {
+ billing.append(order.getBilling().getState()).append(LINE_BREAK);
+ }
+ Country country = countries.get(order.getBilling().getCountry().getIsoCode());
+ if(country!=null) {
+ billing.append(country.getName()).append(" ");
+ }
+ billing.append(order.getBilling().getPostalCode());
+
+
+ //format shipping address
+ StringBuilder shipping = null;
+ if(order.getDelivery()!=null && !StringUtils.isBlank(order.getDelivery().getFirstName())) {
+ shipping = new StringBuilder();
+ if(StringUtils.isBlank(order.getDelivery().getCompany())) {
+ shipping.append(order.getDelivery().getFirstName()).append(" ")
+ .append(order.getDelivery().getLastName()).append(LINE_BREAK);
+ } else {
+ shipping.append(order.getDelivery().getCompany()).append(LINE_BREAK);
+ }
+ shipping.append(order.getDelivery().getAddress()).append(LINE_BREAK);
+ shipping.append(order.getDelivery().getCity()).append(", ");
+
+ if(order.getDelivery().getZone()!=null) {
+ Zone zone = zones.get(order.getDelivery().getZone().getCode());
+ if(zone!=null) {
+ shipping.append(zone.getName());
+ } else {
+ shipping.append(zone.getCode());
+ }
+ shipping.append(LINE_BREAK);
+ } else if(!StringUtils.isBlank(order.getDelivery().getState())) {
+ shipping.append(order.getDelivery().getState()).append(LINE_BREAK);
+ }
+ Country deliveryCountry = countries.get(order.getDelivery().getCountry().getIsoCode());
+ if(country!=null) {
+ shipping.append(deliveryCountry.getName()).append(" ");
+ }
+ shipping.append(order.getDelivery().getPostalCode());
+ }
+
+ if(shipping==null && StringUtils.isNotBlank(order.getShippingModuleCode())) {
+ //TODO IF HAS NO SHIPPING
+ shipping = billing;
+ }
+
+ //format order
+ //String storeUri = FilePathUtils.buildStoreUri(merchantStore, contextPath);
+ StringBuilder orderTable = new StringBuilder();
+ orderTable.append(TABLE);
+ for(OrderProduct product : order.getOrderProducts()) {
+ //Product productModel = productService.getByCode(product.getSku(), language);
+ orderTable.append(TR);
+ //images are ugly
+/* orderTable.append(TD);
+ if(productModel!=null && productModel.getProductImage()!=null) {
+ String productImage = new StringBuilder().append(storeUri).append(imageUtils.buildProductimageUtils(merchantStore, productModel, productModel.getProductImage().getProductImage())).toString();
+
+ String imgSrc = new StringBuilder().append("<img src=\"").append(productImage).append("\" width=\"40\">").toString();
+ orderTable.append(imgSrc);
+ } else {
+ orderTable.append(" ");
+ }
+ orderTable.append(CLOSING_TD);*/
+ orderTable.append(TD).append(product.getProductName()).append(CLOSING_TD);
+ orderTable.append(TD).append(messages.getMessage("label.quantity", customerLocale)).append(": ").append(product.getProductQuantity()).append(CLOSING_TD);
+ orderTable.append(TD).append(pricingService.getDisplayAmount(product.getOneTimeCharge(), merchantStore)).append(CLOSING_TD);
+ orderTable.append(CLOSING_TR);
+ }
+
+ //order totals
+ for(OrderTotal total : order.getOrderTotal()) {
+ orderTable.append(TR_BORDER);
+ //orderTable.append(TD);
+ //orderTable.append(CLOSING_TD);
+ orderTable.append(TD);
+ orderTable.append(CLOSING_TD);
+ orderTable.append(TD);
+ orderTable.append("<strong>");
+ if(total.getModule().equals("tax")) {
+ orderTable.append(total.getText()).append(": ");
+
+ } else {
+ //if(total.getModule().equals("total") || total.getModule().equals("subtotal")) {
+ //}
+ orderTable.append(messages.getMessage(total.getOrderTotalCode(), customerLocale)).append(": ");
+ //if(total.getModule().equals("total") || total.getModule().equals("subtotal")) {
+
+ //}
+ }
+ orderTable.append("</strong>");
+ orderTable.append(CLOSING_TD);
+ orderTable.append(TD);
+ orderTable.append("<strong>");
+
+ orderTable.append(pricingService.getDisplayAmount(total.getValue(), merchantStore));
+
+ orderTable.append("</strong>");
+ orderTable.append(CLOSING_TD);
+ orderTable.append(CLOSING_TR);
+ }
+ orderTable.append(CLOSING_TABLE);
+
+ Map<String, String> templateTokens = emailUtils.createEmailObjectsMap(contextPath, merchantStore, messages, customerLocale);
+ templateTokens.put(EmailConstants.LABEL_HI, messages.getMessage("label.generic.hi", customerLocale));
+ templateTokens.put(EmailConstants.EMAIL_CUSTOMER_FIRSTNAME, order.getBilling().getFirstName());
+ templateTokens.put(EmailConstants.EMAIL_CUSTOMER_LASTNAME, order.getBilling().getLastName());
+
+ String[] params = {String.valueOf(order.getId())};
+ String[] dt = {DateUtils.formatDate(order.getDatePurchased())};
+ templateTokens.put(EmailConstants.EMAIL_ORDER_NUMBER, messages.getMessage("email.order.confirmation", params, customerLocale));
+ templateTokens.put(EmailConstants.EMAIL_ORDER_DATE, messages.getMessage("email.order.ordered", dt, customerLocale));
+ templateTokens.put(EmailConstants.EMAIL_ORDER_THANKS, messages.getMessage("email.order.thanks",customerLocale));
+ templateTokens.put(EmailConstants.ADDRESS_BILLING, billing.toString());
+
+ templateTokens.put(EmailConstants.ORDER_PRODUCTS_DETAILS, orderTable.toString());
+ templateTokens.put(EmailConstants.EMAIL_ORDER_DETAILS_TITLE, messages.getMessage("label.order.details",customerLocale));
+ templateTokens.put(EmailConstants.ADDRESS_BILLING_TITLE, messages.getMessage("label.customer.billinginformation",customerLocale));
+ templateTokens.put(EmailConstants.PAYMENT_METHOD_TITLE, messages.getMessage("label.order.paymentmode",customerLocale));
+ templateTokens.put(EmailConstants.PAYMENT_METHOD_DETAILS, messages.getMessage(new StringBuilder().append("payment.type.").append(order.getPaymentType().name()).toString(),customerLocale,order.getPaymentType().name()));
+
+ if(StringUtils.isNotBlank(order.getShippingModuleCode())) {
+ templateTokens.put(EmailConstants.SHIPPING_METHOD_DETAILS, messages.getMessage(new StringBuilder().append("module.shipping.").append(order.getShippingModuleCode()).toString(),customerLocale,order.getShippingModuleCode()));
+ templateTokens.put(EmailConstants.ADDRESS_SHIPPING_TITLE, messages.getMessage("label.order.shippingmethod",customerLocale));
+ templateTokens.put(EmailConstants.ADDRESS_DELIVERY_TITLE, messages.getMessage("label.customer.shippinginformation",customerLocale));
+ templateTokens.put(EmailConstants.SHIPPING_METHOD_TITLE, messages.getMessage("label.customer.shippinginformation",customerLocale));
+ templateTokens.put(EmailConstants.ADDRESS_DELIVERY, shipping.toString());
+ } else {
+ templateTokens.put(EmailConstants.SHIPPING_METHOD_DETAILS, "");
+ templateTokens.put(EmailConstants.ADDRESS_SHIPPING_TITLE, "");
+ templateTokens.put(EmailConstants.ADDRESS_DELIVERY_TITLE, "");
+ templateTokens.put(EmailConstants.SHIPPING_METHOD_TITLE, "");
+ templateTokens.put(EmailConstants.ADDRESS_DELIVERY, "");
+ }
+
+ String status = messages.getMessage("label.order." + order.getStatus().name(), customerLocale, order.getStatus().name());
+ String[] statusMessage = {DateUtils.formatDate(order.getDatePurchased()),status};
+ templateTokens.put(EmailConstants.ORDER_STATUS, messages.getMessage("email.order.status", statusMessage, customerLocale));
+
+
+ String[] title = {merchantStore.getStorename(), String.valueOf(order.getId())};
+ Email email = new Email();
+ email.setFrom(merchantStore.getStorename());
+ email.setFromEmail(merchantStore.getStoreEmailAddress());
+ email.setSubject(messages.getMessage("email.order.title", title, customerLocale));
+ email.setTo(customer.getEmailAddress());
+ email.setTemplateName(EmailConstants.EMAIL_ORDER_TPL);
+ email.setTemplateTokens(templateTokens);
+
+ LOGGER.debug( "Sending email to {} for order id {} ",customer.getEmailAddress(), order.getId() );
+ emailService.sendHtmlEmail(merchantStore, email);
+
+ } catch (Exception e) {
+ LOGGER.error("Error occured while sending order confirmation email ",e);
+ }
+
+ }
+
+ /**
+ * Sends an email to the customer after registration
+ * @param request
+ * @param customer
+ * @param merchantStore
+ * @param customerLocale
+ */
+ @Async
+ public void sendRegistrationEmail(
+ PersistableCustomer customer, MerchantStore merchantStore,
+ Locale customerLocale, String contextPath) {
+ /** issue with putting that elsewhere **/
+ LOGGER.info( "Sending welcome email to customer" );
+ try {
+
+ Map<String, String> templateTokens = emailUtils.createEmailObjectsMap(contextPath, merchantStore, messages, customerLocale);
+ templateTokens.put(EmailConstants.LABEL_HI, messages.getMessage("label.generic.hi", customerLocale));
+ templateTokens.put(EmailConstants.EMAIL_CUSTOMER_FIRSTNAME, customer.getBilling().getFirstName());
+ templateTokens.put(EmailConstants.EMAIL_CUSTOMER_LASTNAME, customer.getBilling().getLastName());
+ String[] greetingMessage = {merchantStore.getStorename(),filePathUtils.buildCustomerUri(merchantStore,contextPath),merchantStore.getStoreEmailAddress()};
+ templateTokens.put(EmailConstants.EMAIL_CUSTOMER_GREETING, messages.getMessage("email.customer.greeting", greetingMessage, customerLocale));
+ templateTokens.put(EmailConstants.EMAIL_USERNAME_LABEL, messages.getMessage("label.generic.username",customerLocale));
+ templateTokens.put(EmailConstants.EMAIL_PASSWORD_LABEL, messages.getMessage("label.generic.password",customerLocale));
+ templateTokens.put(EmailConstants.CUSTOMER_ACCESS_LABEL, messages.getMessage("label.customer.accessportal",customerLocale));
+ templateTokens.put(EmailConstants.ACCESS_NOW_LABEL, messages.getMessage("label.customer.accessnow",customerLocale));
+ templateTokens.put(EmailConstants.EMAIL_USER_NAME, customer.getUserName());
+ templateTokens.put(EmailConstants.EMAIL_CUSTOMER_PASSWORD, customer.getClearPassword());
+
+ //shop url
+ String customerUrl = filePathUtils.buildStoreUri(merchantStore, contextPath);
+ templateTokens.put(EmailConstants.CUSTOMER_ACCESS_URL, customerUrl);
+
+ Email email = new Email();
+ email.setFrom(merchantStore.getStorename());
+ email.setFromEmail(merchantStore.getStoreEmailAddress());
+ email.setSubject(messages.getMessage("email.newuser.title",customerLocale));
+ email.setTo(customer.getEmailAddress());
+ email.setTemplateName(EmailConstants.EMAIL_CUSTOMER_TPL);
+ email.setTemplateTokens(templateTokens);
+
+ LOGGER.debug( "Sending email to {} on their registered email id {} ",customer.getBilling().getFirstName(),customer.getEmailAddress() );
+ emailService.sendHtmlEmail(merchantStore, email);
+
+ } catch (Exception e) {
+ LOGGER.error("Error occured while sending welcome email ",e);
+ }
+
+ }
+
+ public void sendContactEmail(
+ ContactForm contact, MerchantStore merchantStore,
+ Locale storeLocale, String contextPath) {
+ /** issue with putting that elsewhere **/
+ LOGGER.info( "Sending welcome email to customer" );
+ try {
+
+ Map<String, String> templateTokens = emailUtils.createEmailObjectsMap(contextPath, merchantStore, messages, storeLocale);
+
+ templateTokens.put(EmailConstants.EMAIL_CONTACT_NAME, contact.getName());
+ templateTokens.put(EmailConstants.EMAIL_CONTACT_EMAIL, contact.getEmail());
+ templateTokens.put(EmailConstants.EMAIL_CONTACT_CONTENT, contact.getComment());
+
+ String[] contactSubject = {contact.getSubject()};
+
+ templateTokens.put(EmailConstants.EMAIL_CUSTOMER_CONTACT, messages.getMessage("email.contact",contactSubject, storeLocale));
+ templateTokens.put(EmailConstants.EMAIL_CONTACT_NAME_LABEL, messages.getMessage("label.entity.name",storeLocale));
+ templateTokens.put(EmailConstants.EMAIL_CONTACT_EMAIL_LABEL, messages.getMessage("label.generic.email",storeLocale));
+
+
+
+ Email email = new Email();
+ email.setFrom(merchantStore.getStorename());
+ email.setFromEmail(contact.getEmail());
+ email.setSubject(messages.getMessage("email.contact.title",storeLocale));
+ email.setTo(merchantStore.getStoreEmailAddress());
+ email.setTemplateName(EmailConstants.EMAIL_CONTACT_TMPL);
+ email.setTemplateTokens(templateTokens);
+
+ LOGGER.debug( "Sending contact email");
+ emailService.sendHtmlEmail(merchantStore, email);
+
+ } catch (Exception e) {
+ LOGGER.error("Error occured while sending contact email ",e);
+ }
+
+ }
+
+ /**
+ * Send an email to the customer with last order status
+ * @param request
+ * @param customer
+ * @param order
+ * @param merchantStore
+ * @param customerLocale
+ */
+ @Async
+ public void sendUpdateOrderStatusEmail(
+ Customer customer, Order order, OrderStatusHistory lastHistory, MerchantStore merchantStore,
+ Locale customerLocale, String contextPath) {
+ /** issue with putting that elsewhere **/
+ LOGGER.info( "Sending order status email to customer" );
+ try {
+
+
+ Map<String, String> templateTokens = emailUtils.createEmailObjectsMap(contextPath, merchantStore, messages, customerLocale);
+
+ templateTokens.put(EmailConstants.LABEL_HI, messages.getMessage("label.generic.hi", customerLocale));
+ templateTokens.put(EmailConstants.EMAIL_CUSTOMER_FIRSTNAME, customer.getBilling().getFirstName());
+ templateTokens.put(EmailConstants.EMAIL_CUSTOMER_LASTNAME, customer.getBilling().getLastName());
+
+ String[] statusMessageText = {String.valueOf(order.getId()),DateUtils.formatDate(order.getDatePurchased())};
+ String status = messages.getMessage("label.order." + order.getStatus().name(), customerLocale, order.getStatus().name());
+ String[] statusMessage = {DateUtils.formatDate(lastHistory.getDateAdded()),status};
+
+ String comments = lastHistory.getComments();
+ if(StringUtils.isBlank(comments)) {
+ comments = messages.getMessage("label.order." + order.getStatus().name(), customerLocale, order.getStatus().name());
+ }
+
+ templateTokens.put(EmailConstants.EMAIL_ORDER_STATUS_TEXT, messages.getMessage("email.order.statustext", statusMessageText, customerLocale));
+ templateTokens.put(EmailConstants.EMAIL_ORDER_STATUS, messages.getMessage("email.order.status", statusMessage, customerLocale));
+ templateTokens.put(EmailConstants.EMAIL_TEXT_STATUS_COMMENTS, comments);
+
+
+ Email email = new Email();
+ email.setFrom(merchantStore.getStorename());
+ email.setFromEmail(merchantStore.getStoreEmailAddress());
+ email.setSubject(messages.getMessage("email.order.status.title",new String[]{String.valueOf(order.getId())},customerLocale));
+ email.setTo(customer.getEmailAddress());
+ email.setTemplateName(EmailConstants.ORDER_STATUS_TMPL);
+ email.setTemplateTokens(templateTokens);
+
+
+
+ emailService.sendHtmlEmail(merchantStore, email);
+
+ } catch (Exception e) {
+ LOGGER.error("Error occured while sending order download email ",e);
+ }
+
+ }
+
+ /**
+ * Send download email instructions to customer
+ * @param customer
+ * @param order
+ * @param merchantStore
+ * @param customerLocale
+ * @param contextPath
+ */
+ @Async
+ public void sendOrderDownloadEmail(
+ Customer customer, Order order, MerchantStore merchantStore,
+ Locale customerLocale, String contextPath) {
+ /** issue with putting that elsewhere **/
+ LOGGER.info( "Sending download email to customer" );
+ try {
+
+ Map<String, String> templateTokens = emailUtils.createEmailObjectsMap(contextPath, merchantStore, messages, customerLocale);
+ templateTokens.put(EmailConstants.LABEL_HI, messages.getMessage("label.generic.hi", customerLocale));
+ templateTokens.put(EmailConstants.EMAIL_CUSTOMER_FIRSTNAME, customer.getBilling().getFirstName());
+ templateTokens.put(EmailConstants.EMAIL_CUSTOMER_LASTNAME, customer.getBilling().getLastName());
+ String[] downloadMessage = {String.valueOf(ApplicationConstants.MAX_DOWNLOAD_DAYS), String.valueOf(order.getId()), filePathUtils.buildCustomerUri(merchantStore, contextPath), merchantStore.getStoreEmailAddress()};
+ templateTokens.put(EmailConstants.EMAIL_ORDER_DOWNLOAD, messages.getMessage("email.order.download.text", downloadMessage, customerLocale));
+ templateTokens.put(EmailConstants.CUSTOMER_ACCESS_LABEL, messages.getMessage("label.customer.accessportal",customerLocale));
+ templateTokens.put(EmailConstants.ACCESS_NOW_LABEL, messages.getMessage("label.customer.accessnow",customerLocale));
+
+ //shop url
+ String customerUrl = filePathUtils.buildStoreUri(merchantStore, contextPath);
+ templateTokens.put(EmailConstants.CUSTOMER_ACCESS_URL, customerUrl);
+
+ String[] orderInfo = {String.valueOf(order.getId())};
+
+ Email email = new Email();
+ email.setFrom(merchantStore.getStorename());
+ email.setFromEmail(merchantStore.getStoreEmailAddress());
+ email.setSubject(messages.getMessage("email.order.download.title", orderInfo, customerLocale));
+ email.setTo(customer.getEmailAddress());
+ email.setTemplateName(EmailConstants.EMAIL_ORDER_DOWNLOAD_TPL);
+ email.setTemplateTokens(templateTokens);
+
+ LOGGER.debug( "Sending email to {} with download info",customer.getEmailAddress() );
+ emailService.sendHtmlEmail(merchantStore, email);
+
+ } catch (Exception e) {
+ LOGGER.error("Error occured while sending order download email ",e);
+ }
+
+ }
+
+ /**
+ * Sends a change password notification email to the Customer
+ * @param customer
+ * @param merchantStore
+ * @param customerLocale
+ * @param contextPath
+ */
+ @Async
+ public void changePasswordNotificationEmail(
+ Customer customer, MerchantStore merchantStore,
+ Locale customerLocale, String contextPath) {
+ LOGGER.debug( "Sending change password email" );
+ try {
+
+
+ Map<String, String> templateTokens = emailUtils.createEmailObjectsMap(contextPath, merchantStore, messages, customerLocale);
+
+ templateTokens.put(EmailConstants.LABEL_HI, messages.getMessage("label.generic.hi", customerLocale));
+ templateTokens.put(EmailConstants.EMAIL_CUSTOMER_FIRSTNAME, customer.getBilling().getFirstName());
+ templateTokens.put(EmailConstants.EMAIL_CUSTOMER_LASTNAME, customer.getBilling().getLastName());
+
+ String[] date = {DateUtil.formatLongDate(new Date())};
+
+ templateTokens.put(EmailConstants.EMAIL_NOTIFICATION_MESSAGE, messages.getMessage("label.notification.message.passwordchanged", date, customerLocale));
+
+
+ Email email = new Email();
+ email.setFrom(merchantStore.getStorename());
+ email.setFromEmail(merchantStore.getStoreEmailAddress());
+ email.setSubject(messages.getMessage("label.notification.title.passwordchanged",customerLocale));
+ email.setTo(customer.getEmailAddress());
+ email.setTemplateName(EmailConstants.EMAIL_NOTIFICATION_TMPL);
+ email.setTemplateTokens(templateTokens);
+
+
+
+ emailService.sendHtmlEmail(merchantStore, email);
+
+ } catch (Exception e) {
+ LOGGER.error("Error occured while sending change password email ",e);
+ }
+
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/utils/EmailUtils.java b/sm-shop/src/main/java/com/salesmanager/shop/utils/EmailUtils.java
new file mode 100644
index 0000000..59774e9
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/utils/EmailUtils.java
@@ -0,0 +1,62 @@
+package com.salesmanager.web.utils;
+
+import java.util.HashMap;
+import java.util.Locale;
+import java.util.Map;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.stereotype.Component;
+
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.web.constants.Constants;
+
+@Component
+public class EmailUtils {
+
+ private final static String EMAIL_STORE_NAME = "EMAIL_STORE_NAME";
+ private final static String EMAIL_FOOTER_COPYRIGHT = "EMAIL_FOOTER_COPYRIGHT";
+ private final static String EMAIL_DISCLAIMER = "EMAIL_DISCLAIMER";
+ private final static String EMAIL_SPAM_DISCLAIMER = "EMAIL_SPAM_DISCLAIMER";
+ private final static String EMAIL_ADMIN_LABEL = "EMAIL_ADMIN_LABEL";
+ private final static String LOGOPATH = "LOGOPATH";
+
+ @Inject
+ @Qualifier("img")
+ private ImageFilePath imageUtils;
+
+ /**
+ * Builds generic html email information
+ * @param store
+ * @param messages
+ * @param locale
+ * @return
+ */
+ public Map<String, String> createEmailObjectsMap(String contextPath, MerchantStore store, LabelUtils messages, Locale locale){
+
+ Map<String, String> templateTokens = new HashMap<String, String>();
+
+ String[] adminNameArg = {store.getStorename()};
+ String[] adminEmailArg = {store.getStoreEmailAddress()};
+ String[] copyArg = {store.getStorename(), DateUtil.getPresentYear()};
+
+ templateTokens.put(EMAIL_ADMIN_LABEL, messages.getMessage("email.message.from", adminNameArg, locale));
+ templateTokens.put(EMAIL_STORE_NAME, store.getStorename());
+ templateTokens.put(EMAIL_FOOTER_COPYRIGHT, messages.getMessage("email.copyright", copyArg, locale));
+ templateTokens.put(EMAIL_DISCLAIMER, messages.getMessage("email.disclaimer", adminEmailArg, locale));
+ templateTokens.put(EMAIL_SPAM_DISCLAIMER, messages.getMessage("email.spam.disclaimer", locale));
+
+ if(store.getStoreLogo()!=null) {
+ //TODO revise
+ StringBuilder logoPath = new StringBuilder();
+ String scheme = Constants.HTTP_SCHEME;
+ logoPath.append("<img src='").append(scheme).append("://").append(store.getDomainName()).append(contextPath).append("/").append(imageUtils.buildStoreLogoFilePath(store)).append("' style='max-width:400px;'>");
+ templateTokens.put(LOGOPATH, logoPath.toString());
+ } else {
+ templateTokens.put(LOGOPATH, store.getStorename());
+ }
+
+ return templateTokens;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/utils/FieldMatch.java b/sm-shop/src/main/java/com/salesmanager/shop/utils/FieldMatch.java
new file mode 100644
index 0000000..681d1c3
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/utils/FieldMatch.java
@@ -0,0 +1,70 @@
+/**
+ *
+ */
+package com.salesmanager.web.utils;
+
+import static java.lang.annotation.ElementType.ANNOTATION_TYPE;
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.validation.Constraint;
+import javax.validation.Payload;
+
+
+/**
+ *
+ * Validation annotation to validate that 2 fields have the same value.
+ * An array of fields and their matching confirmation fields can be supplied.
+ *
+ * Example, compare 1 pair of fields:
+ * @FieldMatch(first = "password", second = "confirmPassword", message = "The password fields must match")
+ *
+ * Example, compare more than 1 pair of fields:
+ * @FieldMatch.List({
+ * @FieldMatch(first = "password", second = "confirmPassword", message = "The password fields must match"),
+ * @FieldMatch(first = "email", second = "confirmEmail", message = "The email fields must match")})
+ *
+ * @author Umesh Awasthi
+ *
+ */
+
+@Constraint(validatedBy = FieldMatchValidator.class)
+@Documented
+@Target({TYPE, ANNOTATION_TYPE})
+@Retention(RUNTIME)
+public @interface FieldMatch
+{
+
+ String message() default "Fields are not matching";
+
+ Class<?>[] groups() default {};
+
+ Class<? extends Payload>[] payload() default {};
+
+ /**
+ * @return The first field
+ */
+ String first();
+
+ /**
+ * @return The second field
+ */
+ String second();
+
+ /**
+ * Defines several <code>@FieldMatch</code> annotations on the same element
+ *
+ * @see FieldMatch
+ */
+ @Target({TYPE, ANNOTATION_TYPE})
+ @Retention(RUNTIME)
+ @Documented
+ @interface List
+ {
+ FieldMatch[] value();
+ }
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/utils/FieldMatchValidator.java b/sm-shop/src/main/java/com/salesmanager/shop/utils/FieldMatchValidator.java
new file mode 100644
index 0000000..8c602fb
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/utils/FieldMatchValidator.java
@@ -0,0 +1,45 @@
+package com.salesmanager.web.utils;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+
+import javax.validation.ConstraintValidator;
+import javax.validation.ConstraintValidatorContext;
+
+
+public class FieldMatchValidator implements ConstraintValidator<FieldMatch, Object>
+{
+
+ private static final Logger LOG=LoggerFactory.getLogger(FieldMatchValidator.class);
+ private String firstFieldName;
+ private String secondFieldName;
+ private BeanUtils beanUtils;
+
+ @Override
+ public void initialize(final FieldMatch constraintAnnotation)
+ {
+ this.firstFieldName = constraintAnnotation.first();
+ this.secondFieldName = constraintAnnotation.second();
+ this.beanUtils=BeanUtils.newInstance();
+ }
+
+ @SuppressWarnings( "nls" )
+ @Override
+ public boolean isValid(final Object value, final ConstraintValidatorContext context)
+ {
+ try
+ {
+ final Object firstObj = this.beanUtils.getPropertyValue(value, this.firstFieldName);
+ final Object secondObj = this.beanUtils.getPropertyValue(value, this.secondFieldName);
+ return firstObj == null && secondObj == null || firstObj != null && firstObj.equals(secondObj);
+ }
+ catch (final Exception ex)
+ {
+ LOG.info( "Error while getting values from object", ex );
+ return false;
+
+ }
+
+ }
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/utils/FilePathUtils.java b/sm-shop/src/main/java/com/salesmanager/shop/utils/FilePathUtils.java
new file mode 100644
index 0000000..879fbda
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/utils/FilePathUtils.java
@@ -0,0 +1,215 @@
+package com.salesmanager.web.utils;
+
+import javax.servlet.http.HttpServletRequest;
+
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.stereotype.Component;
+
+import com.salesmanager.core.business.catalog.product.model.file.DigitalProduct;
+import com.salesmanager.core.business.content.model.FileContentType;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.utils.CoreConfiguration;
+import com.salesmanager.web.constants.ApplicationConstants;
+import com.salesmanager.web.constants.Constants;
+import com.salesmanager.web.entity.order.ReadableOrderProductDownload;
+
+@Component
+public class FilePathUtils {
+
+ @Inject
+ private CoreConfiguration coreConfiguration;
+
+ @Inject
+ @Qualifier("img")
+ private ImageFilePath imageUtils;
+
+
+ private final static String DOWNLOADS = "/downloads/";
+
+ private final static String DOUBLE_SLASH = "://";
+
+
+ /**
+ * Builds a static content content file path that can be used by image servlet
+ * utility for getting the physical image
+ * @param store
+ * @param imageName
+ * @return
+ */
+ public String buildStaticFilePath(MerchantStore store, String imageName) {
+ return new StringBuilder().append(Constants.FILES_URI).append(Constants.SLASH).append(store.getCode()).append(Constants.SLASH).append(imageName).toString();
+ }
+
+ public String buildAdminDownloadProductFilePath(MerchantStore store, DigitalProduct digitalProduct) {
+ return new StringBuilder().append(Constants.ADMIN_URI).append(Constants.FILES_URI).append(DOWNLOADS).append(store.getCode()).append(Constants.SLASH).append(digitalProduct.getProductFileName()).toString();
+ }
+
+ public String buildOrderDownloadProductFilePath(MerchantStore store, ReadableOrderProductDownload digitalProduct, Long orderId) {
+ return new StringBuilder().append(Constants.SHOP_URI).append(Constants.ORDER_DOWNLOAD_URI).append(Constants.SLASH).append(orderId).append(Constants.SLASH).append(digitalProduct.getId()).append(Constants.URL_EXTENSION).toString();
+ }
+
+ public String buildStaticFileAbsolutePath(MerchantStore store, String fileName) {
+
+ String absolutePath = null;
+
+ if(!StringUtils.isBlank(imageUtils.getBasePath()) &&
+ imageUtils.getBasePath().startsWith(Constants.HTTP_SCHEME)) {
+ StringBuilder filePath = new StringBuilder();
+ filePath.append(imageUtils.getBasePath()).append(Constants.FILES_URI).append(Constants.SLASH).append(store.getCode()).append(Constants.SLASH).append(FileContentType.STATIC_FILE).append(Constants.SLASH).append(fileName).toString();
+ absolutePath = filePath.toString();
+ } else {
+
+ //Map<String,String> configurations = (Map<String, String>)request.getSession().getAttribute(Constants.STORE_CONFIGURATION);
+ String scheme = Constants.HTTP_SCHEME;
+ if(coreConfiguration!=null) {
+ scheme = (String)coreConfiguration.getProperty("SHOP_SCHEME");
+ }
+
+ StringBuilder storePath = new StringBuilder();
+ storePath.append(scheme).append("://")
+
+ .append(store.getDomainName())
+ .append(coreConfiguration.getProperty("CONTEXT_PATH"));
+
+
+ //storePath.append(storePath.toString()).append(buildStaticFilePath(store,fileName));
+ //absolutePath = storePath.toString();
+
+ storePath.append(buildStaticFilePath(store,fileName));
+ absolutePath = storePath.toString();
+
+ }
+
+ return absolutePath;
+
+
+ }
+
+ /**
+ * Builds http[s]://<domain name>/<context path>
+ * @param store
+ * @param request
+ * @return
+ */
+ public String buildStoreUri(MerchantStore store, HttpServletRequest request) {
+
+ return this.buildBaseUrl(request, store);
+ }
+
+ public String buildStoreUri(MerchantStore store, String contextPath) {
+
+ StringBuilder resourcePath = new StringBuilder();
+
+ String path = contextPath;
+ if(Constants.SLASH.equals(path)) {
+ path = Constants.BLANK;
+ }
+
+ String scheme = coreConfiguration.getProperty( ApplicationConstants.SHOP_SCHEME,"http" );
+
+ String domainName = store.getDomainName();
+ if(StringUtils.isBlank(domainName)) {
+ domainName = Constants.DEFAULT_DOMAIN_NAME;
+ }
+
+ resourcePath.append(scheme).append(DOUBLE_SLASH)
+ .append(domainName)
+ .append(path);
+
+ return resourcePath.toString();
+
+ }
+
+ public String buildRelativeStoreUri(HttpServletRequest request, MerchantStore store) {
+
+ StringBuilder resourcePath = new StringBuilder();
+
+ String path = request.getContextPath();
+ if(Constants.SLASH.equals(path)) {
+ path = Constants.BLANK;
+ }
+
+ resourcePath.append(path);
+
+ return resourcePath.toString();
+
+ }
+
+ private String buildBaseUrl(HttpServletRequest request, MerchantStore store) {
+ StringBuilder resourcePath = new StringBuilder();
+
+ String contextPath = request.getContextPath();
+ if(Constants.SLASH.equals(contextPath)) {
+ contextPath = Constants.BLANK;
+ }
+
+ String scheme = coreConfiguration.getProperty( ApplicationConstants.SHOP_SCHEME,"http" );
+
+ String domainName = store.getDomainName();
+ if(StringUtils.isBlank(domainName)) {
+ domainName = Constants.DEFAULT_DOMAIN_NAME;
+ }
+
+ resourcePath.append(scheme).append(DOUBLE_SLASH)
+ .append(domainName)
+ .append(contextPath);
+
+ return resourcePath.toString();
+ }
+
+
+ /**
+ * Access to the customer section
+ * @param store
+ * @param request
+ * @return
+ */
+ public String buildCustomerUri(MerchantStore store, String contextPath) {
+
+ return buildStoreUri(store, contextPath);
+ }
+
+ public String buildAdminUri(MerchantStore store, HttpServletRequest request) {
+ StringBuilder resourcePath = new StringBuilder();
+
+ String baseUrl = this.buildBaseUrl(request, store);
+
+ resourcePath
+ .append(baseUrl)
+ .append(Constants.ADMIN_URI);
+
+ return resourcePath.toString();
+ }
+
+ public String buildCategoryUrl(MerchantStore store, String contextPath, String url) {
+ StringBuilder resourcePath = new StringBuilder();
+ resourcePath.append(buildStoreUri(store, contextPath))
+
+ .append(Constants.SHOP_URI)
+
+ .append(Constants.CATEGORY_URI)
+ .append(Constants.SLASH)
+ .append(url)
+ .append(Constants.URL_EXTENSION);
+
+ return resourcePath.toString();
+
+ }
+
+ public String buildProductUrl(MerchantStore store, String contextPath, String url) {
+ StringBuilder resourcePath = new StringBuilder();
+ resourcePath.append(buildStoreUri(store, contextPath))
+ .append(Constants.SHOP_URI)
+ .append(Constants.PRODUCT_URI)
+ .append(Constants.SLASH)
+ .append(url)
+ .append(Constants.URL_EXTENSION);
+
+ return resourcePath.toString();
+
+ }
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/utils/GeoLocationUtils.java b/sm-shop/src/main/java/com/salesmanager/shop/utils/GeoLocationUtils.java
new file mode 100644
index 0000000..6ed7937
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/utils/GeoLocationUtils.java
@@ -0,0 +1,31 @@
+package com.salesmanager.web.utils;
+
+import javax.servlet.http.HttpServletRequest;
+
+public class GeoLocationUtils {
+
+
+ private static final String[] HEADERS_TO_TRY = {
+ "X-Forwarded-For",
+ "Proxy-Client-IP",
+ "WL-Proxy-Client-IP",
+ "HTTP_X_FORWARDED_FOR",
+ "HTTP_X_FORWARDED",
+ "HTTP_X_CLUSTER_CLIENT_IP",
+ "HTTP_CLIENT_IP",
+ "HTTP_FORWARDED_FOR",
+ "HTTP_FORWARDED",
+ "HTTP_VIA",
+ "REMOTE_ADDR" };
+
+ public static String getClientIpAddress(HttpServletRequest request) {
+ for (String header : HEADERS_TO_TRY) {
+ String ip = request.getHeader(header);
+ if (ip != null && ip.length() != 0 && !"unknown".equalsIgnoreCase(ip)) {
+ return ip;
+ }
+ }
+ return request.getRemoteAddr();
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/utils/ImageFilePath.java b/sm-shop/src/main/java/com/salesmanager/shop/utils/ImageFilePath.java
new file mode 100644
index 0000000..a6a65c6
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/utils/ImageFilePath.java
@@ -0,0 +1,97 @@
+package com.salesmanager.web.utils;
+
+import com.salesmanager.core.business.catalog.product.model.Product;
+import com.salesmanager.core.business.catalog.product.model.manufacturer.Manufacturer;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+
+
+public interface ImageFilePath {
+
+
+ public String getBasePath();
+
+ /**
+ * Builds a static content image file path that can be used by image servlet
+ * utility for getting the physical image
+ * @param store
+ * @param imageName
+ * @return
+ */
+ public String buildStaticimageUtils(MerchantStore store, String imageName);
+
+ /**
+ * Builds a static content image file path that can be used by image servlet
+ * utility for getting the physical image by specifying the image type
+ * @param store
+ * @param imageName
+ * @return
+ */
+ public String buildStaticimageUtils(MerchantStore store, String type, String imageName);
+
+ /**
+ * Builds a manufacturer image file path that can be used by image servlet
+ * utility for getting the physical image
+ * @param store
+ * @param manufacturer
+ * @param imageName
+ * @return
+ */
+ public String buildManufacturerimageUtils(MerchantStore store, Manufacturer manufacturer, String imageName);
+
+ /**
+ * Builds a product image file path that can be used by image servlet
+ * utility for getting the physical image
+ * @param store
+ * @param product
+ * @param imageName
+ * @return
+ */
+ public String buildProductimageUtils(MerchantStore store, Product product, String imageName);
+
+ /**
+ * Builds a default product image file path that can be used by image servlet
+ * utility for getting the physical image
+ * @param store
+ * @param sku
+ * @param imageName
+ * @return
+ */
+ public String buildProductimageUtils(MerchantStore store, String sku, String imageName);
+
+ /**
+ * Builds a large product image file path that can be used by the image servlet
+ * @param store
+ * @param sku
+ * @param imageName
+ * @return
+ */
+ public String buildLargeProductimageUtils(MerchantStore store, String sku, String imageName);
+
+
+
+ /**
+ * Builds a merchant store logo path
+ * @param store
+ * @return
+ */
+ public String buildStoreLogoFilePath(MerchantStore store);
+
+ /**
+ * Builds product property image url path
+ * @param store
+ * @param imageName
+ * @return
+ */
+ public String buildProductPropertyimageUtils(MerchantStore store, String imageName);
+
+
+ /**
+ * Builds static file path
+ * @param store
+ * @param fileName
+ * @return
+ */
+ public String buildStaticContentFilePath(MerchantStore store, String fileName);
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/utils/ImageFilePathUtils.java b/sm-shop/src/main/java/com/salesmanager/shop/utils/ImageFilePathUtils.java
new file mode 100644
index 0000000..a1ea2a5
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/utils/ImageFilePathUtils.java
@@ -0,0 +1,27 @@
+package com.salesmanager.web.utils;
+
+import com.salesmanager.web.constants.Constants;
+
+
+
+public class ImageFilePathUtils extends AbstractimageFilePath{
+
+ private String basePath = Constants.STATIC_URI;
+
+ @Override
+ public String getBasePath() {
+ // TODO Auto-generated method stub
+ return basePath;
+ }
+
+ @Override
+ public void setBasePath(String basePath) {
+ // TODO Auto-generated method stub
+ this.basePath = basePath;
+ }
+
+
+
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/utils/LabelUtils.java b/sm-shop/src/main/java/com/salesmanager/shop/utils/LabelUtils.java
new file mode 100644
index 0000000..abe464e
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/utils/LabelUtils.java
@@ -0,0 +1,36 @@
+package com.salesmanager.web.utils;
+
+import java.util.Locale;
+
+import org.springframework.beans.BeansException;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.ApplicationContextAware;
+
+public class LabelUtils implements ApplicationContextAware {
+
+
+ private ApplicationContext applicationContext;
+
+ @Override
+ public void setApplicationContext(ApplicationContext applicationContext)
+ throws BeansException {
+ this.applicationContext = applicationContext;
+
+ }
+
+ public String getMessage(String key, Locale locale) {
+ return applicationContext.getMessage(key, null, locale);
+ }
+
+ public String getMessage(String key, Locale locale, String defaultValue) {
+ try {
+ return applicationContext.getMessage(key, null, locale);
+ } catch(Exception ignore) {}
+ return defaultValue;
+ }
+
+ public String getMessage(String key, String[] args, Locale locale) {
+ return applicationContext.getMessage(key, args, locale);
+ }
+
+}
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
new file mode 100644
index 0000000..a8f5ad4
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/utils/LanguageUtils.java
@@ -0,0 +1,90 @@
+package com.salesmanager.web.utils;
+
+import java.util.Locale;
+
+import javax.inject.Inject;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.springframework.context.i18n.LocaleContextHolder;
+import org.springframework.stereotype.Component;
+import org.springframework.web.servlet.LocaleResolver;
+import org.springframework.web.servlet.support.RequestContextUtils;
+
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.core.business.reference.language.service.LanguageService;
+import com.salesmanager.web.constants.Constants;
+
+@Component
+public class LanguageUtils {
+
+ @Inject
+ LanguageService languageService;
+
+ /**
+ * Determines request language based on store rules
+ * @param request
+ * @return
+ */
+ public Language getRequestLanguage(HttpServletRequest request, HttpServletResponse response) {
+
+ Locale locale = null;
+
+ Language language = (Language) request.getSession().getAttribute(Constants.LANGUAGE);
+
+
+ if(language==null) {
+ try {
+
+ locale = LocaleContextHolder.getLocale();//should be browser locale
+
+
+ MerchantStore store = (MerchantStore)request.getSession().getAttribute(Constants.MERCHANT_STORE);
+ if(store!=null) {
+ language = store.getDefaultLanguage();
+ if(language!=null) {
+ locale = languageService.toLocale(language);
+ if(locale!=null) {
+ LocaleContextHolder.setLocale(locale);
+ }
+ request.getSession().setAttribute(Constants.LANGUAGE, language);
+ }
+
+ if(language==null) {
+ language = languageService.toLanguage(locale);
+ request.getSession().setAttribute(Constants.LANGUAGE, language);
+ }
+
+ }
+
+ } catch(Exception e) {
+ if(language==null) {
+ try {
+ language = languageService.getByCode(Constants.DEFAULT_LANGUAGE);
+ } catch(Exception ignore) {}
+ }
+ }
+ } else {
+
+
+ Locale localeFromContext = LocaleContextHolder.getLocale();//should be browser locale
+ if(!language.getCode().equals(localeFromContext.getLanguage())) {
+ //get locale context
+ language = languageService.toLanguage(localeFromContext);
+ }
+
+ }
+
+ locale = languageService.toLocale(language);
+
+ LocaleResolver localeResolver = RequestContextUtils.getLocaleResolver(request);
+ if(localeResolver!=null) {
+ localeResolver.setLocale(request, response, locale);
+ }
+ response.setLocale(locale);
+
+ return language;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/utils/LocaleUtils.java b/sm-shop/src/main/java/com/salesmanager/shop/utils/LocaleUtils.java
new file mode 100644
index 0000000..2454b95
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/utils/LocaleUtils.java
@@ -0,0 +1,67 @@
+package com.salesmanager.web.utils;
+
+import java.util.Locale;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.core.business.reference.language.model.Language;
+import com.salesmanager.web.admin.controller.categories.CategoryController;
+
+public class LocaleUtils {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(CategoryController.class);
+
+ public static Locale getLocale(Language language) {
+
+ return new Locale(language.getCode());
+
+ }
+
+ /**
+ * Creates a Locale object for currency format only with country code
+ * This method ignoes the language
+ * @param store
+ * @return
+ */
+ public static Locale getLocale(MerchantStore store) {
+
+ Locale defaultLocale = com.salesmanager.core.constants.Constants.DEFAULT_LOCALE;
+ Locale[] locales = Locale.getAvailableLocales();
+ for(int i = 0; i< locales.length; i++) {
+ Locale l = locales[i];
+ try {
+ if(l.getISO3Country().equals(store.getCurrency().getCode())) {
+ defaultLocale = l;
+ break;
+ }
+ } catch(Exception e) {
+ LOGGER.error("An error occured while getting ISO code for locale " + l.toString());
+ }
+ }
+
+ return defaultLocale;
+
+ }
+
+/* public static Language getRequestLanguage(HttpServletRequest request) {
+
+ Language language = (Language) request.getSession().getAttribute(Constants.LANGUAGE);
+ if(language==null) {
+
+ Locale locale = LocaleContextHolder.getLocale();
+ if(locale!=null) {
+
+ }
+
+ MerchantStore store = (MerchantStore)request.getSession().getAttribute(Constants.MERCHANT_STORE);
+ if(store!=null) {
+ language = store.getDefaultLanguage();
+ }
+ }
+ return language;
+
+ }*/
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/utils/LocalImageFilePathUtils.java b/sm-shop/src/main/java/com/salesmanager/shop/utils/LocalImageFilePathUtils.java
new file mode 100644
index 0000000..0daee59
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/utils/LocalImageFilePathUtils.java
@@ -0,0 +1,139 @@
+package com.salesmanager.web.utils;
+
+import org.apache.commons.lang3.StringUtils;
+
+import com.salesmanager.core.business.catalog.product.model.Product;
+import com.salesmanager.core.business.catalog.product.model.manufacturer.Manufacturer;
+import com.salesmanager.core.business.content.model.FileContentType;
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.web.constants.Constants;
+
+
+public class LocalImageFilePathUtils extends AbstractimageFilePath{
+
+ private String basePath = Constants.STATIC_URI;
+
+ @Override
+ public String getBasePath() {
+ // TODO Auto-generated method stub
+ return basePath;
+ }
+
+ @Override
+ public void setBasePath(String context) {
+ // TODO Auto-generated method stub
+ this.basePath = context;
+ }
+
+ /**
+ * Builds a static content image file path that can be used by image servlet
+ * utility for getting the physical image
+ * @param store
+ * @param imageName
+ * @return
+ */
+ public String buildStaticimageUtils(MerchantStore store, String imageName) {
+ StringBuilder imgName = new StringBuilder().append(getBasePath()).append("/files/").append(store.getCode()).append("/").append(FileContentType.IMAGE.name()).append("/");
+ if(!StringUtils.isBlank(imageName)) {
+ imgName.append(imageName);
+ }
+ return imgName.toString();
+
+ }
+
+ /**
+ * Builds a static content image file path that can be used by image servlet
+ * utility for getting the physical image by specifying the image type
+ * @param store
+ * @param imageName
+ * @return
+ */
+ public String buildStaticimageUtils(MerchantStore store, String type, String imageName) {
+ StringBuilder imgName = new StringBuilder().append(getBasePath()).append("/files/").append(store.getCode()).append("/").append(type).append("/");
+ if(!StringUtils.isBlank(imageName)) {
+ imgName.append(imageName);
+ }
+ return imgName.toString();
+
+ }
+
+ /**
+ * Builds a manufacturer image file path that can be used by image servlet
+ * utility for getting the physical image
+ * @param store
+ * @param manufacturer
+ * @param imageName
+ * @return
+ */
+ public String buildManufacturerimageUtils(MerchantStore store, Manufacturer manufacturer, String imageName) {
+ return new StringBuilder().append(getBasePath()).append("/").append(store.getCode()).append("/").
+ append(FileContentType.MANUFACTURER.name()).append("/")
+ .append(manufacturer.getId()).append("/")
+ .append(imageName).toString();
+ }
+
+ /**
+ * Builds a product image file path that can be used by image servlet
+ * utility for getting the physical image
+ * @param store
+ * @param product
+ * @param imageName
+ * @return
+ */
+ public String buildProductimageUtils(MerchantStore store, Product product, String imageName) {
+ return new StringBuilder().append(getBasePath()).append("/products/").append(store.getCode()).append("/")
+ .append(product.getSku()).append("/").append("LARGE").append("/").append(imageName).toString();
+ }
+
+ /**
+ * Builds a default product image file path that can be used by image servlet
+ * utility for getting the physical image
+ * @param store
+ * @param sku
+ * @param imageName
+ * @return
+ */
+ public String buildProductimageUtils(MerchantStore store, String sku, String imageName) {
+ return new StringBuilder().append(getBasePath()).append("/products/").append(store.getCode()).append("/")
+ .append(sku).append("/").append("LARGE").append("/").append(imageName).toString();
+ }
+
+ /**
+ * Builds a large product image file path that can be used by the image servlet
+ * @param store
+ * @param sku
+ * @param imageName
+ * @return
+ */
+ public String buildLargeProductimageUtils(MerchantStore store, String sku, String imageName) {
+ return new StringBuilder().append(getBasePath()).append("/products/").append(store.getCode()).append("/")
+ .append(sku).append("/").append("LARGE").append("/").append(imageName).toString();
+ }
+
+
+
+ /**
+ * Builds a merchant store logo path
+ * @param store
+ * @return
+ */
+ public String buildStoreLogoFilePath(MerchantStore store) {
+ return new StringBuilder().append(getBasePath()).append("/files/").append(store.getCode()).append("/").append(FileContentType.LOGO).append("/")
+ .append(store.getStoreLogo()).toString();
+ }
+
+ /**
+ * Builds product property image url path
+ * @param store
+ * @param imageName
+ * @return
+ */
+ public String buildProductPropertyimageUtils(MerchantStore store, String imageName) {
+ return new StringBuilder().append(getBasePath()).append("/files/").append(store.getCode()).append("/").append(FileContentType.PROPERTY).append("/")
+ .append(imageName).toString();
+ }
+
+
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/utils/MerchantUtils.java b/sm-shop/src/main/java/com/salesmanager/shop/utils/MerchantUtils.java
new file mode 100644
index 0000000..2370287
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/utils/MerchantUtils.java
@@ -0,0 +1,26 @@
+package com.salesmanager.web.utils;
+
+import java.util.Date;
+
+import org.apache.commons.lang3.StringUtils;
+
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+
+public class MerchantUtils {
+
+ public String getFooterMessage(MerchantStore store, String prefix, String suffix) {
+
+ StringBuilder footerMessage = new StringBuilder();
+
+ if(!StringUtils.isBlank(prefix)) {
+ footerMessage.append(prefix).append(" ");
+ }
+
+ Date sinceDate = null;
+ String inBusinessSince = store.getDateBusinessSince();
+
+
+ return null;
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/utils/PageBuilderUtils.java b/sm-shop/src/main/java/com/salesmanager/shop/utils/PageBuilderUtils.java
new file mode 100644
index 0000000..dc7feb0
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/utils/PageBuilderUtils.java
@@ -0,0 +1,12 @@
+package com.salesmanager.web.utils;
+
+import com.salesmanager.core.business.merchant.model.MerchantStore;
+import com.salesmanager.web.shop.controller.ControllerConstants;
+
+public class PageBuilderUtils {
+
+ public static String build404(MerchantStore store) {
+ return new StringBuilder().append(ControllerConstants.Tiles.Pages.notFound).append(".").append(store.getStoreTemplate()).toString();
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/utils/SessionUtil.java b/sm-shop/src/main/java/com/salesmanager/shop/utils/SessionUtil.java
new file mode 100644
index 0000000..23b5a21
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/utils/SessionUtil.java
@@ -0,0 +1,31 @@
+/**
+ *
+ */
+package com.salesmanager.web.utils;
+
+import javax.servlet.http.HttpServletRequest;
+
+/**
+ * @author Umesh Awasthi
+ *
+ */
+public class SessionUtil
+{
+
+
+
+ @SuppressWarnings("unchecked")
+ public static <T> T getSessionAttribute(final String key, HttpServletRequest request) {
+ return (T) request.getSession().getAttribute( key );
+ }
+
+ public static void removeSessionAttribute(final String key, HttpServletRequest request) {
+ request.getSession().removeAttribute( key );
+ }
+
+ public static void setSessionAttribute(final String key, final Object value, HttpServletRequest request) {
+ request.getSession().setAttribute( key, value );
+ }
+
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/utils/TokenizeTool.java b/sm-shop/src/main/java/com/salesmanager/shop/utils/TokenizeTool.java
new file mode 100644
index 0000000..b6b157d
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/utils/TokenizeTool.java
@@ -0,0 +1,48 @@
+package com.salesmanager.web.utils;
+
+import javax.crypto.Cipher;
+import javax.crypto.KeyGenerator;
+import javax.crypto.SecretKey;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class TokenizeTool {
+
+ private final static String CIPHER = "AES/ECB/PKCS5Padding";
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(TokenizeTool.class);
+
+ private TokenizeTool(){}
+
+ private static SecretKey key = null;
+
+ static {
+
+ try {
+
+ KeyGenerator keygen = KeyGenerator.getInstance("DES");
+ key = keygen.generateKey();
+
+ } catch (Exception e) {
+ LOGGER.error("Cannot generate key",e);
+ }
+
+
+
+
+
+ }
+
+ public static String tokenizeString(String token) throws Exception {
+
+ Cipher aes = Cipher.getInstance(CIPHER);
+ aes.init(Cipher.ENCRYPT_MODE, key);
+ byte[] ciphertext = aes.doFinal(token.getBytes());
+
+ return new String(ciphertext);
+
+
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/utils/UserUtils.java b/sm-shop/src/main/java/com/salesmanager/shop/utils/UserUtils.java
new file mode 100644
index 0000000..60b5bb2
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/utils/UserUtils.java
@@ -0,0 +1,25 @@
+package com.salesmanager.web.utils;
+
+import java.util.List;
+
+import com.salesmanager.core.business.user.model.Group;
+import com.salesmanager.core.business.user.model.User;
+
+public class UserUtils {
+
+ public static boolean userInGroup(User user,String groupName) {
+
+
+
+ List<Group> logedInUserGroups = user.getGroups();
+ for(Group group : logedInUserGroups) {
+ if(group.getGroupName().equals(groupName)) {
+ return true;
+ }
+ }
+
+ return false;
+
+ }
+
+}
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/utils/WebApplicationCacheUtils.java b/sm-shop/src/main/java/com/salesmanager/shop/utils/WebApplicationCacheUtils.java
new file mode 100644
index 0000000..913dbf3
--- /dev/null
+++ b/sm-shop/src/main/java/com/salesmanager/shop/utils/WebApplicationCacheUtils.java
@@ -0,0 +1,22 @@
+package com.salesmanager.web.utils;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import com.salesmanager.core.utils.CacheUtils;
+
+@Component
+public class WebApplicationCacheUtils {
+
+ @Inject
+ private CacheUtils cache;
+
+ public Object getFromCache(String key) throws Exception {
+ return cache.getFromCache(key);
+ }
+
+ public void putInCache(String key, Object object) throws Exception {
+ cache.putInCache(object, key);
+ }
+
+}
diff --git a/sm-shop/src/main/resources/admin/menu.json b/sm-shop/src/main/resources/admin/menu.json
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/resources/bundles/messages.properties b/sm-shop/src/main/resources/bundles/messages.properties
old mode 100755
new mode 100644
index 92f5518..9886cfa
--- a/sm-shop/src/main/resources/bundles/messages.properties
+++ b/sm-shop/src/main/resources/bundles/messages.properties
@@ -36,6 +36,7 @@ NotEmpty.customer.userName=User name is required
NotEmpty.customer.firstName=First name is required
NotEmpty.customer.lastName=Last name is required
NotEmpty.customer.address=Street address is required
+NotEmpty.customer.address2=Street address is required
NotEmpty.customer.postalCode=Postal code is required
NotEmpty.customer.stateProvince=State / Province is required
NotEmpty.customer.phone=Phone number is required
@@ -121,8 +122,11 @@ message.optionset.noassociation=Select an option and an option value
messages.error.creditcard.number=Credit card number is not valid
messages.error.creditcard.dateformat=Credit card expiration date is invalid
+messages.error.creditcard.cvc=Credit card verification digits are invalid
+
message.payment.declined=Payment transaction has been declined
+message.payment.error=Got an error while processing the payment, please use another payment method
message.content.missing.agreement=Content with code 'agreement' does not exist
diff --git a/sm-shop/src/main/resources/bundles/messages_fr.properties b/sm-shop/src/main/resources/bundles/messages_fr.properties
old mode 100755
new mode 100644
index 6d612f6..1b3ef4e
--- a/sm-shop/src/main/resources/bundles/messages_fr.properties
+++ b/sm-shop/src/main/resources/bundles/messages_fr.properties
@@ -36,6 +36,7 @@ NotEmpty.customer.userName=Un nom d''usager est requis
NotEmpty.customer.firstName=Le prénom est requis
NotEmpty.customer.lastName=Le nom est requis
NotEmpty.customer.address=L''addresse est requise
+NotEmpty.customer.address2=L'addresse est requise
NotEmpty.customer.postalCode=Le code postal est requis
NotEmpty.customer.stateProvince=L''état / province est requis
NotEmpty.customer.phone=Le téléphone est requis
@@ -76,6 +77,8 @@ NotEmpty.contact.captchaResponseField=La réponse 'Captcha' est requise
NotEmpty.contact.captchaChallengeField=La question 'Captcha' est requise
message.payment.declined=La transaction a été refusée
+message.payment.error=Une erreur est survenue en essayant de compléter le paiement, si possible utiliser une autre méthode de paiement.
+messages.error.creditcard.cvc=Le numéro de vérification inscrit sur la carte est invalide
message.order.canprocess=La commande peut être complétée
message.name.required=Le nom de l'objet est reuis
@@ -125,7 +128,7 @@ message.productoptionvalue.required=Une valeur d'attribut/option de produit est
message.product.language=Le produit n'a pas été configuré pour ce language. Veuillez éditer le produit et ajouter les informations pour cette langue.
messages.error.creditcard.number=Le numéro de carte de crédit est invalide
-messages.error.creditcard.dateformat=La date d'expiration de la carte de crédit est invalide
+messages.error.creditcard.dateformat=La date d\\'expiration de la carte de crédit est invalide
message.content.missing.agreement=Le contenu défini avec le code 'agreement' n'existe pas
diff --git a/sm-shop/src/main/resources/bundles/payment.properties b/sm-shop/src/main/resources/bundles/payment.properties
old mode 100755
new mode 100644
index fa95400..169a67d
--- a/sm-shop/src/main/resources/bundles/payment.properties
+++ b/sm-shop/src/main/resources/bundles/payment.properties
@@ -1,12 +1,15 @@
payment.type.MONEYORDER=Money order
payment.type.PAYPAL=PayPal
payment.type.CREDITCARD=Credit card
+payment.type.STRIPE=Credit card
module.payment.paypal=PayPal
module.payment.beanstream=Beanstream
module.payment.authorizenet=Authorize Net
module.payment.moneyorder=Money order
module.payment.paypal-express-checkout=PayPal express checkout
+module.payment.stripe=Stripe
+
module.payment.transactiontype=Transaction type
module.payment.transactiontype.preauth=Pre-authorization
diff --git a/sm-shop/src/main/resources/bundles/payment_fr.properties b/sm-shop/src/main/resources/bundles/payment_fr.properties
old mode 100755
new mode 100644
index 7dd366f..ab8837b
--- a/sm-shop/src/main/resources/bundles/payment_fr.properties
+++ b/sm-shop/src/main/resources/bundles/payment_fr.properties
@@ -1,12 +1,14 @@
payment.type.MONEYORDER=Chèque
payment.type.PayPal=PayPal
payment.type.CREDITCARD=Carte de crédit
+payment.type.STRIPE=Carte de crédit
module.payment.PayPal=PayPal
module.payment.beanstream=Beanstream
module.payment.authorizenet=Authorize Net
module.payment.moneyorder=Chèque
module.payment.paypal-express-checkout=PayPal express checkout
+module.payment.stripe=Stripe
module.payment.transactiontype=Type de transaction
module.payment.transactiontype.preauth=Pré-authorization
diff --git a/sm-shop/src/main/resources/bundles/shipping.properties b/sm-shop/src/main/resources/bundles/shipping.properties
old mode 100755
new mode 100644
index 15f76b8..a759560
--- a/sm-shop/src/main/resources/bundles/shipping.properties
+++ b/sm-shop/src/main/resources/bundles/shipping.properties
@@ -3,12 +3,26 @@ module.shipping.ups=UPS
module.shipping.usps=United States Postal Service
module.shipping.fedex=Fedex
module.shipping.weightBased=Weight based shipping price
-module.shipping.customQuotesRules=Rules based shipping price
+module.shipping.customQuotesRules=Shipping by {0}
+module.shipping.storePickUp=Store pick up
+module.shipping.priceByDistance=Shipping by {0}
+
+module.shipping.storePickUp.note=This option let you reserve you order items through the onlne system and pick up your order by yourself at the store. This option is also ooered when no other shipping option is available for your region.
+
+#custom
+module.shipping.customQuotesRules.title=Create your own shipping quotes rules
+module.shipping.customQuotesRules.text=Use the rule system to create your own shipping rate decision table. The custom shipping rate decision table can be edited in sm-core/src/main/resources/rules/shipping-custom-rules.xls
+
+#custom
+module.shipping.priceByDistance.title=Create your own shipping quote based on distance
+module.shipping.priceByDistance.text=Set your shipping price (by kilometer). Requires the pre-processor distance calculator.
module.shipping.canada=Canada
module.shipping.usa=United states
module.shipping.international=International
+
+
#Canada Post
module.shipping.canadapost.identifier=Canada Post identifier (CPC number)
module.shipping.canadapost.username=Canada Post user name (first part of the API key before semi column)
@@ -121,6 +135,9 @@ module.shipping.ups.method=UPS shipping methods
module.shipping.ups.method.select=Select a specific UPS shipping method
module.shipping.ups.method.unselect=Let UPS propose all available shipping methods
-#custom
-module.shipping.customQuotesRules.title=Create your own shipping quotes rules
-module.shipping.customQuotesRules.text=Use the rule system to create your own shipping rate decision table. The custom shipping rate decision table can be edited in sm-core/src/main/resources/rules/shipping-custom-rules.xls
+
+#store pick up
+module.shipping.storePickUp.address=Pick up address that will be displayed to the client
+module.shipping.storePickUp.address.message=Pick up address is a required field
+module.shipping.storePickUp.price=Price for store pick up in numeric format (usually 0)
+module.shipping.storePickUp.price.message=Price for store pick up is required (in numeric format)
\ No newline at end of file
diff --git a/sm-shop/src/main/resources/bundles/shipping_fr.properties b/sm-shop/src/main/resources/bundles/shipping_fr.properties
old mode 100755
new mode 100644
index f839cea..fbfb891
--- a/sm-shop/src/main/resources/bundles/shipping_fr.properties
+++ b/sm-shop/src/main/resources/bundles/shipping_fr.properties
@@ -3,8 +3,19 @@ module.shipping.ups=UPS
module.shipping.usps=United States Postal Service
module.shipping.fedex=Fedex
module.shipping.weightBased=Prix d'expédition basé sur le poids
-module.shipping.customQuotesRules=Prix d'expédition basé sur des règles d'affaire
+module.shipping.customQuotesRules=Livraison par {0}
+module.shipping.storePickUp=Ramassage en magasin
+module.shipping.priceByDistance=Livraison par {0}
+module.shipping.storePickUp.note=Cette option vous permet de réserver votre commande via le système web et de ramasser par vous même l'item ou les items en magasin. Cette option est également offerte lorsque aucune autre option de livraison est disponible dans votre secteur.
+
+#custom
+module.shipping.customQuotesRules.title=Vous pouvez produire vos propre règles de coûts d'expédition
+module.shipping.customQuotesRules.text=Utilisez le système de règles d'affaires afin de créer votre propre table de décision des coûts d'expédition. Le fichier de règles d'affaires des coûts d'expédition peut être édité sous sm-core/src/main/resources/rules/shipping-custom-rules.xls
+
+#custom
+module.shipping.priceByDistance.title=Vous pouvez produire vos propre règles de coûts d'expédition basées sur la distance
+module.shipping.priceByDistance.text=Calcul du prix de livraison sur un prix fixe par kilomètre. Requiert le pré-processeur permettant de calculer la distance de livraison.
module.shipping.canada=Canada
module.shipping.usa=États-Unis
@@ -76,6 +87,8 @@ module.shipping.usps.method.07=Parcel Post
module.shipping.canadapost.packages.package=Paquet
module.shipping.canadapost.packages.envelope=Enveloppe
-#custom
-module.shipping.customQuotesRules.title=Vous pouvez produire vos propre règles de coûts d'expédition
-module.shipping.customQuotesRules.text=Utilisez le système de règles d'affaires afin de créer votre propre table de décision des coûts d'expédition. Le fichier de règles d'affaires des coûts d'expédition peut être édité sous sm-core/src/main/resources/rules/shipping-custom-rules.xls
+#store pick up
+module.shipping.storePickUp.address=Adresse de ramassage affichée au client
+module.shipping.storePickUp.address.message=L'Adresse de ramassage est un champ requis
+module.shipping.storePickUp.price=Prix de l'option de ramassage en magasin (normalement 0)
+module.shipping.storePickUp.price.message=Le prix de l'option de ramassage est requis (en format numérique)
diff --git a/sm-shop/src/main/resources/bundles/shopizer.properties b/sm-shop/src/main/resources/bundles/shopizer.properties
old mode 100755
new mode 100644
index a41c203..9fbb0a8
--- a/sm-shop/src/main/resources/bundles/shopizer.properties
+++ b/sm-shop/src/main/resources/bundles/shopizer.properties
@@ -14,6 +14,7 @@ label.entity.public=Public
label.entity.details=Details
label.entity.type=Type
label.entity.remove.confirm=Do you really want to remove this entity?
+label.entity.setAsDefault.confirm=Do you really want to set this entity as default?
label.entity.order=Order
label.entity.status=Status
label.generic.all=All
@@ -24,6 +25,7 @@ label.generic.country=Country
label.generic.price=Price
label.generic.phone=Phone number
label.generic.back=Back
+label.generic.setAsDefault=Set as default
label.generic.country.code=Country code
label.generic.stateprovince=State / province
label.generic.postalcode=Postal code
@@ -47,6 +49,8 @@ label.generic.minimum=Minimum
label.generic.maximum=Maximum
label.generic.pictures=Pictures
label.generic.videos=Videos
+label.generic.imageType=Media type
+label.generic.today=Today
label.generic.welcome=Welcome
label.generic.weightunit.LB=Pounds
@@ -84,6 +88,8 @@ label.generic.country=Country
label.generic.hi=Hi
label.generic.send=Send
+label.soldout=Sold out
+
#merchant store
label.store.information.title=Information
label.store.title=Merchant Store
@@ -119,6 +125,10 @@ label.store.currency.format.help=National currency format ex $1,345.79 or Intern
label.store.displaycontactussection=Display contact us page
label.store.displaystoreaddress=Display store address
+label.store.displaysearchbox=Display search box
+label.store.testmode=Test mode (hide category and product details)
+label.store.debugmode=Debug mode (add additional debug)
+label.store.allowPurchaseItems=Allow purchase items
label.store.displayaddtocartfeatured=Allow add to cart on featured items
label.store.tofindus=Where to find us
@@ -233,6 +243,8 @@ label.customer.shipping.lastname=Shipping last name
label.customer.shipping.name=Shipping name
label.customer.shipping.shipaddress=Ship to this address
+label.customer.confirmshippingaddress=Shipping address confirmation
+
label.customer.optionv.edit=Edit option
label.customer.option.name=Option name
label.customer.option.code=Option code
@@ -308,6 +320,7 @@ label.sefurl=Search engine friendly url
label.metatags.description = (Meta tags) Description
label.metatags.keywords = (Meta tags) Keywords
label.product.sku=Sku
+label.product.refsku=Reference system identifier
label.product.available=Available
label.productedit.productname=Product name
label.productedit.producthl=Short product highlight
@@ -315,6 +328,7 @@ label.productedit.productdesc=Product description
label.product.title=Product title
label.product.price=Product price
label.product.price.code=Product price code
+label.product.preorder=Pre-order
label.product.price.name=Product price name
label.product.price.default=Default product price
label.product.price.special=Special price
@@ -327,7 +341,7 @@ label.product.visible=Product visible
label.product.status=Status
label.product.weight=Weight
label.product.height=Height
-label.product.lenght=Length
+label.product.length=Length
label.product.width=Width
label.product.image=Image
label.product.uploadfile=Upload file
@@ -367,6 +381,7 @@ label.product.moreitems=Display more items
label.product.searchkeywords=Search keywords
label.product.shipeable=Product will be shipped
label.product.outofstock=Out of stock
+label.product.defaultImage.message=When selecting default, this image will be the image displayed in the product page
#options
label.product.productoptions.edit.title=Edit product option
@@ -527,6 +542,7 @@ label.configuration.google_api_key=Google API key (For maps)
label.configuration.facebook_page_url=FaceBook Page
label.configuration.twitter_handle=Twitter handle
label.configuration.pinterest=Pinterest
+label.configuration.instagram=Instagram
label.social.connect=Connect with us
label.social.facebook=FaceBook
label.social.twitter=Twitter
@@ -540,6 +556,8 @@ label.mycart=My cart
label.cart.revieworder=Review your order
label.cart.placeorder=Place your order
+label.shipping.nopostalcode=A shipping quote will be available after filling the postal code
+
#checkout
label.checkout=Checkout
label.subtotal=Sub-total
@@ -594,7 +612,8 @@ email.contact=A new contact email - {0}
email.contact.title=Email contact form
label.checkout.logon=Logon or signup to simplify the online purchase process!
-label.checkout.text=Thank you for ordering from {0}. Your order id is {1}.
+label.checkout.text=Thank you for ordering from {0}.
+label.checkout.orderid=Your order id is {0}.
label.checkout.email=An email with your order details has been sent to {0}.
label.checkout.additionaltext=If you have any comments or suggestions for us, please send us an email with your order id. We value your feedback.
label.checkout.downloads.completed=Here are your download files.
@@ -647,6 +666,7 @@ button.label.upload.files=Upload Files
button.label.resetpassword=Reset Password
button.label.view=Details
button.label.addToCart=Add to cart
+button.label.continue=Continue shopping
#menus
menu.home=Home
@@ -664,6 +684,7 @@ menu.catalogue-categories-hierarchy=Category hierarchy
menu.catalogue-products-categories=Products to categories
menu.catalogue-options=Options
menu.catalogue-products-images=Product images
+menu.catalogue-products-images-url=Product images external url
menu.catalogue-options-create=Create option
menu.catalogue-options-list=Options list
menu.catalogue-optionsvalues-create=Create option value
diff --git a/sm-shop/src/main/resources/bundles/shopizer_fr.properties b/sm-shop/src/main/resources/bundles/shopizer_fr.properties
old mode 100755
new mode 100644
index 3db5f22..fff6a77
--- a/sm-shop/src/main/resources/bundles/shopizer_fr.properties
+++ b/sm-shop/src/main/resources/bundles/shopizer_fr.properties
@@ -14,6 +14,7 @@ label.entity.public=Public
label.entity.details=Détails
label.entity.type=Type
label.entity.remove.confirm=Désirez-vous vraiement détruire cette entitée ?
+label.entity.setAsDefault.confirm=Désirez-vous assigner cette entité par défaut ?
label.entity.order=Ordre
label.entity.status=Status
label.generic.all=Tout
@@ -24,6 +25,7 @@ label.generic.country=Pays
label.generic.price=Prix
label.generic.phone=Téléphone
label.generic.back=Retour
+label.generic.setAsDefault=Configurer par défaut
label.generic.country.code=Code du pays
label.generic.stateprovince=État / province
label.generic.postalcode=Code postal
@@ -48,6 +50,8 @@ label.generic.minimum=Minimum
label.generic.maximum=Maximum
label.generic.pictures=Photos
label.generic.videos=Vidéos
+label.generic.imageType=Type de média
+label.generic.today=Aujourd'hui
label.generic.welcome=Bienvenue
label.generic.weightunit.LB = Livres
@@ -57,7 +61,7 @@ label.generic.search=Recherche
label.generic.sizeunit.CM = Centimètres
label.generic.sizeunit.IN = Pouces
-label.generic.remove=Détruire
+label.generic.remove=Retirer
label.generic.yes=Oui
label.generic.no=Non
label.generic.alphanumeric=Alpha numérique
@@ -84,6 +88,7 @@ label.generic.country=Pays
label.generic.hi=Bonjour
label.generic.send=Envoyer
+label.soldout=Non disponible
#merchant store
label.store.information.title=Informations
@@ -120,10 +125,13 @@ label.store.currency.format.help=Format de la monaie national ex $1,345.79 ou Fo
label.store.displaycontactussection=Afficher la page contactez-nous
label.store.displaystoreaddress=Afficher l'adresse de la boutique
+label.store.displaysearchbox=Afficher la boîte de recheche
+label.store.testmode=Mode tests (cache les catégories et le détail des produits)
+label.store.debugmode=Mode 'debug' (ajoute des traces additionnelles)
+label.store.allowPurchaseItems=Permettre l'achat d'items
label.store.displayaddtocartfeatured=Permettre l'ajout au panier à partir des articles recommandés
label.store.tofindus=Notre adresse
-label.storefront.landingpage=Informations de la page principale
label.storefront.storetext = Contenu de la page principale
label.storefront.metatags.keywords = (Meta tags) Mots-clés
label.storefront.metatags.description = (Meta tags) Description
@@ -201,9 +209,9 @@ label.customer.order.agreement=Je suis d'accord avec les termes et conditions
label.customer.order.agreement.title=Termes et conditions
label.customer.options.edit=Éditer l'option
-label.customer.billinginformation = Informations sur la facturation
-label.customer.shippinginformation = Informations sur la livraison
-label.customer.billingshipping=Billing & shipping information
+label.customer.billinginformation =Informations sur la facturation
+label.customer.shippinginformation =Informations sur la facturation et la livraison
+label.customer.billingshipping=Informations de facturation et de livraison
label.customer.shippingaddress=Adresse de livraison
label.customer.billingaddress=Adresse de facturation
@@ -212,7 +220,7 @@ label.customer.edit.billingaddress=Modifier l'adresse de facturation
label.customer.edit.shippinginformation=Modifier l'adresse de livraison
-label.customer.billing.company=Company de facturation
+label.customer.billing.company=Nom de l'entreprise
label.customer.billing.streetaddress = Adresse de facturation
label.customer.billing.suburb = Banlieue de facturation
label.customer.billing.postalcode = Code postal de facturation
@@ -230,11 +238,14 @@ label.customer.shipping.postalcode=Code postal de livraison
label.customer.shipping.city=Ville de livraison
label.customer.shipping.zone=État / province de livraison
label.customer.shipping.country=Pays de livraison
-label.customer.shipping.firstname=Prénom sur la livraison
-label.customer.shipping.lastname=Nom de famille sur la livraison
-label.customer.shipping.name=Nom sur la livraison
+label.customer.shipping.firstname=Prénom à la livraison
+label.customer.shipping.lastname=Nom de famille à la livraison
+label.customer.shipping.name=Nom à la livraison
label.customer.shipping.shipaddress=Livrer à cette adresse
+label.customer.confirmshippingaddress=Confirmation de l'adresse de livraison
+
+
label.customer.optionv.edit=Éditer une option
label.customer.option.name=Nom de l'option
@@ -304,6 +315,7 @@ label.sefurl=Lien convivial
label.metatags.description = (Meta tags) Description
label.metatags.keywords = (Meta tags) Mots-clés
label.product.sku=Sku
+label.product.refsku=Identifiant de l'item dans le système de référence
label.product.available=Disponible
label.product.create=Créer a produit
label.product.edit=éditer le produit
@@ -313,6 +325,7 @@ label.productedit.productdesc=Description du produit
label.product.title=Titre du produit
label.product.price=Prix du produit
label.product.price.code=Code de prix du produit
+label.product.preorder=Pré-commande
label.product.price.name=Nom du prix
label.product.price.default=Prix par défaut
label.product.price.special=Prix rabais
@@ -321,11 +334,11 @@ label.product.price.special.enddate=Date de fin du rabais
label.taxclass = Classe de taxe
label.product.ordermax=Quantitée maximum permise
label.product.ordermin=Quantity minimum permise
-label.product.weight = Poids
-label.product.height = Hauteur
-label.product.lenght = Longueur
-label.product.width = Largeur
-label.product.image = Image
+label.product.weight =Poids
+label.product.height =Hauteur
+label.product.length =Profondeur
+label.product.width =Largeur
+label.product.image =Image
label.product.uploadfile = Importer un fichier
label.product.details=Détails du produit
label.product.prices=Prix du produit
@@ -363,7 +376,7 @@ label.product.moreitems=Afficher plus d'articles
label.product.searchkeywords=Mots clés de recherche
label.product.shipeable=Le produit doit être livré
label.product.outofstock=Non disponible
-
+label.product.defaultImage.message=En choisissant l'option défaut, cette image sera affichée comme image principale dans le page de produit
#options
label.product.productoptions.edit.title=Modifier une option de produit
@@ -477,6 +490,7 @@ label.order.history=Historique
label.order.recent=Dernières commandes
label.order.pastorders=Historique des commandes
label.order.summary=Sommaire de la commande
+label.order.details=Détails de la commande
label.order.PROCESSING=En traîtement
label.order.ORDERED=Commandée
label.order.PAID=Payée
@@ -502,7 +516,7 @@ label.payment.paypal.usepaypal=Utiliser PayPal
label.payment.moneuorder.usemoneyorder=Utiliser une traîte bancaire
label.payment.creditcard.usecredicard=Utitliser votre carte de crédit
label.payment.creditcard.cardowner=Nom inscrit sur la carte
-label.payment.creditcard.cardowner=Numéro de la carte
+label.payment.creditcard.cardnumber=Numéro de la carte
label.payment.creditcard.cardexpiry=Date d'expiration de la carte de crédit
label.payment.creditcard.cardcvv=Numéro de validation de la carte de crédit
label.payment.creditcard.whatiscvv=Qu'est-ce que le numéro de validation de la carte de crédit
@@ -524,6 +538,7 @@ label.configuration.google_api_key=Clée Google pour API (pour les cartes)
label.configuration.facebook_page_url=URL de la page FaceBook
label.configuration.twitter_handle=Compte Twitter
label.configuration.pinterest=Pinterest
+label.configuration.instagram=Instagram
label.social.connect=Restons en contact
label.social.facebook=FaceBook
label.social.twitter=Twitter
@@ -542,10 +557,12 @@ label.checkout=Paiement
label.subtotal=Sous-total
label.checkout.confirmation=La commande a été complétée
+label.shipping.nopostalcode=Les frais de livraison seront ajustés après avoir inscrit votre code postal.
+
#register
label.register.notyetregistered=Pas encore enregistré ?
label.register.whyregister=Pourquoi s'enregistrer ?
-label.register.registerreasons=Simplify a checkout process by having your information pre-filed, re-order an item from one click and get access to premium information.
+label.register.registerreasons=Simplifiez le processus d'achat en créant au préalables les informations de facturation et d'envoi des commandes. Vous aurez accès à une section vous permettant de faire le suivi de vos commandes et d'imprimer vos factures d'achats.
label.register.confirmation=L'enregistrement a été complété avec succès ! Un couriel a été envoyé à {0} comprenant les informations permettant de se connecter. Allez à {1} afin de vous connecter au système.
label.notification.message.passwordchanged=Nous désirons vous informer qu'une demande de changement de votre mot de passe a été faite le {0}
@@ -592,7 +609,8 @@ email.contact.title=Formulaire de contact
label.checkout.logon=Vous pouvez vous authentifier ou vous abonner afin de simplifier le processus d'achats !
-label.checkout.text=Merci d'avoir commandé de {0}. Vontre nu,éro de commande est {1}.
+label.checkout.text={0} vous remercie d'avoir acheté chez nous.
+label.checkout.orderid=Votre numéro de commande est {0}.
label.checkout.email=Un courriel contenant le détail de la commande a été envoyé à {0}.
label.checkout.additionaltext=Si vous avez des commentaires ou suggestions à nous envoyez vous pouvez le faire par courriel en prenant le soin de mentionner le numéro de votre commande.
label.checkout.downloads.completed=Voici le(s) fichier(s) à télécharger.
@@ -644,6 +662,7 @@ button.label.upload.images=Ajouter des fichiers
button.label.resetpassword=Ré-initialiser le mot de passe
button.label.view=Détails
button.label.addToCart=Ajouter au panier
+button.label.continue=Continuez votre magasinage
menu.home=Page d'accueil
menu.catalogue=Catalogue
@@ -660,12 +679,13 @@ menu.catalogue-categories-hierarchy=Structure des catégories
menu.catalogue-products-categories=Produits - Catégories
menu.catalogue-options=Options
menu.catalogue-products-images=Images du produit
+menu.catalogue-products-images-url=Url de l'image du produit
menu.catalogue-options-create=Créer une option
menu.catalogue-options-list=Liste des options
menu.catalogue-optionsvalues-create=Créer une valeur d'option
menu.catalogue-optionsvalues-list=Liste des valeurs d'options
menu.catalogue-products-group=Groupes de produits
-menu.catalogue-featured=Items vedettes
+menu.catalogue-featured=Articles vedettes
menu.catalogue-products-custom-group=Autres groupes de produits
menu.customer=Clients
menu.profile=Profile
@@ -699,7 +719,7 @@ menu.customer-options-values-create=Créer une valeur option d'option du client
menu.customer-options-set=Gérer les options possibles du client
menu.content=Gestion du contenu
menu.content-pages=Gérer les pages
-menu.content-pages-create=Créer un page
+menu.content-pages-create=Créer une page
menu.content-boxes-create=Créer une boîte
menu.content-boxes=Gérer les boîtes
menu.content-images=Gérer les images
diff --git a/sm-shop/src/main/resources/database.properties b/sm-shop/src/main/resources/database.properties
old mode 100755
new mode 100644
index 490c54b..c7a2e06
--- a/sm-shop/src/main/resources/database.properties
+++ b/sm-shop/src/main/resources/database.properties
@@ -1,17 +1,14 @@
##
-## configuration base de données
+## configuration base de donnees
##
#MYSQL
#db.jdbcUrl=jdbc:mysql://localhost:3306/SALESMANAGER?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8
-#db.user=root
-#db.password=root
-#hibernate.hbm2ddl.auto=update
+#db.user=USERNAME
+#db.password=PASSWORD
#db.driverClass=com.mysql.jdbc.Driver
#hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
-#db.preferredTestQuery=SELECT 1
-#db.schema=SALESMANAGER
#H2
db.jdbcUrl=jdbc\:h2\:file\:SALESMANAGER;AUTOCOMMIT=OFF;INIT\=CREATE SCHEMA IF NOT EXISTS SALESMANAGER
@@ -19,14 +16,15 @@ db.user=test
db.password=password
db.driverClass=org.h2.Driver
hibernate.dialect=org.hibernate.dialect.H2Dialect
+
+
db.preferredTestQuery=SELECT 1
db.schema=SALESMANAGER
-
hibernate.hbm2ddl.auto=update
##
-## configuration pooling base de données
+## configuration pooling base de donn�es
##
-db.initialPoolSize=10
-db.minPoolSize=5
-db.maxPoolSize=50
+db.initialPoolSize=4
+db.minPoolSize=4
+db.maxPoolSize=8
\ No newline at end of file
sm-shop/src/main/resources/log4j.properties 15(+15 -0)
diff --git a/sm-shop/src/main/resources/log4j.properties b/sm-shop/src/main/resources/log4j.properties
new file mode 100644
index 0000000..de9e11d
--- /dev/null
+++ b/sm-shop/src/main/resources/log4j.properties
@@ -0,0 +1,15 @@
+log4j.appender.Stdout=org.apache.log4j.ConsoleAppender
+log4j.appender.Stdout.layout=org.apache.log4j.PatternLayout
+log4j.appender.Stdout.layout.ConversionPattern=[%d{ISO8601}] %-5p - %-26.26c{1} - %m\n
+
+log4j.rootLogger=INFO,Stdout,debugLogfile
+
+
+log4j.logger.com.salesmanager.web.shop=INFO, debugLogfile
+log4j.appender.debugLogfile=org.apache.log4j.RollingFileAppender
+log4j.appender.debugLogfile.File=shopizer-debug.log
+#log4j.appender.debugLogfile.Threshold=ALL
+log4j.appender.debugLogfile.MaxFileSize=100MB
+#log4j.appender.debugLogfile.MaxBackupIndex=4
+log4j.appender.debugLogfile.layout=org.apache.log4j.PatternLayout
+log4j.appender.debugLogfile.layout.ConversionPattern=%d %-4r [%t] %-5p %c %x - %m%n
\ No newline at end of file
diff --git a/sm-shop/src/main/webapp/common/adminLinks.jsp b/sm-shop/src/main/webapp/common/adminLinks.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/common/adminTabs.jsp b/sm-shop/src/main/webapp/common/adminTabs.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/layout/admin/layout.jsp b/sm-shop/src/main/webapp/layout/admin/layout.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/layout/admin/noSkinLayout.jsp b/sm-shop/src/main/webapp/layout/admin/noSkinLayout.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/categories/categories.jsp b/sm-shop/src/main/webapp/pages/admin/categories/categories.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/categories/categories-gridHeader.jsp b/sm-shop/src/main/webapp/pages/admin/categories/categories-gridHeader.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/categories/category.jsp b/sm-shop/src/main/webapp/pages/admin/categories/category.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/categories/hierarchy.jsp b/sm-shop/src/main/webapp/pages/admin/categories/hierarchy.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/components/fileBrowser.jsp b/sm-shop/src/main/webapp/pages/admin/components/fileBrowser.jsp
old mode 100755
new mode 100644
index 54444ff..0fd04ed
--- a/sm-shop/src/main/webapp/pages/admin/components/fileBrowser.jsp
+++ b/sm-shop/src/main/webapp/pages/admin/components/fileBrowser.jsp
@@ -2,6 +2,7 @@
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib uri="http://www.springframework.org/tags" prefix="s" %>
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
+<%@ taglib uri="/WEB-INF/shopizer-tags.tld" prefix="sm" %>
<%@ page session="false" %>
@@ -9,10 +10,12 @@
<script src="<c:url value="/resources/js/ckeditor/ckeditor.js" />"></script>
+
<script language="javascript">
+ var imgPrefix = '<sm:contentImage merchantStore="${requestScope.ADMIN_STORE}" imageName="" imageType="IMAGE"/>';
+
function selectImage(img) {//ckeditor function
- //TODO URL, MERCHANT STORE
- var image = '<c:url value="/static/${requestScope.ADMIN_STORE.code}/IMAGE/"/>' + img;
+ var image = '<c:url value=""/>' + imgPrefix + img;
window.opener.CKEDITOR.tools.callFunction(2, image);
window.close();
}
diff --git a/sm-shop/src/main/webapp/pages/admin/components/images-list.jsp b/sm-shop/src/main/webapp/pages/admin/components/images-list.jsp
old mode 100755
new mode 100644
index 5b1178e..e6b172e
--- a/sm-shop/src/main/webapp/pages/admin/components/images-list.jsp
+++ b/sm-shop/src/main/webapp/pages/admin/components/images-list.jsp
@@ -15,7 +15,8 @@
dataFormat:"json",
operationBindings:[
{operationType:"fetch", dataProtocol:"postParams",dataURL: "<c:url value="${pagingUrl}" />"},
- {operationType:"remove", dataProtocol:"postParams",dataURL: "<c:url value="${removeUrl}" />"}
+ {operationType:"remove", dataProtocol:"postParams",dataURL: "<c:url value="${removeUrl}" />"},
+ {operationType:"update", dataProtocol:"postParams", dataURL: "<c:url value="${defaultImageUrl}" />"}
],
transformResponse : function (dsResponse, dsRequest, jsonData) {
var status = isc.XMLTools.selectObjects(jsonData, "/response/status");
@@ -51,6 +52,9 @@
// override getTile() and add a "Remove" button
var canvas = this.Super("getTile", arguments);
canvas.addChild(this.getRemoveButton(this.getRecord(record)));
+ <c:if test="${canSetDefaultEntry==true}">
+ canvas.addChild(this.getSetDefaultButton(this.getRecord(record)));
+ </c:if>
return canvas;
},
@@ -104,6 +108,47 @@
return removeButton;
}
+ <c:if test="${canSetDefaultEntry==true}">
+ ,
+ getSetDefaultButton : function (record) {
+ var setDefaultButton = isc.ImgButton.create({
+ src: '<c:url value="' + record.defaultImageCheckmark + '"/>',
+ showHover: true,
+ prompt: "<s:message code='label.generic.setAsDefault' text='Set as default' />",
+ size: 15,
+ showFocused: false,
+ showRollOver: false,
+ snapTo: "TL",
+ showDown: false,
+ margin: 2,
+ tileGrid: this,
+ record: record,
+ click : function () {
+ if (confirm('<s:message code="label.entity.setAsDefault.confirm" text="Do you really want to set this entity as default?" />')) {
+ $.ajax({
+ type: 'POST',
+ url: '<c:url value="${defaultImageUrl}"/>',
+ data: 'id=' + record.id + '&name=' + record.name,
+ dataType: 'json',
+ success: function(response) {
+ var status = isc.XMLTools.selectObjects(response, "/response/status");
+ if (status==0 || status ==9999) {
+ //reload
+ window.location='<c:url value="${refreshUrl}" />';
+ } else {
+ }
+ },
+ error: function(xhr, textStatus, errorThrown) {
+ alert('error ' + errorThrown);
+ }
+ });
+ }
+ }
+ });
+
+ return setDefaultButton;
+ }
+ </c:if>
});
diff --git a/sm-shop/src/main/webapp/pages/admin/components/list.jsp b/sm-shop/src/main/webapp/pages/admin/components/list.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/components/product-container.jsp b/sm-shop/src/main/webapp/pages/admin/components/product-container.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/configuration/accounts.jsp b/sm-shop/src/main/webapp/pages/admin/configuration/accounts.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/configuration/cacheManagement.jsp b/sm-shop/src/main/webapp/pages/admin/configuration/cacheManagement.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/configuration/email.jsp b/sm-shop/src/main/webapp/pages/admin/configuration/email.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/configuration/system.jsp b/sm-shop/src/main/webapp/pages/admin/configuration/system.jsp
old mode 100755
new mode 100644
index 6eb124a..4796078
--- a/sm-shop/src/main/webapp/pages/admin/configuration/system.jsp
+++ b/sm-shop/src/main/webapp/pages/admin/configuration/system.jsp
@@ -29,6 +29,25 @@
<form:errors path="*" cssClass="alert alert-error" element="div" />
<div id="store.success" class="alert alert-success" style="<c:choose><c:when test="${success!=null}">display:block;</c:when><c:otherwise>display:none;</c:otherwise></c:choose>"><s:message code="message.success" text="Request successfull"/></div>
+
+ <div class="control-group">
+ <label><s:message code="label.store.testmode" text="Test mode" /></label>
+ <div class="controls">
+ <form:checkbox path="testMode" />
+ <span class="help-inline"></span>
+ </div>
+ </div>
+
+
+ <div class="control-group">
+ <label><s:message code="label.store.debugmode" text="Debug mode" /></label>
+ <div class="controls">
+ <form:checkbox path="debugMode" />
+ <span class="help-inline"></span>
+ </div>
+ </div>
+
+
<div class="control-group">
<label><s:message code="label.customer.displaycustomersection" text="Display customer section" /></label>
<div class="controls">
@@ -62,6 +81,14 @@
</div>
</div>
+ <div class="control-group">
+ <label><s:message code="label.store.displaysearchbox" text="Display search box" /></label>
+ <div class="controls">
+ <form:checkbox path="displaySearchBox" />
+ <span class="help-inline"></span>
+ </div>
+ </div>
+
<c:forEach items="${store.languages}" var="language">
<div class="control-group">
@@ -77,6 +104,14 @@
</c:forEach>
+ <div class="control-group">
+ <label><s:message code="label.store.allowPurchaseItems" text="Allow purchase items" /></label>
+ <div class="controls">
+ <form:checkbox path="allowPurchaseItems" />
+ <span class="help-inline"></span>
+ </div>
+ </div>
+
<div class="control-group">
<label><s:message code="label.store.displayaddtocartfeatured" text="Allow add to cart on featured items" /></label>
<div class="controls">
diff --git a/sm-shop/src/main/webapp/pages/admin/content/contentFiles.jsp b/sm-shop/src/main/webapp/pages/admin/content/contentFiles.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/content/contentFiles-gridHeader.jsp b/sm-shop/src/main/webapp/pages/admin/content/contentFiles-gridHeader.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/content/content-gridHeader.jsp b/sm-shop/src/main/webapp/pages/admin/content/content-gridHeader.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/content/contentImages.jsp b/sm-shop/src/main/webapp/pages/admin/content/contentImages.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/content/contentPages.jsp b/sm-shop/src/main/webapp/pages/admin/content/contentPages.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/content/contentPagesDetails.jsp b/sm-shop/src/main/webapp/pages/admin/content/contentPagesDetails.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/customers/customer.jsp b/sm-shop/src/main/webapp/pages/admin/customers/customer.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/customers/customers.jsp b/sm-shop/src/main/webapp/pages/admin/customers/customers.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/customers/customers-gridHeader.jsp b/sm-shop/src/main/webapp/pages/admin/customers/customers-gridHeader.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/customers/option.jsp b/sm-shop/src/main/webapp/pages/admin/customers/option.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/customers/options.jsp b/sm-shop/src/main/webapp/pages/admin/customers/options.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/customers/options-gridHeader.jsp b/sm-shop/src/main/webapp/pages/admin/customers/options-gridHeader.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/customers/optionsset.jsp b/sm-shop/src/main/webapp/pages/admin/customers/optionsset.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/customers/optionsset-gridHeader.jsp b/sm-shop/src/main/webapp/pages/admin/customers/optionsset-gridHeader.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/customers/optionsValues.jsp b/sm-shop/src/main/webapp/pages/admin/customers/optionsValues.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/customers/optionsValues-gridHeader.jsp b/sm-shop/src/main/webapp/pages/admin/customers/optionsValues-gridHeader.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/customers/optionValue.jsp b/sm-shop/src/main/webapp/pages/admin/customers/optionValue.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/home.jsp b/sm-shop/src/main/webapp/pages/admin/home.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/merchant/branding.jsp b/sm-shop/src/main/webapp/pages/admin/merchant/branding.jsp
old mode 100755
new mode 100644
index a05cf51..e0ab649
--- a/sm-shop/src/main/webapp/pages/admin/merchant/branding.jsp
+++ b/sm-shop/src/main/webapp/pages/admin/merchant/branding.jsp
@@ -76,7 +76,7 @@
<input class="input-file" id="file" name="file[0]" type="file"><br/>
</c:when>
<c:otherwise>
- <img src="<sm:contentImage imageName="${store.storeLogo}" imageType="LOGO"/>">
+ <img src="<c:url value=""/><sm:contentImage imageName="${store.storeLogo}" imageType="LOGO"/>">
</c:otherwise>
</c:choose>
diff --git a/sm-shop/src/main/webapp/pages/admin/merchant/merchant.jsp b/sm-shop/src/main/webapp/pages/admin/merchant/merchant.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/merchant/storeLanding.jsp b/sm-shop/src/main/webapp/pages/admin/merchant/storeLanding.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/merchant/stores.jsp b/sm-shop/src/main/webapp/pages/admin/merchant/stores.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/merchant/stores-gridHeader.jsp b/sm-shop/src/main/webapp/pages/admin/merchant/stores-gridHeader.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/orders/order.jsp b/sm-shop/src/main/webapp/pages/admin/orders/order.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/orders/orders.jsp b/sm-shop/src/main/webapp/pages/admin/orders/orders.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/orders/orders-gridHeader.jsp b/sm-shop/src/main/webapp/pages/admin/orders/orders-gridHeader.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/orders/transactions.jsp b/sm-shop/src/main/webapp/pages/admin/orders/transactions.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/payment/beanstream.jsp b/sm-shop/src/main/webapp/pages/admin/payment/beanstream.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/payment/moneyorder.jsp b/sm-shop/src/main/webapp/pages/admin/payment/moneyorder.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/payment/paymentMethod.jsp b/sm-shop/src/main/webapp/pages/admin/payment/paymentMethod.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/payment/paymentMethods.jsp b/sm-shop/src/main/webapp/pages/admin/payment/paymentMethods.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/payment/paypal.jsp b/sm-shop/src/main/webapp/pages/admin/payment/paypal.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/payment/paypal-express-checkout.jsp b/sm-shop/src/main/webapp/pages/admin/payment/paypal-express-checkout.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/payment/stripe.jsp b/sm-shop/src/main/webapp/pages/admin/payment/stripe.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/products/attribute.jsp b/sm-shop/src/main/webapp/pages/admin/products/attribute.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/products/attributes.jsp b/sm-shop/src/main/webapp/pages/admin/products/attributes.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/products/attributes-gridHeader.jsp b/sm-shop/src/main/webapp/pages/admin/products/attributes-gridHeader.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/products/customProductGroup.jsp b/sm-shop/src/main/webapp/pages/admin/products/customProductGroup.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/products/customProductGroupDetails.jsp b/sm-shop/src/main/webapp/pages/admin/products/customProductGroupDetails.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/products/customProductGroup-gridHeader.jsp b/sm-shop/src/main/webapp/pages/admin/products/customProductGroup-gridHeader.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/products/digitalProduct.jsp b/sm-shop/src/main/webapp/pages/admin/products/digitalProduct.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/products/featured.jsp b/sm-shop/src/main/webapp/pages/admin/products/featured.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/products/featured-gridHeader.jsp b/sm-shop/src/main/webapp/pages/admin/products/featured-gridHeader.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/products/keywords.jsp b/sm-shop/src/main/webapp/pages/admin/products/keywords.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/products/keywords-gridHeader.jsp b/sm-shop/src/main/webapp/pages/admin/products/keywords-gridHeader.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/products/manufacturer.jsp b/sm-shop/src/main/webapp/pages/admin/products/manufacturer.jsp
old mode 100755
new mode 100644
index 1e05bfd..b0f1e42
--- a/sm-shop/src/main/webapp/pages/admin/products/manufacturer.jsp
+++ b/sm-shop/src/main/webapp/pages/admin/products/manufacturer.jsp
@@ -19,6 +19,14 @@
$(function(){
$('#order').numeric();
+
+ if($("#code").val()=="") {
+ $('.btn').addClass('disabled');
+ }
+
+ <c:forEach items="${manufacturer.descriptions}" var="description" varStatus="counter">
+ $("#name${counter.index}").friendurl({id : 'url${counter.index}'});
+ </c:forEach>
});
diff --git a/sm-shop/src/main/webapp/pages/admin/products/manufacturers.jsp b/sm-shop/src/main/webapp/pages/admin/products/manufacturers.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/products/manufacturers-gridHeader.jsp b/sm-shop/src/main/webapp/pages/admin/products/manufacturers-gridHeader.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/products/option.jsp b/sm-shop/src/main/webapp/pages/admin/products/option.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/products/options.jsp b/sm-shop/src/main/webapp/pages/admin/products/options.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/products/options-gridHeader.jsp b/sm-shop/src/main/webapp/pages/admin/products/options-gridHeader.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/products/optionsValues.jsp b/sm-shop/src/main/webapp/pages/admin/products/optionsValues.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/products/optionsValues-gridHeader.jsp b/sm-shop/src/main/webapp/pages/admin/products/optionsValues-gridHeader.jsp
old mode 100755
new mode 100644
index 6a0621c..a6be0d4
--- a/sm-shop/src/main/webapp/pages/admin/products/optionsValues-gridHeader.jsp
+++ b/sm-shop/src/main/webapp/pages/admin/products/optionsValues-gridHeader.jsp
@@ -4,9 +4,9 @@
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
<%@ page session="false" %>
-
+<!-- {title:"<s:message code="label.product.image" text="Image"/>", name:"image", type:"image", imageWidth:75, imageURLPrefix:"<c:url value='/static/'/>", canFilter:false}, -->
{title:"<s:message code="label.entity.id" text="Id"/>", name:"optionValueId", canFilter:false},
{title:"<s:message code="label.entity.name" text="Name"/>", name:"name", canFilter:false},
- {title:"<s:message code="label.product.image" text="Image"/>", name:"image", type:"image", imageWidth:75, imageURLPrefix:"<c:url value='/static/'/>", canFilter:false},
+ {title:"<s:message code="label.product.image" text="Image"/>", name:"image", type:"image", imageWidth:75, imageURLPrefix:"<c:url value='/'/>", canFilter:false},
{title:"<s:message code="label.entity.details" text="Details"/>", name: "buttonField", align: "center",canFilter:false,canSort:false, canReorder:false}
diff --git a/sm-shop/src/main/webapp/pages/admin/products/optionValue.jsp b/sm-shop/src/main/webapp/pages/admin/products/optionValue.jsp
old mode 100755
new mode 100644
index 4e2b55b..8ef526a
--- a/sm-shop/src/main/webapp/pages/admin/products/optionValue.jsp
+++ b/sm-shop/src/main/webapp/pages/admin/products/optionValue.jsp
@@ -110,7 +110,7 @@
<input class="input-file" id="image" name="image" type="file">
</c:when>
<c:otherwise>
- <img src="<sm:contentImage imageName="${optionValue.productOptionValueImage}" imageType="PROPERTY"/>" width="80">
+ <img src="<c:url value=""/><sm:contentImage imageName="${optionValue.productOptionValueImage}" imageType="PROPERTY"/>" width="80">
</c:otherwise>
</c:choose>
</div>
diff --git a/sm-shop/src/main/webapp/pages/admin/products/price.jsp b/sm-shop/src/main/webapp/pages/admin/products/price.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/products/prices.jsp b/sm-shop/src/main/webapp/pages/admin/products/prices.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/products/prices-gridHeader.jsp b/sm-shop/src/main/webapp/pages/admin/products/prices-gridHeader.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/products/product.jsp b/sm-shop/src/main/webapp/pages/admin/products/product.jsp
old mode 100755
new mode 100644
index 51a9148..7f814b1
--- a/sm-shop/src/main/webapp/pages/admin/products/product.jsp
+++ b/sm-shop/src/main/webapp/pages/admin/products/product.jsp
@@ -127,6 +127,13 @@ var priceFormatMessage = '<s:message code="message.price.cents" text="Wrong form
<span class="help-inline"><s:message code="label.generic.alphanumeric" text="Alphanumeric" /><form:errors path="product.sku" cssClass="error" /></span>
</div>
</div>
+
+ <div class="control-group">
+ <label><s:message code="label.product.refsku" text="External system identifier"/></label>
+ <div class="controls">
+ <form:input cssClass="input-large" id="refSku" path="product.refSku"/>
+ </div>
+ </div>
<form:hidden path="product.id" />
@@ -139,6 +146,14 @@ var priceFormatMessage = '<s:message code="message.price.cents" text="Wrong form
</div>
+ <div class="control-group">
+ <label><s:message code="label.product.preorder" text="Pre-order"/></label>
+ <div class="controls">
+ <form:checkbox path="product.preOrder" />
+ </div>
+ </div>
+
+
<div class="control-group">
<label><s:message code="label.product.availabledate" text="Date available"/></label>
<div class="controls">
diff --git a/sm-shop/src/main/webapp/pages/admin/products/product-categories-gridHeader.jsp b/sm-shop/src/main/webapp/pages/admin/products/product-categories-gridHeader.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/products/product-gridHeader.jsp b/sm-shop/src/main/webapp/pages/admin/products/product-gridHeader.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/products/productImages.jsp b/sm-shop/src/main/webapp/pages/admin/products/productImages.jsp
old mode 100755
new mode 100644
index 48b316c..25a2c57
--- a/sm-shop/src/main/webapp/pages/admin/products/productImages.jsp
+++ b/sm-shop/src/main/webapp/pages/admin/products/productImages.jsp
@@ -65,7 +65,9 @@
<c:set value="/admin/products/images/remove.html" var="removeUrl" scope="request" />
<c:set value="/admin/products/images/list.html?id=${product.id}" var="refreshUrl" scope="request" />
<c:set var="componentTitleKey" value="menu.catalogue-products-images" scope="request" />
+ <c:set value="/admin/products/images/defaultImage.html" var="defaultImageUrl" scope="request" />
<c:set var="canRemoveEntry" value="true" scope="request" />
+ <c:set var="canSetDefaultEntry" value="true" scope="request" />
<jsp:include page="/pages/admin/components/images-list.jsp"></jsp:include>
<!-- End listing grid include -->
diff --git a/sm-shop/src/main/webapp/pages/admin/products/productImagesUrl.jsp b/sm-shop/src/main/webapp/pages/admin/products/productImagesUrl.jsp
new file mode 100644
index 0000000..51b5fb5
--- /dev/null
+++ b/sm-shop/src/main/webapp/pages/admin/products/productImagesUrl.jsp
@@ -0,0 +1,98 @@
+<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
+<%@ taglib uri="http://www.springframework.org/tags" prefix="s" %>
+<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
+
+<%@ page session="false" %>
+<div class="tabbable">
+ <jsp:include page="/common/adminTabs.jsp" />
+ <div class="tab-content">
+ <div class="tab-pane active" id="catalogue-section">
+ <div class="sm-ui-component">
+
+
+ <c:if test="${product.id!=null && product.id>0}">
+ <c:set value="${product.id}" var="productId" scope="request"/>
+ <jsp:include page="/pages/admin/products/product-menu.jsp" />
+ </c:if>
+
+
+ <h3>
+ <s:message code="menu.catalogue-products-images" text="Images library" /> <s:message code="label.generic.url" text="URL" />
+ </h3>
+ <br/>
+ <strong><c:out value="${product.sku}"/></strong>
+ <br/>
+
+ <!-- Add content images -->
+ <c:url var="saveProductImage" value="/admin/products/images/url/save.html" />
+ <form:form method="POST" commandName="productImage" action="${saveProductImage}">
+ <form:errors path="*" cssClass="alert alert-error" element="div" />
+ <div id="store.success" class="alert alert-success" style="<c:choose><c:when test="${success!=null}">display:block;</c:when><c:otherwise>display:none;</c:otherwise></c:choose>">
+ <s:message code="message.success" text="Request successfull" />
+ </div>
+
+ <div class="control-group" style="margin-top:15px;">
+ <label><s:message code="label.generic.url" text="URL" /></label>
+ <div class="controls">
+ <form:input cssClass="highlight" id="productImageUrl" path="productImageUrl"/>
+ <input type="hidden" name="id" id="id" value="${product.id}"/>
+ </div>
+ </div>
+
+ <!-- Never a default image -->
+ <input type="hidden" name="defaultImage" id="defaultImage" value="false"/>
+ <%--
+ <div class="control-group">
+ <label><s:message code="label.generic.default" text="Default image"/></label>
+
+ <div class="controls">
+ <form:checkbox path="defaultImage" />
+ </div>
+ **
+ <s:message code="label.product.defaultImage.message" text="When selecting default, this image will be the image displayed in the product page"/>
+ </div>
+ --%>
+
+ <div class="control-group">
+ <label><s:message code="label.generic.imageType" text="Media type"/></label>
+
+ <div class="controls">
+ <form:select items="${mediaTypes}" path="imageType" />
+ </div>
+ </div>
+
+
+
+ <div class="form-actions">
+
+ <div class="pull-right">
+
+ <button type="submit" class="btn btn-success"><s:message code="button.label.add" text="Add"/></button>
+
+
+ </div>
+
+ </div>
+
+
+ </form:form>
+
+
+
+ <br />
+ <!-- Listing grid include -->
+ <c:set value="/admin/products/images/url/page.html?productId=${product.id}" var="pagingUrl" scope="request" />
+ <c:set value="/admin/products/images/remove.html" var="removeUrl" scope="request" />
+ <c:set value="/admin/products/images/url/list.html?id=${product.id}" var="refreshUrl" scope="request" />
+ <c:set var="componentTitleKey" value="menu.catalogue-products-images" scope="request" />
+ <c:set var="canRemoveEntry" value="true" scope="request" />
+ <c:set var="gridHeader" value="/pages/admin/products/product-images-url-gridHeader.jsp" scope="request"/>
+ <jsp:include page="/pages/admin/components/list.jsp"></jsp:include>
+ <!-- End listing grid include -->
+
+
+ </div>
+ </div>
+ </div>
+</div>
\ No newline at end of file
diff --git a/sm-shop/src/main/webapp/pages/admin/products/product-images-url-gridHeader.jsp b/sm-shop/src/main/webapp/pages/admin/products/product-images-url-gridHeader.jsp
new file mode 100644
index 0000000..7cafba1
--- /dev/null
+++ b/sm-shop/src/main/webapp/pages/admin/products/product-images-url-gridHeader.jsp
@@ -0,0 +1,12 @@
+<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
+<%@ taglib uri="http://www.springframework.org/tags" prefix="s" %>
+<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
+<%@ page session="false" %>
+
+
+ {title:"<s:message code="label.product.image" text="Image"/>", name:"image", type:"image", canEdit:false, imageWidth:75, canFilter:false},
+ {title:"<s:message code="label.generic.url" text="URL"/>", name:"url", canEdit:false, canFilter:false},
+ {title:"<s:message code="label.generic.default" text="Default"/>", name:"default", canEdit:false, type:"boolean", canFilter:false},
+ {title:"<s:message code="label.entity.id" text="ID"/>", name:"id", canEdit:false, canFilter:false}
+
\ No newline at end of file
diff --git a/sm-shop/src/main/webapp/pages/admin/products/product-menu.jsp b/sm-shop/src/main/webapp/pages/admin/products/product-menu.jsp
old mode 100755
new mode 100644
index c931b25..97838e0
--- a/sm-shop/src/main/webapp/pages/admin/products/product-menu.jsp
+++ b/sm-shop/src/main/webapp/pages/admin/products/product-menu.jsp
@@ -5,7 +5,7 @@
<%@ page session="false" %>
-
+ <!-- Additional menu -->
<div class="btn-group" style="z-index:400000;">
<button class="btn btn-info dropdown-toggle" data-toggle="dropdown"><s:message code="label.product.configure" text="Product definition"/> ... <span class="caret"></span></button>
<ul class="dropdown-menu">
@@ -13,6 +13,7 @@
<li><a href="<c:url value="/admin/products/prices.html" />?id=<c:out value="${productId}"/>"><s:message code="label.product.prices" text="Product prices" /></a></li>
<li><a href="<c:url value="/admin/products/attributes/list.html" />?id=<c:out value="${productId}"/>"><s:message code="label.product.attributes" text="Attributes" /></a></li>
<li><a href="<c:url value="/admin/products/images/list.html" />?id=<c:out value="${productId}"/>"><s:message code="menu.catalogue-products-images" text="Product images" /></a></li>
+ <li><a href="<c:url value="/admin/products/images/url/list.html" />?id=<c:out value="${productId}"/>"><s:message code="menu.catalogue-products-images-url" text="Product images url" /></a></li>
<li><a href="<c:url value="/admin/products/reviews.html" />?id=<c:out value="${productId}"/>"><s:message code="label.product.customer.reviews" text="Reviews" /></a></li>
<li><a href="<c:url value="/admin/catalogue/related/list.html" />?id=<c:out value="${productId}"/>"><s:message code="label.product.related.title" text="Related items" /></a></li>
<li><a href="<c:url value="/admin/products/product/keywords.html" />?id=<c:out value="${productId}"/>"><s:message code="label.product.searchkeywords" text="Search keywords" /></a></li>
diff --git a/sm-shop/src/main/webapp/pages/admin/products/products.jsp b/sm-shop/src/main/webapp/pages/admin/products/products.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/products/productsCategories.jsp b/sm-shop/src/main/webapp/pages/admin/products/productsCategories.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/products/related.jsp b/sm-shop/src/main/webapp/pages/admin/products/related.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/products/reviews.jsp b/sm-shop/src/main/webapp/pages/admin/products/reviews.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/products/reviews-gridHeader.jsp b/sm-shop/src/main/webapp/pages/admin/products/reviews-gridHeader.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/profile/group.jsp b/sm-shop/src/main/webapp/pages/admin/profile/group.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/profile/groups.jsp b/sm-shop/src/main/webapp/pages/admin/profile/groups.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/profile/groups-gridHeader.jsp b/sm-shop/src/main/webapp/pages/admin/profile/groups-gridHeader.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/profile/password.jsp b/sm-shop/src/main/webapp/pages/admin/profile/password.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/profile/permission.jsp b/sm-shop/src/main/webapp/pages/admin/profile/permission.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/profile/permissions.jsp b/sm-shop/src/main/webapp/pages/admin/profile/permissions.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/profile/permissions-gridHeader.jsp b/sm-shop/src/main/webapp/pages/admin/profile/permissions-gridHeader.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/profile/profile.jsp b/sm-shop/src/main/webapp/pages/admin/profile/profile.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/profile/users.jsp b/sm-shop/src/main/webapp/pages/admin/profile/users.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/profile/users-gridHeader.jsp b/sm-shop/src/main/webapp/pages/admin/profile/users-gridHeader.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/shipping/canadapost.jsp b/sm-shop/src/main/webapp/pages/admin/shipping/canadapost.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/shipping/customShippingDetails.jsp b/sm-shop/src/main/webapp/pages/admin/shipping/customShippingDetails.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/shipping/packaging.jsp b/sm-shop/src/main/webapp/pages/admin/shipping/packaging.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/shipping/priceByDistance.jsp b/sm-shop/src/main/webapp/pages/admin/shipping/priceByDistance.jsp
new file mode 100644
index 0000000..3f60e9a
--- /dev/null
+++ b/sm-shop/src/main/webapp/pages/admin/shipping/priceByDistance.jsp
@@ -0,0 +1,17 @@
+<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
+<%@ taglib uri="http://www.springframework.org/tags" prefix="s" %>
+<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
+<%@ page session="false" %>
+
+
+
+
+ <div class="control-group">
+ <label class="required"><s:message code="module.shipping.customQuotesRules.title" text="Create your own shipping rules"/></label>
+ <div class="controls">
+ <p>
+ <s:message code="module.shipping.customQuotesRules.text" text="Use the decision table xls file"/>
+ </p>
+ </div>
+ </div>
\ No newline at end of file
diff --git a/sm-shop/src/main/webapp/pages/admin/shipping/shippingConfig.jsp b/sm-shop/src/main/webapp/pages/admin/shipping/shippingConfig.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/shipping/shipping-countries-gridHeader.jsp b/sm-shop/src/main/webapp/pages/admin/shipping/shipping-countries-gridHeader.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/shipping/shippingMethod.jsp b/sm-shop/src/main/webapp/pages/admin/shipping/shippingMethod.jsp
old mode 100755
new mode 100644
index b61077f..484140a
--- a/sm-shop/src/main/webapp/pages/admin/shipping/shippingMethod.jsp
+++ b/sm-shop/src/main/webapp/pages/admin/shipping/shippingMethod.jsp
@@ -24,7 +24,7 @@
<div class="sm-ui-component">
- <h3><s:message code="label.shipping.title" text="Shipping configuration" /> - <s:message code="module.shipping.${configuration.moduleCode}" text="No label found - ${configuration.moduleCode}"/></h3>
+ <h3><s:message code="label.shipping.title" text="Shipping configuration" /> - <s:message code="module.shipping.${configuration.moduleCode}" arguments="${requestScope.ADMIN_STORE.storename}" text="No label found - ${configuration.moduleCode}"/></h3>
<br/>
diff --git a/sm-shop/src/main/webapp/pages/admin/shipping/shippingMethods.jsp b/sm-shop/src/main/webapp/pages/admin/shipping/shippingMethods.jsp
old mode 100755
new mode 100644
index b112f20..ec4ba43
--- a/sm-shop/src/main/webapp/pages/admin/shipping/shippingMethods.jsp
+++ b/sm-shop/src/main/webapp/pages/admin/shipping/shippingMethods.jsp
@@ -23,15 +23,10 @@
<div class="tab-pane active" id="shipping-methods">
- <div class="sm-ui-component">
- <h3><s:message code="label.shipping.title" text="Shipping configuration" /></h3>
- <br/>
-
-
-
-
-
-
+ <div class="sm-ui-component">
+ <h3><s:message code="label.shipping.title" text="Shipping configuration" /></h3>
+ <br/>
+
<c:url var="saveShippingMethods" value="/admin/shipping/saveShippingMethods.html"/>
<form:form method="POST" commandName="configuration" action="${saveShippingMethods}">
@@ -62,7 +57,7 @@
<a href="<c:url value="/admin/shipping/${module.code}.html"/>"><s:message code="module.shipping.${module.code}" text="No label found - ${module.code}"/></a>
</c:when>
<c:otherwise>
- <a href="<c:url value="/admin/shipping/shippingMethod.html?code="/><c:out value="${module.code}"/>"><s:message code="module.shipping.${module.code}" text="No label found - ${module.code}"/></a>
+ <a href="<c:url value="/admin/shipping/shippingMethod.html?code="/><c:out value="${module.code}"/>"><s:message code="module.shipping.${module.code}" arguments="${requestScope.ADMIN_STORE.storename}" text="No label found - ${module.code}"/></a> (<c:out value="${module.code}"/>)
</c:otherwise>
</c:choose>
</label>
diff --git a/sm-shop/src/main/webapp/pages/admin/shipping/shippingOptions.jsp b/sm-shop/src/main/webapp/pages/admin/shipping/shippingOptions.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/shipping/shippingOrigin.jsp b/sm-shop/src/main/webapp/pages/admin/shipping/shippingOrigin.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/shipping/storePickUp.jsp b/sm-shop/src/main/webapp/pages/admin/shipping/storePickUp.jsp
new file mode 100644
index 0000000..5398d7e
--- /dev/null
+++ b/sm-shop/src/main/webapp/pages/admin/shipping/storePickUp.jsp
@@ -0,0 +1,70 @@
+<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
+<%@ taglib uri="http://www.springframework.org/tags" prefix="s" %>
+<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
+<%@ page session="false" %>
+
+
+<script src="<c:url value="/resources/js/ckeditor/ckeditor.js" />"></script>
+
+ <div class="control-group">
+ <label class="required"><strong><s:message code="module.shipping.storePickUp.address" text="Pick up address that will be displayed to the client"/></strong></label>
+ <div class="controls">
+ <span class="help-inline">
+ <c:if test="${address!=null}">
+ <span id="identifiererrors" class="error"><s:message code="module.shipping.storePickUp.address.message" text="Pick up address is a required field"/></span>
+ </c:if>
+ </span>
+ <br/>
+
+ <textarea cols="30" id="integrationKeys['note']" name="integrationKeys['note']">
+ <c:out value="${configuration.integrationKeys['note']}"/>
+ </textarea>
+
+ <script type="text/javascript">
+ //<![CDATA[
+
+ CKEDITOR.replace("integrationKeys['note']",
+ {
+ skin : 'office2003',
+ toolbar :
+ [
+ ['Source','-','Save','NewPage','Preview'],
+ ['Cut','Copy','Paste','PasteText','-','Print'],
+ ['Undo','Redo','-','Find','-','SelectAll','RemoveFormat'], '/',
+ ['Bold','Italic','Underline','Strike','-','Subscript','Superscript'],
+ ['NumberedList','BulletedList','-','Outdent','Indent','Blockquote'],
+ ['JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock'],
+ ['Link','Unlink','Anchor'],
+ ['Image','Flash','Table','HorizontalRule','SpecialChar','PageBreak'], '/',
+ ['Styles','Format','Font','FontSize'], ['TextColor','BGColor'],
+ ['Maximize', 'ShowBlocks']
+ ],
+
+ filebrowserWindowWidth : '720',
+ filebrowserWindowHeight : '740',
+ filebrowserImageBrowseUrl : '<c:url value="/admin/content/fileBrowser.html"/>'
+
+
+ });
+
+ //]]>
+ </script>
+
+
+ </div>
+
+ </div>
+
+ <div class="control-group">
+ <label class="required"><s:message code="module.shipping.storePickUp.price" text="Price for store pick up in numeric format (usually 0)"/></label>
+ <div class="controls">
+ <form:input cssClass="input-large highlight" path="integrationKeys['price']" />
+ </div>
+ <span class="help-inline">
+ <c:if test="${price!=null}">
+ <span id="identifiererrors" class="error"><s:message code="module.shipping.storePickUp.price.message" text="Price for store pick up is required (in numeric format)"/></span>
+ </c:if>
+ </span>
+ </div>
+
\ No newline at end of file
diff --git a/sm-shop/src/main/webapp/pages/admin/shipping/ups.jsp b/sm-shop/src/main/webapp/pages/admin/shipping/ups.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/shipping/usps.jsp b/sm-shop/src/main/webapp/pages/admin/shipping/usps.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/shipping/weightBased.jsp b/sm-shop/src/main/webapp/pages/admin/shipping/weightBased.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/shipping/weightBasedDetails-gridHeader.jsp b/sm-shop/src/main/webapp/pages/admin/shipping/weightBasedDetails-gridHeader.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/shipping/weightBased-gridHeader.jsp b/sm-shop/src/main/webapp/pages/admin/shipping/weightBased-gridHeader.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/tax/taxClass.jsp b/sm-shop/src/main/webapp/pages/admin/tax/taxClass.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/tax/taxClassDetails.jsp b/sm-shop/src/main/webapp/pages/admin/tax/taxClassDetails.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/tax/taxClass-gridHeader.jsp b/sm-shop/src/main/webapp/pages/admin/tax/taxClass-gridHeader.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/tax/taxConfiguration.jsp b/sm-shop/src/main/webapp/pages/admin/tax/taxConfiguration.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/tax/taxRateDetails.jsp b/sm-shop/src/main/webapp/pages/admin/tax/taxRateDetails.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/tax/taxRates.jsp b/sm-shop/src/main/webapp/pages/admin/tax/taxRates.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/admin/tax/taxRates-gridHeader.jsp b/sm-shop/src/main/webapp/pages/admin/tax/taxRates-gridHeader.jsp
old mode 100755
new mode 100644
sm-shop/src/main/webapp/pages/shop/common/cart/cart.jsp 366(+224 -142)
diff --git a/sm-shop/src/main/webapp/pages/shop/common/cart/cart.jsp b/sm-shop/src/main/webapp/pages/shop/common/cart/cart.jsp
old mode 100755
new mode 100644
index 0cc576b..50df24f
--- a/sm-shop/src/main/webapp/pages/shop/common/cart/cart.jsp
+++ b/sm-shop/src/main/webapp/pages/shop/common/cart/cart.jsp
@@ -1,142 +1,224 @@
-<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
-<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
-<%@ taglib uri="http://www.springframework.org/tags" prefix="s"%>
-<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
-<%@ taglib uri="/WEB-INF/shopizer-tags.tld" prefix="sm"%>
-
-<script src="<c:url value="/resources/js/jquery.alphanumeric.pack.js" />"></script>
-
-
-
-<c:url value="/shop/cart/removeShoppingCartItem.html"
- var="removeShoppingCartItemUrl" />
-
-
-
-<div id="main-content" class="row-fluid show-grid container">
-
-<div class="span12 common-row">
-
-<h1 class="cart-title"><s:message code="label.cart.revieworder" text="Review your order" /></h1>
-<div id="store.error" class="alert alert-error" style="display:none;"><s:message code="message.error.shoppingcart.update" text="An error occurred while updating the shopping cart"/></div>
-<br/>
-<table id="mainCartTable" class="table table-bordered table-striped">
-
- <c:if test="${not empty cart}">
- <c:choose>
- <c:when test="${not empty cart.shoppingCartItems}">
-
- <c:forEach items="${cart.shoppingCartItems}" var="shoppingCartItem"
- varStatus="itemStatus">
- <c:if test="${itemStatus.index eq 0}">
- <thead>
- <tr>
- <th colspan="2" width="55%"><s:message code="label.generic.item.title" text="Item"/></th>
- <th colspan="2" width="15%"><s:message code="label.quantity" text="Quantity"/></th>
- <th width="15%"><s:message code="label.generic.price" text="Price"/></th>
- <th width="15%"><s:message code="label.order.total" text="Total"/></th>
- </tr>
- </thead>
- <tbody>
- </c:if>
- <form:form action="${updateShoppingCartItemUrl}"
- id="shoppingCartLineitem_${shoppingCartItem.id}">
- <tr>
- <td width="10%">
- <c:if test="${shoppingCartItem.image!=null}">
- <img width="60" src="<c:url value="${shoppingCartItem.image}"/>">
- </c:if>
- </td>
-
- <td style="border-left:none;">
- <strong>${shoppingCartItem.name}</strong>
- <c:if test="${fn:length(shoppingCartItem.shoppingCartAttributes)>0}">
- <br/>
- <ul>
- <c:forEach items="${shoppingCartItem.shoppingCartAttributes}" var="option">
- <li>${option.optionName} - ${option.optionValue}</li>
- </c:forEach>
- </ul>
- </c:if>
-
- </td>
- <td>
- <input type="text" class="input-small quantity form-control" placeholder="<s:message code="label.quantity" text="Quantity"/>"
- value="${shoppingCartItem.quantity}" name="quantity" id="${shoppingCartItem.id}" <c:if test="${shoppingCartItem.productVirtual==true}">readonly</c:if>>
- </td>
- <td style="border-left:none;"><button class="close"
- onclick="javascript:updateLineItem('${shoppingCartItem.id}','${removeShoppingCartItemUrl}');">×</button>
- </td>
-
- <td><strong>${shoppingCartItem.price}</strong></td>
- <td><strong>${shoppingCartItem.subTotal}</strong></td>
-
-
- <input type="hidden" name="lineItemId" id="lineItemId"
- value="${shoppingCartItem.id}"/>
-
-
- </tr>
- </form:form>
-
-
- </c:forEach>
- <c:forEach items="${cart.totals}" var="total">
- <tr class="subt">
- <td colspan="2"> </td>
- <td colspan="3"><strong><s:message code="${total.code}" text="label [${total.code}] not found"/></strong></td>
- <td><strong><sm:monetary value="${total.value}" /></strong></td>
- </tr>
- </c:forEach>
-
- </c:when>
- <c:otherwise>
- <tr><td><s:message code="cart.empty" text="Your Shopping cart is empty" /></td></tr>
- </c:otherwise>
- </c:choose>
- </c:if>
-
-
- </tbody>
-</table>
-<c:if test="${not empty cart}">
- <c:if test="${not empty cart.shoppingCartItems}">
- <div class="pull-right">
- <div class="form-actions">
- <button type="button" class="btn" onClick="javascript:updateCart('#mainCartTable');"><s:message code="label.order.recalculate" text="Racalculate"/></button>
- <button id="checkoutButton" type="submit" class="btn btn-success"><s:message code="label.cart.placeorder" text="Place your order" /></button>
- </div>
- </div>
- </c:if>
-</c:if>
-</div>
-</div>
-<c:if test="${empty cart}">
-<!-- load cart with cookie -->
-<script>
- $(document).ready(function(){
- var cartCode=getCartCode();
- if(cartCode!=null) {
- console.log('cart code ' + cartCode);
- location.href='<c:url value="/shop/cart/shoppingCartByCode.html" />?shoppingCartCode=' + cartCode;
- }
-
- });
-</script>
-</c:if>
-
-<script>
- $(document).ready(function(){
- $('.quantity').numeric();
- $("input[type='text']").keypress(function(e){
- if (e.which == 13){
- e.preventDefault();
- }
- });
- $('#checkoutButton').click(function(e) {
- location.href='<c:url value="/shop/order/checkout.html"/>';
- });
- });
-</script>
-
-
+<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
+<%@ taglib uri="http://www.springframework.org/tags" prefix="s"%>
+<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
+<%@ taglib uri="/WEB-INF/shopizer-tags.tld" prefix="sm"%>
+
+<script src="<c:url value="/resources/js/jquery.alphanumeric.pack.js" />"></script>
+
+
+
+<c:url value="/shop/cart/removeShoppingCartItem.html"
+ var="removeShoppingCartItemUrl" />
+
+
+
+<div id="main-content" class="row-fluid show-grid container">
+
+<div class="span12 common-row">
+
+<h1 class="cart-title"><s:message code="label.cart.revieworder" text="Review your order" /></h1>
+<div id="store.error" class="alert alert-error alert-danger" style="display:none;"><s:message code="message.error.shoppingcart.update" text="An error occurred while updating the shopping cart"/></div>
+
+
+
+ <!-- Unavailables -->
+ <c:if test="${fn:length(cart.unavailables) gt 0}">
+
+ <div id="store.error" class="alert alert-error" style="display:block;"><s:message code="message.error.shoppingcart.unavailables" text="Some of the item in your shopping cart are as of today unavailable for purchase. Those items will be removed from your shopping cart when the order form is displayed. If you are interested in purchasing this item, please send use a message with the item number, we will get back to you as soon as possible with an update on the availability of the item."/></div>
+ <table>
+ <c:forEach items="${cart.unavailables}" var="unavailable" varStatus="itemStatus">
+
+ <c:if test="${itemStatus.index eq 0}">
+ <thead>
+ <tr>
+ <th colspan="2" width="65%"> </th>
+ <th colspan="1" width="35%"> </th>
+ </tr>
+ </thead>
+ <tbody>
+ </c:if>
+
+
+ <tr>
+ <td width="20%">
+ <c:if test="${unavailable.image!=null}">
+ <img width="60" src="<c:url value="${unavailable.image}"/>">
+ </c:if>
+ </td>
+
+ <td style="border-left:none;">
+ <strong>${unavailable.name}</strong>
+ <c:if test="${fn:length(unavailable.shoppingCartAttributes)>0}">
+ <br/>
+ <ul>
+ <c:forEach items="${unavailable.shoppingCartAttributes}" var="option">
+ <li>${option.optionName} - ${option.optionValue}</li>
+ </c:forEach>
+ </ul>
+ </c:if>
+ <br/><s:message code="label.quantity" text="Quantity"/>: <c:out value="${unavailable.quantity}"/>
+ <br/><s:message code="label.generic.price" text="Price"/>: <c:out value="${unavailable.price}"/>
+
+
+ </td>
+ <td>
+
+ </td>
+
+
+
+
+ </tr>
+ </c:forEach>
+ </table>
+ <br/>
+ </c:if>
+
+<br/>
+
+
+
+
+<!-- ******* EX SHOPPING CART **********-->
+
+<table id="mainCartTable" class="table table-hover table-condensed">
+
+ <c:if test="${not empty cart}">
+ <c:choose>
+ <c:when test="${not empty cart.shoppingCartItems}">
+ <c:forEach items="${cart.shoppingCartItems}" var="shoppingCartItem"
+ varStatus="itemStatus">
+ <c:if test="${itemStatus.index eq 0}">
+
+ <thead>
+ <tr>
+ <th><s:message code="label.generic.item.title" text="Item"/></th>
+ <th><s:message code="label.quantity" text="Quantity"/></th>
+ <th><s:message code="label.generic.price" text="Price"/></th>
+ <th><s:message code="label.order.total" text="Total"/></th>
+ <th></th>
+
+
+ </tr>
+ </thead>
+ <tbody>
+ </c:if>
+ <form:form action="${updateShoppingCartItemUrl}"
+ id="shoppingCartLineitem_${shoppingCartItem.id}">
+ <tr>
+ <td data-th="<s:message code="label.generic.item.title" text="Item"/>">
+ <div class="row-cart">
+
+ <div class="col-sm-4 hidden-xs">
+ <c:if test="${shoppingCartItem.image!=null}">
+ <img width="60" src="<c:url value="${shoppingCartItem.image}"/>" class="">
+ </c:if>
+ </div>
+ <div class="col-sm-8">
+ <span class="nomargin"><strong>${shoppingCartItem.name}</strong></span>
+
+ <c:if test="${fn:length(shoppingCartItem.shoppingCartAttributes)>0}">
+ <p>
+ <ul>
+ <c:forEach items="${shoppingCartItem.shoppingCartAttributes}" var="option">
+ <li>${option.optionName} - ${option.optionValue}</li>
+ </c:forEach>
+ </ul>
+ </p>
+ </c:if>
+ </div>
+ </div>
+ </td>
+ <td width="10%" data-th="<s:message code="label.quantity" text="Quantity"/>">
+
+<input type="number" class="input-small quantity form-control text-center" value="${shoppingCartItem.quantity}" name="quantity" id="${shoppingCartItem.id}" <c:if test="${shoppingCartItem.productVirtual==true}">readonly</c:if>>
+
+ </td>
+
+ <td data-th="<s:message code="label.generic.price" text="Price"/>"><strong>${shoppingCartItem.price}</strong></td>
+ <td data-th="<s:message code="label.order.total" text="Total"/>" class=""><strong>${shoppingCartItem.subTotal}</strong></td>
+
+ <td width="10%" class="actions" data-th="">
+<button type="button" class="btn btn-danger btn-sm" onclick="javascript:updateLineItem('${shoppingCartItem.id}','${removeShoppingCartItemUrl}'); return false;" style="margin-top:0px !important;"><i class="fa fa-trash-o"></i> <s:message code="label.generic.remove" text="Remove"/></button>
+<input type="hidden" name="lineItemId" id="lineItemId" value="${shoppingCartItem.id}"/>
+
+ </td>
+
+ </tr>
+ </form:form>
+
+
+ </c:forEach>
+ <c:forEach items="${cart.totals}" var="total">
+ <tr class="subt" class="hidden-xs">
+ <td colspan="2"> </td>
+ <td><strong><s:message code="${total.code}" text="label [${total.code}] not found"/></strong></td>
+ <td colspan="2"><strong><sm:monetary value="${total.value}" /></strong></td>
+ </tr>
+ </c:forEach>
+
+
+
+ </tbody>
+
+ <tfoot>
+
+ <tr>
+ <td colspan="3">
+
+<a href="#" onClick="javascript:updateCart('#mainCartTable');" class="btn btn-regular"><s:message code="label.order.recalculate" text="Racalculate"/></a>
+
+<a href="<c:url value="/shop"/>" class="btn btn-warning"><i class="fa fa-angle-left"></i> <s:message code="button.label.continue" text="Continue shopping" /></a>
+ </td>
+ <td colspan="2">
+ <button id="checkoutButton" type="submit" class="btn btn-success btn-block"><s:message code="label.cart.placeorder" text="Place your order" /> <i class="fa fa-angle-right"></i></button>
+ </td>
+ </tr>
+ </tfoot>
+
+ </c:when>
+ <c:otherwise>
+ <tr><td><s:message code="cart.empty" text="Your Shopping cart is empty" /></td></tr>
+ </c:otherwise>
+ </c:choose>
+ </c:if>
+
+
+</table>
+
+
+<!-- ******* EX SHOPPING CART *********** -->
+
+
+
+
+</div>
+</div>
+<c:if test="${empty cart}">
+<!-- load cart with cookie -->
+<script>
+ $(document).ready(function(){
+ var cartCode=getCartCode();
+ if(cartCode!=null) {
+ console.log('cart code ' + cartCode);
+ location.href='<c:url value="/shop/cart/shoppingCartByCode.html" />?shoppingCartCode=' + cartCode;
+ }
+
+ });
+</script>
+</c:if>
+
+<script>
+ $(document).ready(function(){
+ $('.quantity').numeric();
+ $("input[type='text']").keypress(function(e){
+ if (e.which == 13){
+ e.preventDefault();
+ }
+ });
+ $('#checkoutButton').click(function(e) {
+ location.href='<c:url value="/shop/order/checkout.html"/>';
+ });
+ });
+</script>
\ No newline at end of file
diff --git a/sm-shop/src/main/webapp/pages/shop/common/cart/minicart.jsp b/sm-shop/src/main/webapp/pages/shop/common/cart/minicart.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/shop/common/cart/minicartinfo.jsp b/sm-shop/src/main/webapp/pages/shop/common/cart/minicartinfo.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/shop/common/catalog/addToCartProduct.jsp b/sm-shop/src/main/webapp/pages/shop/common/catalog/addToCartProduct.jsp
old mode 100755
new mode 100644
index b46577a..8fefea3
--- a/sm-shop/src/main/webapp/pages/shop/common/catalog/addToCartProduct.jsp
+++ b/sm-shop/src/main/webapp/pages/shop/common/catalog/addToCartProduct.jsp
@@ -70,12 +70,19 @@ $(function(){
</c:forEach>
</c:if>
<br/>
+ <c:if test="${requestScope.CONFIGS['allowPurchaseItems'] == true}">
+ <c:if test="${product.quantity>0}">
<div class="form-inline">
<c:if test="${product.quantityOrderMaximum==-1 || product.quantityOrderMaximum>1 && not product.productVirtual}" >
- <input id="qty-productId-<c:out value="${product.id}" />" class="input-mini form-control form-control-sm" placeholder="1" type="text">
+ <div class="form-group product-qty">
+ <input id="qty-productId-<c:out value="${product.id}" />" class="input-mini form-control form-control-sm" placeholder="1" type="text">
+ </div>
</c:if>
- <button class="btn addToCart addToCartButton" type="button" productId="<c:out value="${product.id}" />"><s:message code="button.label.addToCart" text="Add to cart"/></button>
+ <button class="btn addToCart addToCartButton btn-buy" type="button" productId="<c:out value="${product.id}" />"><s:message code="button.label.addToCart" text="Add to cart"/></button>
</div>
+ </c:if>
+ </c:if>
+ <!-- TODO quantity == 0 contact us for details on the product -->
</form>
\ No newline at end of file
diff --git a/sm-shop/src/main/webapp/pages/shop/common/catalog/rating.jsp b/sm-shop/src/main/webapp/pages/shop/common/catalog/rating.jsp
old mode 100755
new mode 100644
index 84e40b0..3163ff1
--- a/sm-shop/src/main/webapp/pages/shop/common/catalog/rating.jsp
+++ b/sm-shop/src/main/webapp/pages/shop/common/catalog/rating.jsp
@@ -17,7 +17,7 @@ response.setDateHeader ("Expires", -1);
<div id="review" class="review">
<div>
- <div id="productRating" style="width: 100px;">
+ <div class="stars" id="productRating" style="width: 100px;">
</div>
<script>
$(function() {
diff --git a/sm-shop/src/main/webapp/pages/shop/common/catalog/review.jsp b/sm-shop/src/main/webapp/pages/shop/common/catalog/review.jsp
old mode 100755
new mode 100644
index ebf94a9..377ac16
--- a/sm-shop/src/main/webapp/pages/shop/common/catalog/review.jsp
+++ b/sm-shop/src/main/webapp/pages/shop/common/catalog/review.jsp
@@ -16,15 +16,15 @@ response.setDateHeader ("Expires", -1);
<%@page pageEncoding="UTF-8"%>
<script src="<c:url value="/resources/js/jquery.raty.min.js" />"></script>
- <div id="review" class="row-fluid">
+ <div id="review" class="row-fluid container">
<p class="lead"><s:message code="label.product.rate"/></p>
<div id="store.success" class="alert alert-success" style="<c:choose><c:when test="${success!=null}">display:block;</c:when><c:otherwise>display:none;</c:otherwise></c:choose>">
<s:message code="message.productreview.created" text="You have successfully created a product review" />
</div>
- <div class="span12 no_margin">
- <div class="span6">
+ <div class="span12 no_margin main col-md-12">
+ <div class="span6 col-md-8">
<table class="table" style="margin-bottom: 35px">
<tbody>
<tr>
@@ -36,7 +36,7 @@ response.setDateHeader ("Expires", -1);
<td>
<table>
<tr>
- <td style="border-top: none;"><c:out value="${product.description.name}" /></td>
+ <td style="border-top: none;"><a class="details" href="<c:url value="/shop/product/" /><c:out value="${product.description.friendlyUrl}"/>.html<sm:breadcrumbParam productId="${product.id}"/>"><c:out value="${product.description.name}" /></a></td>
</tr>
<tr>
<td style="border-top: none;">
@@ -63,7 +63,7 @@ response.setDateHeader ("Expires", -1);
<p>
<s:message code="label.product.reviews.evaluated" text="You have evaluated this product"/>
<br/>
- <div id="customerRating" style="width: 100px;"></div>
+ <div class="stars" id="customerRating" style="width: 100px;"></div>
<br/>
<blockquote>
<p><c:out value="${customerReview.description}" escapeXml="false" /></p>
@@ -88,35 +88,47 @@ response.setDateHeader ("Expires", -1);
<c:url var="submitReview" value="/shop/customer/review/submit.html"/>
<form:form method="POST" commandName="review" action="${submitReview}">
<form:errors path="*" cssClass="alert alert-error" element="div" />
+ <fieldset>
<form:hidden id="rating" path="rating"/>
<form:hidden path="productId"/>
- <label><s:message code="label.generic.youropinion" text="Your opinion" /></label>
- <form:textarea name="" rows="6" class="span6" path="description"/>
- <label> </label>
- <span class="help-block"><s:message code="label.product.clickrate" text="Product rating (click on the stars to activate rating)" /></span>
- <div id="rateMe" style="width: 100px;"></div>
- <script>
- $(function() {
- $('#rateMe').raty({
- readOnly: false,
- half: true,
- path : '<c:url value="/resources/img/stars/"/>',
- score: 5,
- click: function(score, evt) {
- $('#rating').val(score);
- }
- });
- });
- </script>
- <br/>
- <button type="submit" class="btn"><s:message code="button.label.submit2" text="Submit"/></button>
+
+ <div class="control-group form-group">
+ <label><s:message code="label.generic.youropinion" text="Your opinion" /></label>
+ <div class="controls">
+ <form:textarea name="" rows="6" class="span8 input form-control form-control-md" path="description"/>
+ <label> </label>
+ <span class="help-block"><s:message code="label.product.clickrate" text="Product rating (click on the stars to activate rating)" /></span>
+ <div class="stars" id="rateMe" style="width: 100px;"></div>
+ <script>
+ $(function() {
+ $('#rateMe').raty({
+ readOnly: false,
+ half: true,
+ path : '<c:url value="/resources/img/stars/"/>',
+ score: 5,
+ click: function(score, evt) {
+ $('#rating').val(score);
+ }
+ });
+ });
+ </script>
+ </div>
+ </div>
+ </fieldset>
+ <button type="submit" class="btn">
+ <s:message code="button.label.submit2" text="Submit"/>
+ </button>
</form:form>
</c:otherwise>
</c:choose>
</sec:authorize>
</div>
- <div class="span6"> </div>
+ <div class="span6 col-md-4">
+ <c:if test="${requestScope.CONTENT['customerCare']!=null}">
+ <c:out value="${requestScope.CONTENT['customerCare'].description}" escapeXml="false"/>
+ </c:if>
+ </div>
</div>
</div>
<sec:authorize access="!hasRole('AUTH_CUSTOMER') and !fullyAuthenticated">
diff --git a/sm-shop/src/main/webapp/pages/shop/common/catalog/reviews.jsp b/sm-shop/src/main/webapp/pages/shop/common/catalog/reviews.jsp
old mode 100755
new mode 100644
index c92155b..8ff081d
--- a/sm-shop/src/main/webapp/pages/shop/common/catalog/reviews.jsp
+++ b/sm-shop/src/main/webapp/pages/shop/common/catalog/reviews.jsp
@@ -36,7 +36,7 @@ response.setDateHeader ("Expires", -1);
<c:if test="${reviews!=null}">
<c:forEach items="${reviews}" var="review" varStatus="status">
<p>
- <div id="productRating<c:out value="${status.count}"/>" style="width: 100px;">
+ <div class="stars" id="productRating<c:out value="${status.count}"/>" style="width: 100px;">
</div>
<br/>
<blockquote>
sm-shop/src/main/webapp/pages/shop/common/checkout/checkout.jsp 2646(+1470 -1176)
diff --git a/sm-shop/src/main/webapp/pages/shop/common/checkout/checkout.jsp b/sm-shop/src/main/webapp/pages/shop/common/checkout/checkout.jsp
old mode 100755
new mode 100644
index 1fb6277..aaaf1d8
--- a/sm-shop/src/main/webapp/pages/shop/common/checkout/checkout.jsp
+++ b/sm-shop/src/main/webapp/pages/shop/common/checkout/checkout.jsp
@@ -1,1177 +1,1471 @@
-<%
-response.setCharacterEncoding("UTF-8");
-response.setHeader("Cache-Control","no-cache");
-response.setHeader("Pragma","no-cache");
-response.setDateHeader ("Expires", -1);
-%>
-
-<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
-<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
-<%@ taglib uri="http://www.springframework.org/tags" prefix="s" %>
-<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
-<%@ taglib uri="http://www.springframework.org/security/tags" prefix="sec" %>
-<%@ taglib uri="/WEB-INF/shopizer-tags.tld" prefix="sm" %>
-
-<%@page contentType="text/html"%>
-<%@page pageEncoding="UTF-8"%>
-
-<script src="<c:url value="/resources/js/jquery.maskedinput.min.js" />"></script>
-
-<!-- subtotals template -->
-<script type="text/html" id="subTotalsTemplate">
- {{#subTotals}}
- <tr class="subt">
- <td colspan="2">{{title}}</td>
- <td><strong>{{total}}</strong></td>
- </tr>
- {{/subTotals}}
-</script>
-
-<!-- total template -->
-<script type="text/html" id="totalTemplate">
- <span class="total-box-grand-total">
- <font class="total-box-label">
- <s:message code="order.total.total" text="Total"/>
- <font class="total-box-price">{{grandTotal}}</font>
- </font>
- </span>
-</script>
-
-<!-- shipping template -->
-<script type="text/html" id="shippingTemplate">
-
- <label class="control-label">
- <s:message code="label.shipping.options" text="Shipping options"/>
- {{#showHandling}}
- (<s:message code="label.shipping.handlingfees" text="Handling fees" /> {{handlingText}})
- {{/showHandling}}
- </label>
- <div id="shippingOptions" class="controls">
- {{#shippingOptions}}
- <label class="radio">
- <input type="radio" name="selectedShippingOption.optionId" class="shippingOption" id="{{optionId}}" value="{{optionId}}" {{#checked}} checked="checked"{{/checked}}>
- {{optionName}} - {{optionPriceText}}
- </label>
- {{/shippingOptions}}
- </div>
-
-</script>
-
-
-<script>
-
-<!-- checkout form id -->
-var checkoutFormId = '#checkoutForm';
-var formErrorMessageId = '#formErrorMessage';
-
-
-function isFormValid() {
- $(formErrorMessageId).hide();//reset error message
- var $inputs = $(checkoutFormId).find(':input');
- var valid = true;
- var firstErrorMessage = null;
- $inputs.each(function() {
- if($(this).hasClass('required')) {
- var fieldValid = isCheckoutFieldValid($(this));
- log($(this).attr('id') + ' Is valid ' + fieldValid);
- if(!fieldValid) {
- if(firstErrorMessage==null) {
- log('Title ' + $(this).attr('title'));
- if($(this).attr('title')) {
- firstErrorMessage = $(this).attr('title');
- }
- }
- valid = false;
- }
- }
- if($(this).hasClass('email')) {
- var emailValid = validateEmail($(this).val());
- //console.log('Email is valid ? ' + emailValid);
- if(!emailValid) {
- if(firstErrorMessage==null) {
- firstErrorMessage = '<s:message code="messages.invalid.email" text="Invalid email address"/>';
- valid = false;
- }
- }
- }
- });
-
- //display - hide shipping
- if ($('#shipToBillingAdress').is(':checked')) {
- $('#deliveryBox').hide();
- } else {
- $('#deliveryBox').show();
- }
-
- //console.log('Form is valid ? ' + valid);
- if(valid==false) {//disable submit button
- if(firstErrorMessage!=null) {
- $(formErrorMessageId).addClass('alert-error alert-danger');
- $(formErrorMessageId).removeClass('alert-success');
- $(formErrorMessageId).html('<!--<img src="<c:url value="/resources/img/icon_error.png"/>" width="40"/> --><strong><font color="red">' + firstErrorMessage + '</font></strong>');
- $(formErrorMessageId).show();
- }
- $('#submitOrder').addClass('btn-disabled');
- $('#submitOrder').prop('disabled', true);
- } else {
- $(formErrorMessageId).removeClass('alert-error alert-danger');
- $(formErrorMessageId).addClass('alert-success');
- $(formErrorMessageId).html('<!--<img src="<c:url value="/resources/img/icon_success.png"/>" width="40"/> --><strong><s:message code="message.order.canprocess" text="The order can be completed"/></strong>');
- $(formErrorMessageId).show();
- $('#submitOrder').removeClass('btn-disabled');
- $('#submitOrder').prop('disabled', false);
- }
-}
-
-function setPaymentModule(module) {
- //console.log('Module - ' + module);
- $('#paymentModule').val(module);
-}
-
-function isCheckoutFieldValid(field) {
- var validateField = true;
- var fieldId = field.prop('id');
- var value = field.val();
- if (fieldId.indexOf("creditcard") >= 0) {
- validateField = false; //ignore credit card number field
- }
- if(!field.is(':visible')) {
- validateField = false; //ignore invisible fields
- }
-
-
- //shipping information
- <c:if test="${shippingQuote!=null}">
- if ($('#shipToBillingAdress').is(':checked')) {
- //validate shipping fields
- if (fieldId.indexOf("delivery") >= 0) {
- validateField = false; //ignore shipping fields when ship to billing
- }
- }
- </c:if>
- <c:if test="${fn:length(paymentMethods)>0}">
- //if any payment option need validation insert here
- //console.log($('input[name=paymentMethodType]:checked', checkoutFormId).val());
- if($('input[name=paymentMethodType]:checked', checkoutFormId).val()=='CREDITCARD') {
- if (fieldId.indexOf("creditcard") >= 0) {
- if(fieldId!='creditcard_card_number') {
- validateField = true;// but validate credit card fields when credit card is selected
- }
- if(fieldId=='creditcard_card_number') {
- return isCreditCardValid();// validate credit card number differently
- }
- }
- }
- </c:if>
-
-
-
- if(!validateField) {
- return true;
- }
-
- if(field.attr('type')=='checkbox') {
- if(field.is(":checked")) {
- return true;
- } else {
- return false;
- }
- }
-
- if(!emptyString(value)) {
- field.css('background-color', '#FFF');
- return true;
- } else {
- field.css('background-color', '#FFC');
- return false;
- }
-}
-
-$.fn.addItems = function(div, data, defaultValue) {
- //console.log('Populating div ' + div + ' defaultValue ' + defaultValue);
- var selector = div + ' > option';
- var defaultExist = false;
- $(selector).remove();
- return this.each(function() {
- var list = this;
- $.each(data, function(index, itemData) {
- //console.log(itemData.code + ' ' + defaultValue);
- if(itemData.code==defaultValue) {
- defaultExist = true;
- }
- var option = new Option(itemData.name, itemData.code);
- list.add(option);
- });
- if(defaultExist && (defaultValue!=null && defaultValue!='')) {
- $(div).val(defaultValue);
- }
- });
-};
-
-$.fn.serializeObject = function()
-{
- var o = {};
- var a = this.serializeArray();
- $.each(a, function() {
- if (o[this.name]) {
- if (!o[this.name].push) {
- o[this.name] = [o[this.name]];
- }
- o[this.name].push(this.value || '');
- } else {
- o[this.name] = this.value || '';
- }
- });
- return o;
-};
-
-function showErrorMessage(message) {
-
-
- showResponseErrorMessage(message);
- $('#submitOrder').addClass('btn-disabled');
- $('#submitOrder').prop('disabled', true);
-
- $(formErrorMessageId).addClass('alert-error alert-danger');
- $(formErrorMessageId).removeClass('alert-success');
- $(formErrorMessageId).html('<!--<img src="<c:url value="/resources/img/icon_error.png"/>" width="40"/> --><strong><font color="red">' + message + '</font></strong>');
- $(formErrorMessageId).show();
-
-}
-
-function showResponseErrorMessage(message) {
-
- $('#checkoutError').addClass('alert');
- $('#checkoutError').addClass('alert-error alert-danger');
- $('#checkoutError').html(message);
-
-}
-
-function resetErrorMessage() {
-
- $('#checkoutError').html('');
- $('#checkoutError').removeClass('alert');
- $('#checkoutError').removeClass('alert-error alert-danger');
- $('.error').html('');
-
-}
-
-
-
-/**
- * Specify
- * div list container
- * text div (shown or not)
- * selected countryCode
- * preselected value
- * callback to invoke
- */
-function getZones(listDiv, textDiv, countryCode, defaultValue, callBackFunction){
- $.ajax({
- type: 'POST',
- url: '<c:url value="/shop/reference/provinces.html"/>',
- data: 'countryCode=' + countryCode + '&lang=${requestScope.LANGUAGE.code}',
- dataType: 'json',
- success: function(response){
- var status = response.response.status;
- var data = response.response.data;
- //console.log(status);
- if((status==0 || status ==9999) && data) {
-
- //console.log(data);
- if(data && data.length>0) {
- $(listDiv).addClass('required');
- $(listDiv).show();
- $(textDiv).removeClass('required');
- $(textDiv).hide();
- $(listDiv).addItems(listDiv, data, defaultValue);
- } else {
- $(listDiv).removeClass('required');
- $(listDiv).hide();
- $(textDiv).addClass('required');
- $(textDiv).show();
- if(defaultValue!=null || defaultValue !='') {
- $(textDiv).val(defaultValue);
- }
- }
- } else {
- $(listDiv).hide();
- $(textDiv).show();
- }
- isFormValid();
- if(callBackFunction!=null) {
- callBackFunction();
- }
- },
- error: function(xhr, textStatus, errorThrown) {
- alert('error ' + errorThrown);
- }
-
- });
-
-}
-
-
-function setCountrySettings(prefix, countryCode) {
- //add masks to your country
- //console.log('Apply mask ' + countryCode);
-
- var phoneSelector = '.' + prefix + '-phone';
- var postalCodeSelector = '.' + prefix + '-postalCode';
-
- if(countryCode=='CA') {//mask for canada
- $(phoneSelector).mask("?(999) 999-9999");
- $(postalCodeSelector).mask("?*** ***");
- return;
- }
- if(countryCode=='US') {// mask for united states
- $(phoneSelector).mask("?(999) 999-9999");
- $(postalCodeSelector).mask("?99999");
- return;
- }
-
- $(phoneSelector).unmask();
- $(postalCodeSelector).unmask();
-
-
-}
-
-
-
-function bindActions() {
-
-
- $(".shippingOption").click(function() {
- calculateTotal();
- });
-
- <!-- shipping / billing decision -->
- $("#shipToBillingAdress").click(function() {
- shippingQuotes();
- if ($('#shipToBillingAdress').is(':checked')) {
- $('#deliveryBox').hide();
- isFormValid();
- } else {
- $('#deliveryBox').show();
- isFormValid();
- }
- });
-
- $("#submitOrder").click(function(e) {
- e.preventDefault();//do not submit form
- resetErrorMessage();
- setCountrySettings('billing',$('.billing-country-list').val());
- setCountrySettings('delivery',$('.shipping-country-list').val());
- //$('#submitOrder').disable();
- $('#pageContainer').showLoading();
- var paymentSelection = $('input[name=paymentMethodType]:checked', checkoutFormId).val();
- if(paymentSelection.indexOf('PAYPAL')!=-1) {
- initPayment(paymentSelection);
- } else if(paymentSelection.indexOf('STRIPE')!=-1) {
- initStripePayment();
- } else {
- //submit form
- $('#pageContainer').hideLoading();
- $('#checkoutForm').submit();
-
- }
- });
-}
-
-
-
-function shippingQuotes(){
- resetErrorMessage();
- $('#pageContainer').showLoading();
- var data = $(checkoutFormId).serialize();
- //console.log(data);
-
- $.ajax({
- type: 'POST',
- url: '<c:url value="/shop/order/shippingQuotes.html"/>',
- data: data,
- cache: false,
- dataType: 'json',
- success: function(response){
-
- $('#pageContainer').hideLoading();
- if(response.errorMessage!=null && response.errorMessage!='') {
- showErrorMessage(response.errorMessage);
- return;
- }
-
- //console.log(response);
-
- $('#summary-table tr.subt').remove();
- $('#totalRow').html('');
- var subTotalsTemplate = Hogan.compile(document.getElementById("subTotalsTemplate").innerHTML);
- var totalTemplate = Hogan.compile(document.getElementById("totalTemplate").innerHTML);
- var quotesTemplate = Hogan.compile(document.getElementById("shippingTemplate").innerHTML);
- var subTotalsRendered = subTotalsTemplate.render(response);
- var totalRendred = totalTemplate.render(response);
-
- if(response.shippingSummary!=null) {
- //create extra fields
- summary = response.shippingSummary;
- for(var i = 0; i< summary.shippingOptions.length; i++) {
- if(summary.shippingOptions[i].optionId == summary.selectedShippingOption.optionId) {
- summary.shippingOptions[i].checked = true;
- break;
- }
- }
- if(summary.handling && summary.handling>0) {
- summary.showHandling = true;
- }
-
- //render summary
- $('#shippingSection').html('');
- var quotesRendered = quotesTemplate.render(response.shippingSummary);
- //console.log(quotesRendered);
- $('#shippingSection').html(quotesRendered);
- bindActions();
- }
- $('#summaryRows').append(subTotalsRendered);
- $('#totalRow').html(totalRendred);
- isFormValid();
- },
- error: function(xhr, textStatus, errorThrown) {
- $('#pageContainer').hideLoading();
- alert('error ' + errorThrown);
- }
-
- });
-
-}
-
-function initPayment(paymentSelection) {
- var url = '<c:url value="/shop/order/payment/init/"/>' + paymentSelection + '.html';
- var data = $(checkoutFormId).serialize();
- $.ajax({
- type: 'POST',
- url: url,
- data: data,
- cache: false,
- dataType: 'json',
- success: function(response){
- //$('#submitOrder').enable();
- $('#pageContainer').hideLoading();
- var resp = response.response;
- var status = resp.status;
- console.log(status);
- if(status==0 || status ==9999) {
-
- var data = resp.url;
- console.log(resp.url);
- location.href=resp.url;
-
- } else if(status==-2) {//validation issues
-
- console.log(resp.validations);
- var globalMessage = '';
- for(var i = 0; i< resp.validations.length; i++) {
- var fieldName = resp.validations[i].field;
- var message = resp.validations[i].message;
- console.log(fieldName + ' - ' + message);
- //query for the field
- var f = $(document.getElementById('error-'+fieldName));
- if(f) {
- f.html(message);
- }
- globalMessage = globalMessage + message + '<br/>';
-
- }
-
- showResponseErrorMessage(globalMessage);
-
-
- } else {
- console.log('Wrong status ' + status);
- showResponseErrorMessage('<s:message code="error.code.99" text="An error message occured while trying to process the payment (99)"/>');
-
- }
- },
- error: function(xhr, textStatus, errorThrown) {
- $('#pageContainer').hideLoading();
- alert('error ' + errorThrown);
- }
-
- });
-
-}
-
-
-function calculateTotal(){
- resetErrorMessage();
- $('#pageContainer').showLoading();
- var data = $(checkoutFormId).serialize();
- //console.log(data);
-
- $.ajax({
- type: 'POST',
- url: '<c:url value="/shop/order/calculateOrderTotal.html"/>',
- data: data,
- cache: false,
- dataType: 'json',
- success: function(response){
-
- $('#pageContainer').hideLoading();
- if(response.errorMessage!==null && response.errorMessage!=='') {
- showErrorMessage(response.errorMessage);
- return;
- }
-
- //console.log(response);
-
- $('#summary-table tr.subt').remove();
- $('#totalRow').html('');
- var subTotalsTemplate = Hogan.compile(document.getElementById("subTotalsTemplate").innerHTML);
- var totalTemplate = Hogan.compile(document.getElementById("totalTemplate").innerHTML);
- var subTotalsRendered = subTotalsTemplate.render(response);
- var totalRendred = totalTemplate.render(response);
-
-
- //console.log(rendered);
- $('#summaryRows').append(subTotalsRendered);
- $('#totalRow').html(totalRendred);
- isFormValid();
- },
- error: function(xhr, textStatus, errorThrown) {
- $('#pageContainer').hideLoading();
- alert('error ' + errorThrown);
- }
-
- });
-}
-
-
-
-$(document).ready(function() {
-
- $("#clickAgreement").click(function(){
- $("#customer-agreement-area").slideToggle("slow");
- });
-
- <!--
- //can use masked input for phone (USA - CANADA)
- -->
- isFormValid();
-
- bindActions();
-
- $("input[type='text']").on("change keyup paste", function(){
- isFormValid();
- });
-
- $("input[type='checkbox']").on("change click", function(){
- isFormValid();
- });
-
- <c:if test="${order.customer.billing.country!=null}">
- $('.billing-country-list').val('${order.customer.billing.country}');
- setCountrySettings('billing','${order.customer.billing.country}');
- </c:if>
- <c:if test="${order.customer.delivery.country!=null}">
- $('.shipping-country-list').val('${order.customer.delivery.country}');
- setCountrySettings('delivery','${order.customer.delivery.country}');
- </c:if>
-
- <!-- customer state is text -->
- <c:if test="${order.customer.billing.stateProvince!=null && order.customer.billing.stateProvince!=null !=''}">
- $('#billingStateList').hide();
- $('#billingStateProvince').show();
- $('#billingStateProvince').val('<c:out value="${order.customer.billing.stateProvince}"/>');
- </c:if>
- <!-- customer state is a know state -->
- <c:if test="${order.customer.billing.stateProvince==null || order.customer.billing.stateProvince==''}">
- $('#billingStateList').show();
- $('#billingStateProvince').hide();
- getZones('#billingStateList','#billingStateProvince','<c:out value="${order.customer.billing.country}" />','<c:out value="${order.customer.billing.zone}" />', null);
- </c:if>
-
- <c:if test="${order.customer.delivery.stateProvince!=null && order.customer.delivery.stateProvince!=''}">
- $('#deliveryStateList').hide();
- $('#deliveryStateProvince').show();
- $('#deliveryStateProvince').val('<c:out value="${order.customer.delivery.stateProvince}"/>');
- </c:if>
-
- <c:if test="${order.customer.delivery.stateProvince==null || order.customer.delivery.stateProvince==''}">
- $('#deliveryStateList').show();
- $('#deliveryStateProvince').hide();
- getZones('#deliveryStateList','#deliveryStateProvince','<c:out value="${order.customer.delivery.country}" />','<c:out value="${order.customer.billing.zone}" />', null);
- </c:if>
-
- $(".billing-country-list").change(function() {
- getZones('#billingStateList','#billingStateProvince',$(this).val(),'<c:out value="${order.customer.billing.zone}" />', shippingQuotes);
- setCountrySettings('billing',$(this).val());
- })
-
- $(".shipping-country-list").change(function() {
- getZones('#deliveryStateList','#deliveryStateProvince',$(this).val(),'<c:out value="${order.customer.delivery.zone}" />', shippingQuotes);
- setCountrySettings('delivery',$(this).val());
- })
-
- $("#billingStateList").change(function() {
- shippingQuotes();
- })
-
- $("#shippingStateList").change(function() {
- shippingQuotes();
- })
-
- $('input[name=paymentMethodType]', checkoutFormId).click(function() {
- isFormValid();//change payment method
- });
-
- $("input[id=billingPostalCode]").blur(function() {
- shippingQuotes();
- });
-
- $("input[id=shippingPostalCode]").blur(function() {
- if (!$('#shipToBillingAdress').is(':checked')) {
- shippingQuotes();
- }
- });
-
-
-
-});
-
-
-
-
-</script>
-
- <div id="main-content" class="container row-fluid">
- <h1 class="checkout-title"><s:message code="label.checkout" text="Checkout" /></h1>
- <sec:authorize access="!hasRole('AUTH_CUSTOMER') and !fullyAuthenticated">
- <p class="muted common-row"><s:message code="label.checkout.logon" text="Logon or signup to simplify the online purchase process!"/></p>
- </sec:authorize>
-
- <c:set var="commitUrl" value="${pageContext.request.contextPath}/shop/order/commitOrder.html"/>
- <form:form id="checkoutForm" method="POST" enctype="multipart/form-data" commandName="order" action="${commitUrl}">
-
-
- <div class="row-fluid common-row" id="checkout">
- <div class="span12 col-md-12 no-padding">
-
- <!-- If error messages -->
- <div id="checkoutError" class="<c:if test="${errorMessages!=null}">alert alert-error alert-danger </c:if>">
- <c:if test="${errorMessages!=null}">
- <c:out value="${errorMessages}" />
- </c:if>
- </div>
- <!--alert-error-->
-
- <!-- row fluid span -->
- <div class="row-fluid">
- <!-- left column -->
- <div class="span8 col-md-8 no-padding-left">
-
- <!-- Billing box -->
- <div id="shippingBox" class="checkout-box">
- <span class="box-title">
- <p class="p-title"><s:message code="label.customer.billinginformation" text="Billing information"/></p>
- </span>
-
-
-
- <!-- First name - Last name -->
- <div class="row-fluid common-row row">
- <div class="span4 col-md-4">
-
- <div class="control-group form-group">
- <label><s:message code="label.generic.firstname" text="First Name"/></label>
- <div class="controls">
- <s:message code="NotEmpty.customer.firstName" text="First name is required" var="msgFirstName"/>
- <form:input id="customer.firstName" cssClass="input-large required form-control form-control-lg" path="customer.billing.firstName" title="${msgFirstName}"/>
- <form:errors path="customer.billing.firstName" cssClass="error" />
- <span id="error-customer.billing.firstName" class="error"></span>
- </div>
- </div>
- </div>
- <div class="span4 col-md-4">
- <div class="control-group form-group">
- <label><s:message code="label.generic.lastname" text="Last Name"/></label>
- <div class="controls">
- <s:message code="NotEmpty.customer.lastName" text="Last name is required" var="msgLastName"/>
- <form:input id="customer.lastName" cssClass="input-large required form-control form-control-lg" maxlength="32" path="customer.billing.lastName" title="${msgLastName}" />
- <form:errors path="customer.billing.lastName" cssClass="error" />
- <span id="error-customer.billing.lastName" class="error"></span>
- </div>
- </div>
- </div>
- </div>
-
-
- <!-- email company -->
- <div class="row-fluid common-row row">
- <div class="span4 col-md-4">
- <div class="control-group form-group">
- <label><s:message code="label.generic.email" text="Email address"/></label>
- <div class="controls">
- <s:message code="NotEmpty.customer.emailAddress" text="Email address is required" var="msgEmail"/>
- <form:input id="customer.emailAddress" cssClass="input-large required email form-control form-control-lg" path="customer.emailAddress" title="${msgEmail}"/>
- <form:errors path="customer.emailAddress" cssClass="error" />
- <span id="error-customer.emailAddress" class="error"></span>
- </div>
- </div>
- </div>
- <div class="span4 col-md-4">
- <div class="control-group form-group">
- <label><s:message code="label.customer.billing.company" text="Billing company"/></label>
- <div class="controls">
- <form:input id="customer.billing.company" cssClass="input-large form-control form-control-lg" path="customer.billing.company"/>
- <form:errors path="customer.billing.company" cssClass="error" />
- <span id="error-customer.billing.company" class="error"></span>
- </div>
- </div>
- </div>
- </div>
-
- <!-- street address -->
- <div class="row-fluid common-row row">
- <div class="span8 col-md-8">
- <div class="control-group form-group">
- <label><s:message code="label.generic.streetaddress" text="Street address"/></label>
- <div class="controls">
- <s:message code="NotEmpty.customer.billing.address" text="Address is required" var="msgAddress"/>
- <form:input id="customer.billing.address" cssClass="input-xxlarge required form-control form-control-lg" path="customer.billing.address" title="${msgAddress}"/>
- <form:errors path="customer.billing.address" cssClass="error" />
- <span id="error-customer.billing.address" class="error"></span>
- </div>
- </div>
- </div>
- </div>
-
- <!-- city - postal code -->
- <div class="row-fluid common-row row">
- <div class="span4 col-md-4">
- <div class="control-group form-group">
- <label><s:message code="label.generic.city" text="City"/></label>
- <div class="controls">
- <s:message code="NotEmpty.customer.billing.city" text="City is required" var="msgCity"/>
- <form:input id="customer.billing.city" cssClass="input-large required form-control form-control-lg" path="customer.billing.city" title="${msgCity}"/>
- <form:errors path="customer.billing.city" cssClass="error" />
- <span id="error-customer.billing.city" class="error"></span>
- </div>
- </div>
- </div>
- <div class="span4 col-md-4">
- <div class="control-group form-group">
- <label><s:message code="label.generic.postalcode" text="Postal code"/></label>
- <div class="controls">
- <s:message code="NotEmpty.customer.billing.postalCode" text="Postal code is required" var="msgPostalCode"/>
- <form:input id="billingPostalCode" cssClass="input-large required billing-postalCode form-control form-control-lg" path="customer.billing.postalCode" title="${msgPostalCode}"/>
- <form:errors path="customer.billing.postalCode" cssClass="error" />
- <span id="error-customer.billing.postalCode" class="error"></span>
- </div>
- </div>
- </div>
- </div>
-
- <!-- state province -->
- <div class="row-fluid common-row row">
- <div class="span8 col-md-8">
- <div class="control-group form-group">
- <label><s:message code="label.generic.stateprovince" text="State / Province"/></label>
- <div class="controls">
- <form:select cssClass="zone-list form-control form-control-lg" id="billingStateList" path="customer.billing.zone"/>
- <s:message code="NotEmpty.customer.billing.stateProvince" text="State / Province is required" var="msgStateProvince"/>
- <form:input class="input-large required form-control form-control-lg" id="billingStateProvince" maxlength="100" name="billingStateProvince" path="customer.billing.stateProvince" title="${msgStateProvince}"/>
- <form:errors path="customer.billing.stateProvince" cssClass="error" />
- <span id="error-customer.billing.stateProvince" class="error"></span>
- </div>
- </div>
- </div>
- </div>
-
- <!-- country - phone - ship checkbox -->
- <div class="row-fluid common-row row">
- <div class="span4 col-md-4">
- <div class="control-group form-group">
- <label><s:message code="label.generic.country" text="Country"/></label>
- <div class="controls">
- <form:select cssClass="billing-country-list form-control form-control-lg" path="customer.billing.country">
- <form:options items="${countries}" itemValue="isoCode" itemLabel="name"/>
- </form:select>
- </div>
- </div>
- </div>
-
- <div class="span4 col-md-4">
- <div class="control-group form-group">
- <label><s:message code="label.generic.phone" text="Phone number"/></label>
- <div class="controls">
- <s:message code="NotEmpty.customer.billing.phone" text="Phone number is required" var="msgPhone"/>
- <form:input id="customer.billing.phone" cssClass="input-large required billing-phone form-control form-control-lg" path="customer.billing.phone" title="${msgPhone}"/>
- <form:errors path="customer.billing.phone" cssClass="error" />
- <span id="error-customer.billing.phone" class="error"></span>
- </div>
- </div>
- </div>
-
- </div>
-
- <c:if test="${shippingQuote!=null}">
- <!-- display only if a shipping quote exist -->
- <div class="row-fluid common-row row">
- <div class="span8 col-md-8">
- <label id="useAddress" class="checkbox">
- <form:checkbox path="shipToBillingAdress" id="shipToBillingAdress"/>
- <s:message code="label.customer.shipping.shipaddress" text="Ship to this address" /></label>
- </div>
- </div>
- </c:if>
- </div>
- <!-- end billing box -->
-
- <c:if test="${shippingQuote!=null}">
- <br/>
- <!-- Shipping box -->
- <div id="deliveryBox" class="checkout-box">
- <span class="box-title">
- <p class="p-title"><s:message code="label.customer.shippinginformation" text="Shipping information"/></p>
- </span>
-
- <!-- First name - Last name -->
- <div class="row-fluid common-row row">
- <div class="span4 col-md-4">
- <div class="control-group form-group">
- <label><s:message code="label.customer.shipping.firtsname" text="Shipping first name"/></label>
- <div class="controls">
- <s:message code="NotEmpty.customer.shipping.firstName" text="Shipping first name should not be empty" var="msgShippingFirstName"/>
- <form:input id="customer.delivery.name" cssClass="input-xxlarge required form-control form-control-lg" path="customer.delivery.firstName" title="${msgShippingFirstName}"/>
- </div>
- </div>
- </div>
- </div>
-
- <div class="row-fluid common-row row">
- <div class="span4 col-md-4">
- <div class="control-group">
- <label><s:message code="label.customer.shipping.lastname" text="Shipping last name"/></label>
- <div class="controls">
- <s:message code="NotEmpty.customer.shipping.lastName" text="Shipping last name should not be empty" var="msgShippingLastName"/>
- <form:input id="customer.delivery.name" cssClass="input-xxlarge required form-control form-control-lg" path="customer.delivery.lastName" title="${msgShippingLastName}"/>
- </div>
- </div>
- </div>
- </div>
-
- <!-- company -->
- <div class="row-fluid common-row row">
- <div class="span4 col-md-4">
- <div class="control-group">
- <label><s:message code="label.customer.shipping.company" text="Shipping company"/></label>
- <div class="controls">
- <form:input id="customer.delivery.company" cssClass="input-large form-control form-control-lg" path="customer.delivery.company"/>
- </div>
- </div>
- </div>
- </div>
-
- <!-- street address -->
- <div class="row-fluid common-row row">
- <div class="span8 col-md-8">
- <div class="control-group">
- <label><s:message code="label.customer.shipping.streetaddress" text="Shipping street address"/></label>
- <div class="controls">
- <s:message code="NotEmpty.customer.shipping.address" text="Shipping street address should not be empty" var="msgShippingAddress"/>
- <form:input id="customer.delivery.address" cssClass="input-xxlarge required form-control form-control-lg" path="customer.delivery.address" title="${msgShippingAddress}"/>
- </div>
- </div>
- </div>
- </div>
-
- <!-- city - postal code -->
- <div class="row-fluid common-row row">
- <div class="span4 col-md-4">
- <div class="control-group">
- <label><s:message code="label.customer.shipping.city" text="Shipping city"/></label>
- <div class="controls">
- <s:message code="NotEmpty.customer.shipping.city" text="Shipping city should not be empty" var="msgShippingCity"/>
- <form:input id="customer.delivery.city" cssClass="input-large required form-control form-control-lg" path="customer.delivery.city" title="${msgShippingCity}"/>
- </div>
- </div>
- </div>
- <div class="span4 col-md-4">
- <div class="control-group form-group">
- <label><s:message code="label.customer.shipping.postalcode" text="Shipping postal code"/></label>
- <div class="controls">
- <s:message code="NotEmpty.customer.shipping.postalcode" text="Shipping postal code should not be empty" var="msgShippingPostal"/>
- <form:input id="deliveryPostalCode" cssClass="input-large required delivery-postalCode form-control form-control-lg" path="customer.delivery.postalCode" title="${msgShippingPostal}"/>
- </div>
- </div>
- </div>
- </div>
-
- <!-- state province -->
- <div class="row-fluid common-row row">
- <div class="span8 col-md-8">
- <div class="control-group form group">
- <label><s:message code="label.customer.shipping.zone" text="Shipping state / province"/></label>
- <div class="controls">
- <form:select cssClass="zone-list form-control" id="deliveryStateList" path="customer.delivery.zone"/>
- <s:message code="NotEmpty.customer.shipping.stateProvince" text="Shipping State / Province is required" var="msgShippingState"/>
- <form:input class="input-large required form-control form-control-lg" id="deliveryStateProvince" maxlength="100" name="shippingStateProvince" path="customer.delivery.stateProvince" title="${msgShippingState}"/>
- </div>
- </div>
- </div>
- </div>
-
- <!-- country -->
- <div class="row-fluid common-row row">
- <div class="span8 col-md-8">
- <div class="control-group form-group">
- <label><s:message code="label.customer.shipping.country" text="Shipping country"/></label>
- <div class="controls">
- <form:select cssClass="shipping-country-list form-control" path="customer.delivery.country">
- <form:options items="${countries}" itemValue="isoCode" itemLabel="name"/>
- </form:select>
- </div>
- </div>
- </div>
- </div>
- </div>
- </c:if>
-
-
-
-
-
- <!-- Shipping box -->
- <c:if test="${shippingQuote!=null}">
- <br/>
- <!-- Shipping -->
- <div class="checkout-box">
- <span class="box-title">
- <p class="p-title"><s:message code="label.shipping.fees" text="Shipping fees" /> </p>
- </span>
-
- <c:choose>
- <c:when test="${fn:length(shippingQuote.shippingOptions)>0}">
- <input type="hidden" name="shippingModule" value="${shippingQuote.shippingModuleCode}">
- <div id="shippingSection" class="control-group">
- <label class="control-label">
- <s:message code="label.shipping.options" text="Shipping options"/>
- <c:if test="${shippingQuote.handlingFees!=null && shippingQuote.handlingFees>0}">
- (<s:message code="label.shipping.handlingfees" text="Handling fees" /> <sm:monetary value="${shippingQuote.handlingFees}"/>)
- </c:if>
- </label>
- <div id="shippingOptions" class="controls">
- <c:forEach items="${shippingQuote.shippingOptions}" var="option" varStatus="status">
- <label class="radio">
- <input type="radio" name="selectedShippingOption.optionId" class="shippingOption" id="${option.optionId}" value="${option.optionId}" <c:if test="${order.selectedShippingOption!=null && order.selectedShippingOption.optionId==option.optionId}">checked="checked"</c:if>>
- ${option.optionName} - ${option.optionPriceText}
- </label>
- </c:forEach>
- </div>
- </div>
- </c:when>
- <c:otherwise>
- <c:choose>
- <c:when test="${shippingQuote.freeShipping==true && shippingQuote.freeShippingAmount!=null}" >
- <s:message code="label.shipping.freeshipping.over" text="Free shipping for orders over"/> <strong><sm:monetary value="${shippingQuote.freeShippingAmount}"/></strong>
- </c:when>
- <c:otherwise>
- <c:choose>
- <c:when test="${shippingQuote.shippingReturnCode=='ERROR'}">
- <font color="red"><c:out value="${shippingQuote.quoteError}" /></font>
- </c:when>
- <c:otherwise>
- <c:choose>
- <c:when test="${shippingQuote.shippingReturnCode=='NO_SHIPPING_MODULE_CONFIGURED'}">
- <font color="red"><s:message code="message.noshipping.configured" text="No shipping method configured"/></font>
- </c:when>
- <c:otherwise>
- <strong><s:message code="label.shipping.freeshipping" text="Free shipping!"/></strong>
- </c:otherwise>
- </c:choose>
- </c:otherwise>
- </c:choose>
- </c:otherwise>
- </c:choose>
- </c:otherwise>
- </c:choose>
- </div>
- <!-- end shipping box -->
- </c:if>
- <br/>
-
- <c:if test="${fn:length(paymentMethods)>0}">
- <!-- payment box -->
- <div class="checkout-box">
- <span class="box-title">
- <p class="p-title"><s:message code="label.payment.module.title" text="Payment method" /></p>
- </span>
-
- <div class="tabbable">
- <ul class="nav nav-tabs">
- <c:forEach items="${paymentMethods}" var="paymentMethod">
- <li class="<c:choose><c:when test="${order.paymentMethodType!=null && order.paymentMethodType==paymentMethod.paymentType}">active</c:when><c:otherwise><c:if test="${order.paymentMethodType==null && paymentMethod.defaultSelected==true}">active</c:if></c:otherwise></c:choose>">
- <a href="#${paymentMethod.paymentType}" data-toggle="tab" class="paymentTab">
- <c:choose>
- <c:when test="${paymentMethod.paymentType=='CREDITCARD' || paymentMethod.paymentType=='PAYPAL'}">
- <c:if test="${paymentMethod.paymentType=='CREDITCARD'}">
- <img src="<c:url value="/resources/img/payment/icons/visa-straight-64px.png"/>" width="40">
- <img src="<c:url value="/resources/img/payment/icons/mastercard-straight-64px.png"/>" width="40">
- <img src="<c:url value="/resources/img/payment/icons/american-express-straight-64px.png"/>" width="40">
- </c:if>
- <c:if test="${paymentMethod.paymentType=='PAYPAL'}"><img src="<c:url value="/resources/img/payment/icons/paypal-straight-64px.png"/>" width="40"></c:if>
- </c:when>
- <c:otherwise>
- <h4><s:message code="payment.type.${paymentMethod.paymentType}" text="Payment method type [payment.type.${paymentMethod.paymentType}] not defined in payment.properties" /></h4>
- </c:otherwise>
- </c:choose>
- </a>
- </li>
- </c:forEach>
- </ul>
-
-
-
-
- <div class="tab-content">
- <c:forEach items="${paymentMethods}" var="paymentMethod">
- <div class="tab-pane <c:choose><c:when test="${order.paymentMethodType!=null && order.paymentMethodType==paymentMethod.paymentType}">active</c:when><c:otherwise><c:if test="${order.paymentMethodType==null && paymentMethod.defaultSelected==true}">active</c:if></c:otherwise></c:choose>" id="${paymentMethod.paymentType}">
- <c:choose>
- <c:when test="${order.paymentMethodType!=null && order.paymentMethodType==paymentMethod.paymentType}">
- <c:set var="paymentModule" value="${order.paymentMethodType}" scope="request"/>
- </c:when>
- <c:otherwise>
- <c:if test="${order.paymentMethodType==null && paymentMethod.defaultSelected==true}">
- <c:set var="paymentModule" value="${paymentMethod.paymentMethodCode}" scope="request"/>
- </c:if>
- </c:otherwise>
- </c:choose>
- <c:set var="selectedPaymentMethod" value="${order.paymentMethodType}" scope="request"/>
- <c:set var="paymentMethod" value="${paymentMethod}" scope="request"/>
- <c:set var="pageName" value="${fn:toLowerCase(paymentMethod.paymentType)}" />
- <jsp:include page="/pages/shop/common/checkout/${pageName}.jsp" />
- </div>
- </c:forEach>
-
- <input type="hidden" id="paymentModule" name="paymentModule" value="<c:choose><c:when test="${order.paymentModule!=null}"><c:out value="${order.paymentModule}"/></c:when><c:otherwise><c:out value="${paymentModule}" /></c:otherwise></c:choose>"/>
- </div>
- </div>
- </div>
- <!-- end payment box -->
- </c:if>
-
-
-
-
-
- </div>
- <!-- end left column -->
-
-
- <!-- Order summary right column -->
- <div class="span4 col-md-4 no-padding">
-
- <!-- order summary box -->
- <div class="checkout-box">
- <span id="summaryBox" class="box-title">
- <p class="p-title"><s:message code="label.order.summary" text="Order summary" /></p>
- </span>
-
- <table id="summary-table" class="table table-condensed table-hover">
- <thead>
- <tr>
- <th width="45%"><s:message code="label.order.item" text="Item" /></th>
- <!--<th width="15%"><s:message code="label.quantity" text="Quantity" /></th>-->
- <th width="20%"><s:message code="label.order.price" text="Price" /></th>
- <th width="20%"><s:message code="label.order.total" text="Total" /></th>
- </tr>
- </thead>
-
- <tbody id="summaryRows">
- <c:forEach items="${cart.shoppingCartItems}" var="shoppingCartItem">
- <tr class="item">
- <td width="45%">
- ${shoppingCartItem.quantity} x ${shoppingCartItem.name}
- <c:if test="${fn:length(shoppingCartItem.shoppingCartAttributes)>0}">
- <br/>
- <ul>
- <c:forEach items="${shoppingCartItem.shoppingCartAttributes}" var="option">
- <li>${option.optionName} - ${option.optionValue}</li>
- </c:forEach>
- </ul>
- </c:if>
- </td>
- <!--<td width="15%">${shoppingCartItem.quantity}</td>-->
- <td width="20%"><strong>${shoppingCartItem.price}</strong></td>
- <td width="20%"><strong>${shoppingCartItem.subTotal}</strong></td>
- </tr>
- </c:forEach>
- <!-- subtotals -->
- <c:forEach items="${order.orderTotalSummary.totals}" var="total">
- <c:if test="${total.orderTotalCode!='order.total.total'}">
- <tr class="subt">
- <td colspan="2"><s:message code="${total.orderTotalCode}" text="${total.orderTotalCode}"/></td>
- <td><strong><sm:monetary value="${total.value}" /></strong></td>
- </tr>
- </c:if>
- </c:forEach>
- </tbody>
- </table>
-
-
- <div id="totalRow" class="total-box">
- <span class="total-box-grand-total">
- <font class="total-box-label">
- <s:message code="order.total.total" text="Total"/>
- <font class="total-box-price"><sm:monetary value="${order.orderTotalSummary.total}"/></font>
- </font>
- </span>
- </div>
- </div>
- <!-- end order summary box -->
- <c:if test="${requestScope.CONFIGS['displayCustomerAgreement']==true}">
- <!-- customer agreement -->
- <div class="checkout-box" id="customerAgreementSection" class="">
- <label id="customerAgreement" class="checkbox">
- <s:message code="NotEmpty.customer.agreement" text="Please make sure you agree with terms and conditions" var="msgAgreement"/>
- <form:checkbox path="customerAgreed" id="customerAgreed" cssClass="required" title="${msgAgreement}"/>
- <a href="javascript:return false;" id="clickAgreement"><s:message code="label.customer.order.agreement" text="I agree with the terms and conditions" /></a>
- </label>
- <div id="customer-agreement-area">
- <c:choose>
- <c:when test="${requestScope.CONTENT['agreement']!=null}">
- <sm:pageContent contentCode="agreement"/>
- </c:when>
- <c:otherwise>
- <s:message code="message.content.missing.agreement" text="Content with code 'agreement' does not exist" />
- </c:otherwise>
- </c:choose>
- </div>
- </div>
- </c:if>
-
- <div id="formErrorMessage" class="alert">
- </div>
- <!-- Submit -->
- <div class="form-actions">
- <div class="pull-right">
- <button id="submitOrder" type="submit" class="btn btn-large btn-success
- <c:if test="${errorMessages!=null}"> btn-disabled</c:if>"
- <c:if test="${errorMessages!=null}"> disabled="true"</c:if>
- ><s:message code="button.label.submitorder" text="Submit order"/></button>
-
- <!-- submit can be a post or a pre ajax query -->
- </div>
- </div>
-
- </div>
- <!-- end right column -->
-
- </div>
- <!-- end row fluid span -->
- </div>
- <!-- end span 12 -->
-
- </div>
- <!-- end row fluid -->
-
- </form:form>
+<%
+response.setCharacterEncoding("UTF-8");
+response.setHeader("Cache-Control","no-cache");
+response.setHeader("Pragma","no-cache");
+response.setDateHeader ("Expires", -1);
+%>
+
+<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
+<%@ taglib uri="http://www.springframework.org/tags" prefix="s" %>
+<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
+<%@ taglib uri="http://www.springframework.org/security/tags" prefix="sec" %>
+<%@ taglib uri="/WEB-INF/shopizer-tags.tld" prefix="sm" %>
+
+<%@page contentType="text/html"%>
+<%@page pageEncoding="UTF-8"%>
+
+<c:if test="${shippingMetaData.useDistanceModule==true}">
+<script src="https://maps.googleapis.com/maps/api/js?key=<sm:config configurationCode="shopizer.googlemaps_key" />"></script>
+</c:if>
+
+<script src="<c:url value="/resources/js/jquery.maskedinput.min.js" />"></script>
+
+
+<!-- subtotals template -->
+<script type="text/html" id="subTotalsTemplate">
+ {{#subTotals}}
+ <tr class="subt">
+ <td colspan="2">{{title}}</td>
+ <td><strong>{{total}}</strong></td>
+ </tr>
+ {{/subTotals}}
+</script>
+
+<!-- total template -->
+<script type="text/html" id="totalTemplate">
+ <span class="total-box-grand-total">
+ <font class="total-box-label">
+ <s:message code="order.total.total" text="Total"/>
+ <font class="total-box-price">{{grandTotal}}</font>
+ </font>
+ </span>
+</script>
+
+<!-- shipping template -->
+<script type="text/html" id="shippingTemplate">
+
+ <label class="control-label">
+ <s:message code="label.shipping.options" text="Shipping options"/>
+ {{#showHandling}}
+ (<s:message code="label.shipping.handlingfees" text="Handling fees" /> {{handlingText}})
+ {{/showHandling}}
+ </label>
+ <div id="shippingOptions" class="controls">
+ {{#shippingOptions}}
+ <label class="radio">
+ <input type="radio" name="selectedShippingOption.optionId" code="{{shippingModuleCode}}" class="shippingOption" id="{{optionId}}" value="{{optionId}}" {{#checked}} checked="checked"{{/checked}}>
+ {{description}} - {{optionPriceText}}
+ <br/>
+ {{#note}}<small>{{note}}</small>{{/note}}
+ </label>
+ {{/shippingOptions}}
+ </div>
+
+</script>
+
+
+<script>
+
+//populate provinces drop down list
+$.fn.addItems = function(div, data, defaultValue) {
+ //console.log('Populating div ' + div + ' defaultValue ' + defaultValue);
+ var selector = div + ' > option';
+ var defaultExist = false;
+ $(selector).remove();
+ return this.each(function() {
+ var list = this;
+ $.each(data, function(index, itemData) {
+ //console.log(itemData.code + ' ' + defaultValue);
+ if(itemData.code==defaultValue) {
+ defaultExist = true;
+ }
+ var option = new Option(itemData.name, itemData.code);
+ list.add(option);
+ });
+ if(defaultExist && (defaultValue!=null && defaultValue!='')) {
+ $(div).val(defaultValue);
+ }
+ });
+};
+
+<!-- creates a json representation of the form -->
+$.fn.serializeObject = function()
+{
+ var o = {};
+ var a = this.serializeArray();
+ $.each(a, function() {
+ if (o[this.name]) {
+ if (!o[this.name].push) {
+ o[this.name] = [o[this.name]];
+ }
+ o[this.name].push(this.value || '');
+ } else {
+ o[this.name] = this.value || '';
+ }
+ });
+ return o;
+};
+
+<!-- checkout form id -->
+var checkoutFormId = '#checkoutForm';
+
+<!-- checkout field id -->
+var formErrorMessageId = '#formErrorMessage';
+var useDistanceWindow = <c:out value="${shippingMetaData.useDistanceModule}"/>;
+
+
+function isFormValid() {
+ $(formErrorMessageId).hide();//reset error message
+ var $inputs = $(checkoutFormId).find(':input');
+ var valid = true;
+ var firstErrorMessage = null;
+ $inputs.each(function() {
+ if($(this).hasClass('required')) {
+ var fieldValid = isCheckoutFieldValid($(this));
+ //log($(this).attr('id') + ' Is valid ' + fieldValid);
+ if(!fieldValid) {
+ if(firstErrorMessage==null) {
+ //log('Title ' + $(this).attr('title'));
+ if($(this).attr('title')) {
+ firstErrorMessage = $(this).attr('title');
+ }
+ }
+ valid = false;
+ }
+ }
+ if($(this).hasClass('email')) {
+ var emailValid = validateEmail($(this).val());
+ //console.log('Email is valid ? ' + emailValid);
+ if(!emailValid) {
+ if(firstErrorMessage==null) {
+ firstErrorMessage = '<s:message code="messages.invalid.email" text="Invalid email address"/>';
+ valid = false;
+ }
+ }
+ }
+ });
+
+ //display - hide shipping
+ if ($('#shipToBillingAdress').is(':checked')) {
+ $('#deliveryBox').hide();
+ } else {
+ $('#deliveryBox').show();
+ }
+
+ //console.log('Form is valid ? ' + valid);
+ if(valid==false) {//disable submit button
+ if(firstErrorMessage!=null) {
+ $(formErrorMessageId).addClass('alert-error alert-danger');
+ $(formErrorMessageId).removeClass('alert-success');
+ $(formErrorMessageId).html('<!--<img src="<c:url value="/resources/img/icon_error.png"/>" width="40"/> --><strong><font color="red">' + firstErrorMessage + '</font></strong>');
+ $(formErrorMessageId).show();
+ }
+ $('#submitOrder').addClass('btn-disabled');
+ $('#submitOrder').prop('disabled', true);
+ } else {
+ $(formErrorMessageId).removeClass('alert-error alert-danger');
+ $(formErrorMessageId).addClass('alert-success');
+ $(formErrorMessageId).html('<!--<img src="<c:url value="/resources/img/icon_success.png"/>" width="40"/> --><strong><s:message code="message.order.canprocess" text="The order can be completed"/></strong>');
+ $(formErrorMessageId).show();
+ $('#submitOrder').removeClass('btn-disabled');
+ $('#submitOrder').prop('disabled', false);
+ }
+
+ return valid;
+}
+
+function setPaymentModule(module) {
+ console.log('Module - ' + module);
+ $('#paymentModule').val(module);
+ var pType = module;
+
+ if(module.indexOf('paypal') >= 0) {
+ $('#paymentMethodType').val('PAYPAL');
+ }
+ else if(module.indexOf('stripe') >= 0) {
+ $('#paymentMethodType').val('CREDITCARD');
+ }
+ else if(module.indexOf('beanstream') >= 0) {
+ $('#paymentMethodType').val('CREDITCARD');
+
+ } else {
+ pType = pType.toUpperCase();
+ console.log('Other type - ' + pType);
+ $('#paymentMethodType').val(pType);
+ }
+
+ //TODO set the TAB to the payment type
+ isFormValid();
+
+}
+
+function isCheckoutFieldValid(field) {
+ var validateField = true;
+ var fieldId = field.prop('id');
+ var value = field.val();
+ if (fieldId.indexOf("creditcard") >= 0) {
+ validateField = false; //ignore credit card number field
+ }
+ if(!field.is(':visible')) {
+ validateField = false; //ignore invisible fields
+ }
+
+
+ //shipping information
+ <c:if test="${shippingQuote!=null}">
+ if ($('#shipToBillingAdress').is(':checked')) {
+ //validate shipping fields
+ if (fieldId.indexOf("delivery") >= 0) {
+ validateField = false; //ignore shipping fields when ship to billing
+ }
+ }
+ </c:if>
+ <c:if test="${fn:length(paymentMethods)>0}">
+ //if any payment option need validation insert here
+ //console.log($('input[name=paymentMethodType]:checked', checkoutFormId).val());
+ //var paymentMethod = $('input[name=paymentMethodType]:checked', checkoutFormId).val();
+ var paymentType = $('input[name=paymentMethodType]').val();
+ console.log('Payment Method Type ' + paymentType);
+ if(paymentType=='CREDITCARD') {
+ if (fieldId.indexOf("creditcard") >= 0) {
+ if(fieldId!='creditcard_card_number') {
+ validateField = true;// but validate credit card fields when credit card is selected
+ }
+ if(fieldId=='creditcard_card_number') {
+ return isCreditCardValid();// validate credit card number differently
+ }
+ }
+ }
+ </c:if>
+
+
+
+ if(!validateField) {
+ return true;
+ }
+
+ if(field.attr('type')=='checkbox') {
+ if(field.is(":checked")) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ if(!emptyString(value)) {
+ field.css('background-color', '#FFF');
+ return true;
+ } else {
+ field.css('background-color', '#FFC');
+ return false;
+ }
+}
+
+
+
+function showErrorMessage(message) {
+
+
+ showResponseErrorMessage(message);
+ $('#submitOrder').addClass('btn-disabled');
+ $('#submitOrder').prop('disabled', true);
+
+ $(formErrorMessageId).addClass('alert-error alert-danger');
+ $(formErrorMessageId).removeClass('alert-success');
+ $(formErrorMessageId).html('<!--<img src="<c:url value="/resources/img/icon_error.png"/>" width="40"/> --><strong><font color="red">' + message + '</font></strong>');
+ $(formErrorMessageId).show();
+
+}
+
+function showResponseErrorMessage(message) {
+
+ $('#checkoutError').addClass('alert');
+ $('#checkoutError').addClass('alert-error alert-danger');
+ $('#checkoutError').html(message);
+
+}
+
+function resetErrorMessage() {
+
+ $('#checkoutError').html('');
+ $('#checkoutError').removeClass('alert');
+ $('#checkoutError').removeClass('alert-error alert-danger');
+ $('.error').html('');
+
+}
+
+
+
+/**
+ * Specify
+ * div list container
+ * text div (shown or not)
+ * selected countryCode
+ * preselected value
+ * callback to invoke
+ */
+function getZones(listDiv, textDiv, countryCode, defaultValue, callBackFunction){
+ $.ajax({
+ type: 'POST',
+ url: '<c:url value="/shop/reference/provinces.html"/>',
+ data: 'countryCode=' + countryCode + '&lang=${requestScope.LANGUAGE.code}',
+ dataType: 'json',
+ success: function(response){
+ var status = response.response.status;
+ var data = response.response.data;
+ //console.log(status);
+ if((status==0 || status ==9999) && data) {
+
+ //console.log(data);
+ if(data && data.length>0) {
+ $(listDiv).addClass('required');
+ $(listDiv).show();
+ $(textDiv).removeClass('required');
+ $(textDiv).hide();
+ $(listDiv).addItems(listDiv, data, defaultValue);
+ } else {
+ $(listDiv).removeClass('required');
+ $(listDiv).hide();
+ $(textDiv).addClass('required');
+ $(textDiv).show();
+ if(defaultValue!=null || defaultValue !='') {
+ $(textDiv).val(defaultValue);
+ }
+ }
+ } else {
+ $(listDiv).hide();
+ $(textDiv).show();
+ }
+ isFormValid();
+ if(callBackFunction!=null) {
+ callBackFunction();
+ }
+ },
+ error: function(xhr, textStatus, errorThrown) {
+ alert('error ' + errorThrown);
+ }
+
+ });
+
+}
+
+
+function setCountrySettings(prefix, countryCode) {
+ //add masks to your country
+ //console.log('Apply mask ' + countryCode);
+
+ var phoneSelector = '.' + prefix + '-phone';
+ var postalCodeSelector = '.' + prefix + '-postalCode';
+
+ if(countryCode=='CA') {//mask for canada
+ $(phoneSelector).mask("?(999) 999-9999");
+ $(postalCodeSelector).mask("?*** ***");
+ return;
+ }
+ if(countryCode=='US') {// mask for united states
+ $(phoneSelector).mask("?(999) 999-9999");
+ $(postalCodeSelector).mask("?99999");
+ return;
+ }
+
+ $(phoneSelector).unmask();
+ $(postalCodeSelector).unmask();
+
+
+}
+
+function bindCalculateShipping() {
+
+ $(".shippingOption").click(function() {
+ console.log('shipping module code ' + $(this).attr('code'));
+ $('#shippingModule').val($(this).attr('code'));
+ calculateTotal();
+ });
+
+}
+
+
+
+function bindActions() {
+
+ $("#clickAgreement").click(function(){
+ $("#customer-agreement-area").slideToggle("slow");
+ });
+
+ bindCalculateShipping();
+
+ $("input[type='text']").on("change keyup paste", function(){
+ isFormValid();
+ });
+
+ $("input[type='checkbox']").on("change click", function(){
+ isFormValid();
+ });
+
+ $('input[name=paymentMethodType]', checkoutFormId).click(function() {
+ isFormValid();//change payment method
+ });
+
+ $("#billingStateList").change(function() {
+ shippingQuotes();
+ })
+
+ $("#shippingStateList").change(function() {
+ shippingQuotes();
+ })
+
+ $("input[id=billingPostalCode]").on('blur input', function() {
+ if ($('#shipToBillingAdress').is(':checked')) {
+ shippingQuotes();
+ }
+ });
+
+ $("input[id=deliveryPostalCode]").on('blur input', function() {
+ if (!$('#shipToBillingAdress').is(':checked')) {
+ shippingQuotes();
+ }
+ });
+
+ //shipping / billing decision checkbox
+ $("#shipToBillingAdress").click(function() {
+ shippingQuotes();
+ if ($('#shipToBillingAdress').is(':checked')) {
+ $('#deliveryBox').hide();
+ isFormValid();
+ } else {
+ $('#deliveryBox').show();
+ isFormValid();
+ }
+ });
+
+ $("#submitOrder").click(function(e) {
+ e.preventDefault();//do not submit form
+ formValid = isFormValid();
+ resetErrorMessage();
+ setCountrySettings('billing',$('.billing-country-list').val());
+ setCountrySettings('delivery',$('.shipping-country-list').val());
+ //$('#submitOrder').disable();
+
+ //confirm shipping
+ if(formValid) {
+ //validateConfirmShipping(response);
+ if($('#confirm_address')) {
+ //add confirm address section to shipping
+ }
+ }
+
+
+ $('#pageContainer').showLoading();
+ //var paymentSelection = $('input[name=paymentMethodType]:checked', checkoutFormId).val();
+ var paymentSelection = $('#paymentModule').val();
+ console.log('Selection ' + paymentSelection);
+ if(paymentSelection.indexOf('paypal') >= 0) {
+
+ //console.log('PP ');
+ $('#paymentMethodType').val('PAYPAL');
+ initPayment('PAYPAL');
+ }
+ else if(paymentSelection.indexOf('stripe') >= 0) {
+ //console.log('Stripe ');
+ $('#paymentMethodType').val('CREDITCARD');
+ initStripePayment();
+ }
+ else if(paymentSelection.indexOf('beanstream') >= 0) {
+ //console.log('Beanstream ');
+ $('#paymentMethodType').val('CREDITCARD');
+ } else {
+ //submit form
+ console.log('Checkout ');
+ $('#pageContainer').hideLoading();
+ $('#checkoutForm').submit();
+
+ }
+ });
+}
+
+
+/**
+ * Calculates a shipping quote based on customer address
+ */
+function shippingQuotes(){
+
+ resetErrorMessage();
+ $('#pageContainer').showLoading();
+ var data = $(checkoutFormId).serialize();
+ //log(data);
+
+ formValid = false;
+
+
+ $.ajax({
+ type: 'POST',
+ url: '<c:url value="/shop/order/shippingQuotes.html"/>',
+ data: data,
+ cache: false,
+ dataType: 'json',
+ success: function(response){
+
+ $('#pageContainer').hideLoading();
+ if(response.errorMessage!=null && response.errorMessage!='') {
+
+ //log('Error message !!! ' + response.errorMessage);
+ showErrorMessage(response.errorMessage);
+ //reset shipping options
+ $('#shippingSection').html('');
+ $('#shippingSection').html(response.errorMessage);
+
+ $('#confirm_address').remove();
+ $("#confirmShippingAddress").hide();
+
+ return;
+ }
+
+ //log(response);
+
+ $('#summary-table tr.subt').remove();
+ $('#totalRow').html('');
+ var subTotalsTemplate = Hogan.compile(document.getElementById("subTotalsTemplate").innerHTML);
+ var totalTemplate = Hogan.compile(document.getElementById("totalTemplate").innerHTML);
+ var quotesTemplate = Hogan.compile(document.getElementById("shippingTemplate").innerHTML);
+ var subTotalsRendered = subTotalsTemplate.render(response);
+ var totalRendred = totalTemplate.render(response);
+
+ if(response.shippingSummary!=null) {
+
+ //create extra fields
+ summary = response.shippingSummary;
+ for(var i = 0; i< summary.shippingOptions.length; i++) {
+ if(summary.shippingOptions[i].optionId == summary.selectedShippingOption.optionId) {
+ summary.shippingOptions[i].checked = true;
+ break;
+ }
+ }
+ if(summary.handling && summary.handling>0) {
+ summary.showHandling = true;
+ }
+
+
+ //render summary
+ $('#shippingSection').html('');
+ var quotesRendered = quotesTemplate.render(response.shippingSummary);
+ //console.log(quotesRendered);
+ $('#shippingSection').html(quotesRendered);
+ bindCalculateShipping();
+ ///bindActions();//TODO NO NO NO
+
+ }
+ $('#summaryRows').append(subTotalsRendered);
+ $('#totalRow').html(totalRendred);
+ formValid = isFormValid();
+
+ //if(formValid && response.shippingSummary!=null) {
+ validateConfirmShipping(response);
+ //}
+
+ },
+ error: function(xhr, textStatus, errorThrown) {
+ $('#pageContainer').hideLoading();
+ alert('error ' + errorThrown);
+ }
+
+ });
+
+}
+
+function initPayment(paymentSelection) {
+ var url = '<c:url value="/shop/order/payment/init/"/>' + paymentSelection + '.html';
+ var data = $(checkoutFormId).serialize();
+ $.ajax({
+ type: 'POST',
+ url: url,
+ data: data,
+ cache: false,
+ dataType: 'json',
+ success: function(response){
+ //$('#submitOrder').enable();
+ $('#pageContainer').hideLoading();
+ var resp = response.response;
+ var status = resp.status;
+ //console.log(status);
+ if(status==0 || status ==9999) {
+
+ var data = resp.url;
+ //console.log(resp.url);
+ location.href=resp.url;
+
+ } else if(status==-2) {//validation issues
+
+ //console.log(resp.validations);
+ var globalMessage = '';
+ for(var i = 0; i< resp.validations.length; i++) {
+ var fieldName = resp.validations[i].field;
+ var message = resp.validations[i].message;
+ //console.log(fieldName + ' - ' + message);
+ //query for the field
+ var f = $(document.getElementById('error-'+fieldName));
+ if(f) {
+ f.html(message);
+ }
+ globalMessage = globalMessage + message + '<br/>';
+
+ }
+
+ showResponseErrorMessage(globalMessage);
+
+
+ } else {
+ //console.log('Wrong status ' + status);
+ showResponseErrorMessage('<s:message code="error.code.99" text="An error message occured while trying to process the payment (99)"/>');
+
+ }
+ },
+ error: function(xhr, textStatus, errorThrown) {
+ $('#pageContainer').hideLoading();
+ alert('error ' + errorThrown);
+ }
+
+ });
+
+}
+
+function buildMailAddress(address) {
+
+ if(address==null) {
+ return null;
+ }
+
+ var addr = '';
+
+ //civic address
+ addr = address.address + '\r\n';
+
+
+ //municipality/town state/province postal code
+ addr = addr + address.zone + ' ' + address.postalCode + '\r\n';
+
+ //country
+ addr = addr + address.country;
+
+ return addr;
+}
+
+function validateConfirmShipping(shopOrder) {
+
+ postalCode = null;
+ shippingDistance = null;
+ shippingMethod = null;
+
+ if(shopOrder!=null) {
+
+ if(shopOrder.shippingSummary.selectedShippingOption!=null) {
+ shippingMethod = shopOrder.shippingSummary.selectedShippingOption.shippingModuleCode;
+ }
+
+ //build address object
+
+ //displayConfirmShipping(shippingDistance,postalCode,shippingMethod);
+ var delivery = shopOrder.shippingSummary.delivery;
+ displayConfirmShipping(delivery,shippingMethod);
+
+ }
+
+}
+
+function displayConfirmShipping(delivery,shippingMethod) {
+
+ var $form = $('#checkoutForm');
+ $('#confirm_address').remove();
+ $("#confirmShippingAddress").hide();
+ var deliveryAddress = buildMailAddress(delivery);
+ //alert('Use distance: ' + useDistanceWindow + ' lat: ' + delivery.latitude + ' lon: ' + delivery.longitude + ' postal code: ' + delivery.postalCode + ' shipping method: ' + shippingMethod);
+
+ /**
+ * quote =! storePickup
+ * postal code
+ * latitude
+ **/
+
+ /**
+ * If distance is configured and has been set in the quote
+ * confirm the shipping address on a Map
+ **/
+ if(useDistanceWindow) {
+ /**
+ * Requires a shipping quote (response.shippingSummary)
+ * and no order form validation error
+ * then display the shipping confirmation window
+ **/
+ if(delivery!=null && delivery.latitude!=null && delivery.longitude && delivery.postalCode!=null && shippingMethod!=null) {
+ if(shippingMethod!='storePickUp') {
+
+
+ $("#confirmShippingAddress").show();
+
+ var distanceField = '<input type="hidden" id="confirm_address" name="confirm_address" value="true" />';
+ $form.append(distanceField);
+ //longitude
+ //latitude
+ //google maps
+ var lat = Number(delivery.latitude);
+ var lon = Number(delivery.longitude);
+
+ var myLatlng = new google.maps.LatLng(lat,lon);
+ var mapOptions = {
+ zoom: 18,
+ center: myLatlng
+ }
+ var map = new google.maps.Map(document.getElementById("confirmShippingAddress"), mapOptions);
+
+ var marker = new google.maps.Marker({
+ position: myLatlng,
+ title:deliveryAddress
+ });
+
+ // To add the marker to the map, call setMap();
+ marker.setMap(map);
+
+
+
+ //var map;
+ //function initMap() {
+ //map = new google.maps.Map(document.getElementById('confirmShippingAddress'), {
+ // center: {lat: lat, lng: lon},
+ // zoom: 18
+ //});
+
+ $("#confirmShippingAddress").show();
+ }
+ }
+
+
+ }
+
+}
+
+//when changing a shipping method
+function calculateTotal(){
+ resetErrorMessage();
+ $('#pageContainer').showLoading();
+ var data = $(checkoutFormId).serialize();
+ //console.log(data);
+ formValid = false;
+
+ $.ajax({
+ type: 'POST',
+ url: '<c:url value="/shop/order/calculateOrderTotal.html"/>',
+ data: data,
+ cache: false,
+ dataType: 'json',
+ success: function(response){
+
+ $('#pageContainer').hideLoading();
+ if(response.errorMessage!==null && response.errorMessage!=='') {
+ showErrorMessage(response.errorMessage);
+ return;
+ }
+
+ //console.log(response);
+
+ $('#summary-table tr.subt').remove();
+ $('#totalRow').html('');
+ var subTotalsTemplate = Hogan.compile(document.getElementById("subTotalsTemplate").innerHTML);
+ var totalTemplate = Hogan.compile(document.getElementById("totalTemplate").innerHTML);
+ var subTotalsRendered = subTotalsTemplate.render(response);
+ var totalRendred = totalTemplate.render(response);
+
+
+ //console.log(rendered);
+ $('#summaryRows').append(subTotalsRendered);
+ $('#totalRow').html(totalRendred);
+ formValid = isFormValid();
+ validateConfirmShipping(response);
+ },
+ error: function(xhr, textStatus, errorThrown) {
+ $('#pageContainer').hideLoading();
+ console.log('error ' + errorThrown);
+ }
+
+ });
+}
+
+
+
+$(document).ready(function() {
+
+ $("#confirmShippingAddress").hide();
+
+ formValid = false;
+
+ <!--
+ //can use masked input for phone (USA - CANADA)
+ -->
+ formValid = isFormValid();
+
+ setPaymentModule('${order.defaultPaymentMethodCode}')
+
+ bindActions();
+
+
+ //$("input[type='text']").on("change keyup paste", function(){
+ // isFormValid();
+ //});
+
+ //$("input[type='checkbox']").on("change click", function(){
+ // isFormValid();
+ //});
+
+ <c:if test="${order.customer.billing.country!=null}">
+ $('.billing-country-list').val('${order.customer.billing.country}');
+ setCountrySettings('billing','${order.customer.billing.country}');
+ </c:if>
+ <c:if test="${order.customer.delivery.country!=null}">
+ $('.shipping-country-list').val('${order.customer.delivery.country}');
+ setCountrySettings('delivery','${order.customer.delivery.country}');
+ </c:if>
+
+ <!-- customer state is text -->
+ <c:if test="${order.customer.billing.stateProvince!=null && order.customer.billing.stateProvince!=null !=''}">
+ $('#billingStateList').hide();
+ $('#billingStateProvince').show();
+ $('#billingStateProvince').val('<c:out value="${order.customer.billing.stateProvince}"/>');
+ </c:if>
+ <!-- customer state is a know state -->
+ <c:if test="${order.customer.billing.stateProvince==null || order.customer.billing.stateProvince==''}">
+ $('#billingStateList').show();
+ $('#billingStateProvince').hide();
+ getZones('#billingStateList','#billingStateProvince','<c:out value="${order.customer.billing.country}" />','<c:out value="${order.customer.billing.zone}" />', null);
+ </c:if>
+
+ <c:if test="${order.customer.delivery.stateProvince!=null && order.customer.delivery.stateProvince!=''}">
+ $('#deliveryStateList').hide();
+ $('#deliveryStateProvince').show();
+ $('#deliveryStateProvince').val('<c:out value="${order.customer.delivery.stateProvince}"/>');
+ </c:if>
+
+ <c:if test="${order.customer.delivery.stateProvince==null || order.customer.delivery.stateProvince==''}">
+ $('#deliveryStateList').show();
+ $('#deliveryStateProvince').hide();
+ getZones('#deliveryStateList','#deliveryStateProvince','<c:out value="${order.customer.delivery.country}" />','<c:out value="${order.customer.billing.zone}" />', null);
+ </c:if>
+
+ $(".billing-country-list").change(function() {
+ getZones('#billingStateList','#billingStateProvince',$(this).val(),'<c:out value="${order.customer.billing.zone}" />', shippingQuotes);
+ setCountrySettings('billing',$(this).val());
+ })
+
+ $(".shipping-country-list").change(function() {
+ getZones('#deliveryStateList','#deliveryStateProvince',$(this).val(),'<c:out value="${order.customer.delivery.zone}" />', shippingQuotes);
+ setCountrySettings('delivery',$(this).val());
+ })
+
+ //if($('#billingPostalCode').val()!=null || $('#deliveryPostalCode').val()!=null) {
+ //console.log('billing or delivery set');
+ //shippingQuotes();//TODO issue NPE
+ //}
+
+
+ //do we have a shipping address pre populated with a postal code
+ //var deliveryPostalCode = null;
+ var address = null;
+ <c:if test="${deliveryAddress!=null}">
+ //deliveryPostalCode='<c:out value="${shippingQuote.deliveryAddress.postalCode}"/>';
+ address = {address:'<c:out value="${deliveryAddress.address}"/>',postalCode:'<c:out value="${deliveryAddress.postalCode}"/>',province:'<c:out value="${deliveryAddress.provinceName}"/>',country:'<c:out value="${deliveryAddress.countryName}"/>'};
+ </c:if>
+
+ <c:if test="${shippingQuote.deliveryAddress!=null}">
+ address.latitude='<c:out value="${shippingQuote.deliveryAddress.latitude}"/>';
+ address.longitude='<c:out value="${shippingQuote.deliveryAddress.longitude}"/>';
+ </c:if>
+
+ //selected quote is not pickup
+ var shippingMethod = null;
+ <c:if test="${shippingQuote.shippingModuleCode!=null}">
+ shippingMethod='<c:out value="${shippingQuote.shippingModuleCode}"/>';
+ </c:if>
+
+
+
+ //console.log(address);
+ displayConfirmShipping(address,shippingMethod);
+
+
+});
+
+
+
+
+</script>
+
+ <div id="main-content" class="container row-fluid">
+ <h1 class="checkout-title"><s:message code="label.checkout" text="Checkout" /></h1>
+ <sec:authorize access="!hasRole('AUTH_CUSTOMER') and !fullyAuthenticated">
+ <p class="muted common-row"><s:message code="label.checkout.logon" text="Logon or signup to simplify the online purchase process!"/></p>
+ </sec:authorize>
+
+ <c:set var="commitUrl" value="${pageContext.request.contextPath}/shop/order/commitOrder.html"/>
+ <form:form id="checkoutForm" method="POST" enctype="multipart/form-data" commandName="order" action="${commitUrl}">
+
+
+ <div class="row-fluid common-row" id="checkout">
+ <div class="span12 col-md-12 no-padding">
+
+ <!-- If error messages -->
+ <div id="checkoutError" class="<c:if test="${errorMessages!=null}">alert alert-error alert-danger </c:if>">
+ <c:if test="${errorMessages!=null}">
+ <c:out value="${errorMessages}" />
+ </c:if>
+ </div>
+ <!--alert-error-->
+
+ <!-- row fluid span -->
+ <div class="row-fluid">
+ <!-- left column -->
+ <div class="span8 col-md-8 no-padding-left">
+
+ <!-- Billing box -->
+ <div id="shippingBox" class="checkout-box">
+ <span class="box-title">
+ <p class="p-title"><s:message code="label.customer.billinginformation" text="Billing information"/></p>
+ </span>
+
+
+
+ <!-- First name - Last name -->
+ <div class="row-fluid common-row row">
+ <div class="span4 col-md-4">
+
+ <div class="control-group form-group">
+ <label><s:message code="label.generic.firstname" text="First Name"/></label>
+ <div class="controls">
+ <s:message code="NotEmpty.customer.firstName" text="First name is required" var="msgFirstName"/>
+ <form:input id="customer.firstName" cssClass="input-large required form-control form-control-lg" path="customer.billing.firstName" title="${msgFirstName}"/>
+ <form:errors path="customer.billing.firstName" cssClass="error" />
+ <span id="error-customer.billing.firstName" class="error"></span>
+ </div>
+ </div>
+ </div>
+ <div class="span4 col-md-4">
+ <div class="control-group form-group">
+ <label><s:message code="label.generic.lastname" text="Last Name"/></label>
+ <div class="controls">
+ <s:message code="NotEmpty.customer.lastName" text="Last name is required" var="msgLastName"/>
+ <form:input id="customer.lastName" cssClass="input-large required form-control form-control-lg" maxlength="32" path="customer.billing.lastName" title="${msgLastName}" />
+ <form:errors path="customer.billing.lastName" cssClass="error" />
+ <span id="error-customer.billing.lastName" class="error"></span>
+ </div>
+ </div>
+ </div>
+ </div>
+
+
+ <!-- email company -->
+ <div class="row-fluid common-row row">
+ <div class="span4 col-md-4">
+ <div class="control-group form-group">
+ <label><s:message code="label.generic.email" text="Email address"/></label>
+ <div class="controls">
+ <s:message code="NotEmpty.customer.emailAddress" text="Email address is required" var="msgEmail"/>
+ <form:input id="customer.emailAddress" cssClass="input-large required email form-control form-control-lg" path="customer.emailAddress" title="${msgEmail}"/>
+ <form:errors path="customer.emailAddress" cssClass="error" />
+ <span id="error-customer.emailAddress" class="error"></span>
+ </div>
+ </div>
+ </div>
+ <div class="span4 col-md-4">
+ <div class="control-group form-group">
+ <label><s:message code="label.customer.billing.company" text="Billing company"/></label>
+ <div class="controls">
+ <form:input id="customer.billing.company" cssClass="input-large form-control form-control-lg" path="customer.billing.company"/>
+ <form:errors path="customer.billing.company" cssClass="error" />
+ <span id="error-customer.billing.company" class="error"></span>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ <!-- street address -->
+ <div class="row-fluid common-row row">
+ <div class="span8 col-md-8">
+ <div class="control-group form-group">
+ <label><s:message code="label.generic.streetaddress" text="Street address"/></label>
+ <div class="controls">
+ <s:message code="NotEmpty.customer.billing.address" text="Address is required" var="msgAddress"/>
+ <form:input id="customer.billing.address" cssClass="input-xxlarge required form-control form-control-lg" path="customer.billing.address" title="${msgAddress}"/>
+ <form:errors path="customer.billing.address" cssClass="error" />
+ <span id="error-customer.billing.address" class="error"></span>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ <!-- city - postal code -->
+ <div class="row-fluid common-row row">
+ <div class="span4 col-md-4">
+ <div class="control-group form-group">
+ <label><s:message code="label.generic.city" text="City"/></label>
+ <div class="controls">
+ <s:message code="NotEmpty.customer.billing.city" text="City is required" var="msgCity"/>
+ <form:input id="customer.billing.city" cssClass="input-large required form-control form-control-lg" path="customer.billing.city" title="${msgCity}"/>
+ <form:errors path="customer.billing.city" cssClass="error" />
+ <span id="error-customer.billing.city" class="error"></span>
+ </div>
+ </div>
+ </div>
+ <div class="span4 col-md-4">
+ <div class="control-group form-group">
+ <label><s:message code="label.generic.postalcode" text="Postal code"/></label>
+ <div class="controls">
+ <s:message code="NotEmpty.customer.billing.postalCode" text="Postal code is required" var="msgPostalCode"/>
+ <form:input id="billingPostalCode" cssClass="input-large required billing-postalCode form-control form-control-lg" path="customer.billing.postalCode" title="${msgPostalCode}"/>
+ <form:errors path="customer.billing.postalCode" cssClass="error" />
+ <span id="error-customer.billing.postalCode" class="error"></span>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ <!-- state province -->
+ <div class="row-fluid common-row row">
+ <div class="span8 col-md-8">
+ <div class="control-group form-group">
+ <label><s:message code="label.generic.stateprovince" text="State / Province"/></label>
+ <div class="controls">
+ <form:select cssClass="zone-list form-control form-control-lg" id="billingStateList" path="customer.billing.zone"/>
+ <s:message code="NotEmpty.customer.billing.stateProvince" text="State / Province is required" var="msgStateProvince"/>
+ <form:input class="input-large required form-control form-control-lg" id="billingStateProvince" maxlength="100" name="billingStateProvince" path="customer.billing.stateProvince" title="${msgStateProvince}"/>
+ <form:errors path="customer.billing.stateProvince" cssClass="error" />
+ <span id="error-customer.billing.stateProvince" class="error"></span>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ <!-- country - phone - ship checkbox -->
+ <div class="row-fluid common-row row">
+ <div class="span4 col-md-4">
+ <div class="control-group form-group">
+ <label><s:message code="label.generic.country" text="Country"/></label>
+ <div class="controls">
+ <form:select cssClass="billing-country-list form-control form-control-lg" path="customer.billing.country">
+ <form:options items="${countries}" itemValue="isoCode" itemLabel="name"/>
+ </form:select>
+ </div>
+ </div>
+ </div>
+
+ <div class="span4 col-md-4">
+ <div class="control-group form-group">
+ <label><s:message code="label.generic.phone" text="Phone number"/></label>
+ <div class="controls">
+ <s:message code="NotEmpty.customer.billing.phone" text="Phone number is required" var="msgPhone"/>
+ <form:input id="customer.billing.phone" cssClass="input-large required billing-phone form-control form-control-lg" path="customer.billing.phone" title="${msgPhone}"/>
+ <form:errors path="customer.billing.phone" cssClass="error" />
+ <span id="error-customer.billing.phone" class="error"></span>
+ </div>
+ </div>
+ </div>
+
+ </div>
+
+ <c:if test="${shippingQuote!=null}">
+ <!-- display only if a shipping quote exist -->
+ <div class="row-fluid common-row row">
+ <div class="span8 col-md-8">
+ <label id="useAddress" class="checkbox">
+ <form:checkbox path="shipToBillingAdress" id="shipToBillingAdress"/>
+ <s:message code="label.customer.shipping.shipaddress" text="Ship to this address" /></label>
+ </div>
+ </div>
+ </c:if>
+ </div>
+ <!-- end billing box -->
+
+ <c:if test="${shippingQuote!=null}">
+ <br/>
+ <!-- Shipping box -->
+ <div id="deliveryBox" class="checkout-box">
+ <span class="box-title">
+ <p class="p-title"><s:message code="label.customer.shippinginformation" text="Shipping information"/></p>
+ </span>
+
+ <!-- First name - Last name -->
+ <div class="row-fluid common-row row">
+ <div class="span4 col-md-4">
+ <div class="control-group form-group">
+ <label><s:message code="label.customer.shipping.firstname" text="Shipping first name"/></label>
+ <div class="controls">
+ <s:message code="NotEmpty.customer.shipping.firstName" text="Shipping first name should not be empty" var="msgShippingFirstName"/>
+ <form:input id="customer.delivery.name" cssClass="input-xxlarge required form-control form-control-lg" path="customer.delivery.firstName" title="${msgShippingFirstName}"/>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ <div class="row-fluid common-row row">
+ <div class="span4 col-md-4">
+ <div class="control-group form-group">
+ <label><s:message code="label.customer.shipping.lastname" text="Shipping last name"/></label>
+ <div class="controls">
+ <s:message code="NotEmpty.customer.shipping.lastName" text="Shipping last name should not be empty" var="msgShippingLastName"/>
+ <form:input id="customer.delivery.name" cssClass="input-xxlarge required form-control form-control-lg" path="customer.delivery.lastName" title="${msgShippingLastName}"/>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ <!-- company -->
+ <div class="row-fluid common-row row">
+ <div class="span4 col-md-4">
+ <div class="control-group form-group">
+ <label><s:message code="label.customer.shipping.company" text="Shipping company"/></label>
+ <div class="controls">
+ <form:input id="customer.delivery.company" cssClass="input-large form-control form-control-lg" path="customer.delivery.company"/>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ <!-- street address -->
+ <div class="row-fluid common-row row">
+ <div class="span8 col-md-8">
+ <div class="control-group form-group">
+ <label><s:message code="label.customer.shipping.streetaddress" text="Shipping street address"/></label>
+ <div class="controls">
+ <s:message code="NotEmpty.customer.shipping.address" text="Shipping street address should not be empty" var="msgShippingAddress"/>
+ <form:input id="customer.delivery.address" cssClass="input-xxlarge required form-control form-control-lg" path="customer.delivery.address" title="${msgShippingAddress}"/>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ <!-- city - postal code -->
+ <div class="row-fluid common-row row">
+ <div class="span4 col-md-4">
+ <div class="control-group form-group">
+ <label><s:message code="label.customer.shipping.city" text="Shipping city"/></label>
+ <div class="controls">
+ <s:message code="NotEmpty.customer.shipping.city" text="Shipping city should not be empty" var="msgShippingCity"/>
+ <form:input id="customer.delivery.city" cssClass="input-large required form-control form-control-lg" path="customer.delivery.city" title="${msgShippingCity}"/>
+ </div>
+ </div>
+ </div>
+ <div class="span4 col-md-4">
+ <div class="control-group form-group">
+ <label><s:message code="label.customer.shipping.postalcode" text="Shipping postal code"/></label>
+ <div class="controls">
+ <s:message code="NotEmpty.customer.shipping.postalCode" text="Shipping postal code should not be empty" var="msgShippingPostal"/>
+ <form:input id="deliveryPostalCode" cssClass="input-large required delivery-postalCode form-control form-control-lg" path="customer.delivery.postalCode" title="${msgShippingPostal}"/>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ <!-- state province -->
+ <div class="row-fluid common-row row">
+ <div class="span8 col-md-8">
+ <div class="control-group form-group">
+ <label><s:message code="label.customer.shipping.zone" text="Shipping state / province"/></label>
+ <div class="controls">
+ <form:select cssClass="zone-list form-control" id="deliveryStateList" path="customer.delivery.zone"/>
+ <s:message code="NotEmpty.customer.shipping.stateProvince" text="Shipping State / Province is required" var="msgShippingState"/>
+ <form:input class="input-large required form-control form-control-lg" id="deliveryStateProvince" maxlength="100" name="shippingStateProvince" path="customer.delivery.stateProvince" title="${msgShippingState}"/>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ <!-- country -->
+ <div class="row-fluid common-row row">
+ <div class="span8 col-md-8">
+ <div class="control-group form-group">
+ <label><s:message code="label.customer.shipping.country" text="Shipping country"/></label>
+ <div class="controls">
+ <form:select cssClass="shipping-country-list form-control" path="customer.delivery.country">
+ <form:options items="${countries}" itemValue="isoCode" itemLabel="name"/>
+ </form:select>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </c:if>
+
+
+
+
+
+ <!-- Shipping box -->
+ <c:if test="${shippingQuote!=null}">
+ <!--<br/>-->
+ <!-- Shipping -->
+ <div class="checkout-box">
+ <span class="box-title">
+ <p class="p-title"><s:message code="label.shipping.fees" text="Shipping fees" /> </p>
+ </span>
+
+ <c:choose>
+ <c:when test="${fn:length(shippingQuote.shippingOptions)>0}">
+ <input type="hidden" id="shippingModule" name="shippingModule" value="${shippingQuote.shippingModuleCode}">
+ <div id="shippingSection" class="control-group">
+ <label class="control-label">
+ <s:message code="label.shipping.options" text="Shipping options"/>
+ <c:if test="${shippingQuote.handlingFees!=null && shippingQuote.handlingFees>0}">
+ (<s:message code="label.shipping.handlingfees" text="Handling fees" /> <sm:monetary value="${shippingQuote.handlingFees}"/>)
+ </c:if>
+ </label>
+ <div id="shippingOptions" class="controls">
+ <c:if test="${shippingQuote.shippingReturnCode=='NO_POSTAL_CODE'}">
+ <strong>
+ <s:message code="label.shipping.nopostalcode" text="A shipping quote will be available after filling the postal code"/>
+ </strong>
+ </c:if>
+ <c:forEach items="${shippingQuote.shippingOptions}" var="option" varStatus="status">
+ <label class="radio">
+ <input type="radio" name="selectedShippingOption.optionId" class="shippingOption" code="${option.shippingModuleCode}" id="${option.optionId}" value="${option.optionId}" <c:if test="${shippingQuote.selectedShippingOption!=null && shippingQuote.selectedShippingOption.optionId==option.optionId}">checked="checked"</c:if>>
+ <s:message code="module.shipping.${option.shippingModuleCode}" arguments="${requestScope.MERCHANT_STORE.storename}" text="${option.shippingModuleCode}"/> - ${option.optionPriceText}
+ <c:if test="${option.note!=null}">
+ <br/><small><c:out value="${option.note}"/></small>
+ </c:if>
+ </label>
+ </c:forEach>
+ </div>
+ </div>
+ </c:when>
+ <c:otherwise>
+ <c:choose>
+ <c:when test="${shippingQuote.freeShipping==true && shippingQuote.freeShippingAmount!=null}" >
+ <s:message code="label.shipping.freeshipping.over" text="Free shipping for orders over"/> <strong><sm:monetary value="${shippingQuote.freeShippingAmount}"/></strong>
+ </c:when>
+ <c:otherwise>
+ <c:choose>
+ <c:when test="${shippingQuote.shippingReturnCode=='ERROR'}">
+ <font color="red"><c:out value="${shippingQuote.quoteError}" /></font>
+ </c:when>
+ <c:otherwise>
+ <c:choose>
+ <c:when test="${shippingQuote.shippingReturnCode=='NO_SHIPPING_MODULE_CONFIGURED'}">
+ <font color="red"><s:message code="message.noshipping.configured" text="No shipping method configured"/></font>
+ </c:when>
+ <c:otherwise>
+ <c:choose>
+ <c:when test="${shippingQuote.shippingReturnCode=='NO_POSTAL_CODE'}">
+ <div id="shippingSection" class="control-group">
+ <strong>
+ <s:message code="label.shipping.nopostalcode" text="A shipping quote will be available after filling the postal code"/>
+ </strong>
+ </div>
+ </c:when>
+ <c:otherwise>
+ <strong><s:message code="label.shipping.freeshipping" text="Free shipping!"/></strong>
+ </c:otherwise>
+ </c:choose>
+ </c:otherwise>
+ </c:choose>
+ </c:otherwise>
+ </c:choose>
+ </c:otherwise>
+ </c:choose>
+ </c:otherwise>
+ </c:choose>
+ </div>
+ <!-- end shipping box -->
+ </c:if>
+ <!-- Confirm address box box -->
+ <!-- Shipping -->
+ <div class="checkout-box" id="confirmShippingAddress" style="height:250px;">
+ <!--
+ <span class="box-title">
+ <p class="p-title"><s:message code="label.customer.confirmshippingaddress" text="Shipping address confirmation" /> </p>
+ </span>
+ -->
+ </div>
+ <!-- end confirm shipping box -->
+ <br/>
+
+
+ <c:if test="${fn:length(paymentMethods)>0}">
+ <!-- payment box -->
+ <div class="checkout-box">
+ <span class="box-title">
+ <p class="p-title"><s:message code="label.payment.module.title" text="Payment method" /></p>
+ </span>
+
+ <div class="tabbable">
+ <ul class="nav nav-tabs nav-tabs-checkout">
+ <c:forEach items="${paymentMethods}" var="paymentMethod">
+ <li class="<c:choose><c:when test="${order.paymentMethodType!=null && order.paymentMethodType==paymentMethod.paymentType}">active</c:when><c:otherwise><c:if test="${order.paymentMethodType==null && paymentMethod.defaultSelected==true}">active</c:if></c:otherwise></c:choose>">
+ <a href="#${paymentMethod.paymentType}" data-toggle="tab" class="paymentTab" onClick="setPaymentModule('${paymentMethod.paymentMethodCode}');">
+ <c:choose>
+ <c:when test="${paymentMethod.paymentType=='CREDITCARD' || paymentMethod.paymentType=='PAYPAL'}">
+ <c:if test="${paymentMethod.paymentType=='CREDITCARD'}">
+ <p id="cc-img-container">
+ <img src="<c:url value="/resources/img/payment/icons/visa-straight-64px.png"/>" width="40" style="display:inline-block;">
+ <img src="<c:url value="/resources/img/payment/icons/mastercard-straight-64px.png"/>" width="40" style="display:inline-block;">
+ <img src="<c:url value="/resources/img/payment/icons/american-express-straight-64px.png"/>" width="40" style="display:inline-block;">
+ </p>
+ </c:if>
+ <c:if test="${paymentMethod.paymentType=='PAYPAL'}"><img src="<c:url value="/resources/img/payment/icons/paypal-straight-64px.png"/>" width="40"></c:if>
+ </c:when>
+ <c:otherwise>
+ <h4><s:message code="payment.type.${paymentMethod.paymentType}" text="Payment method type [payment.type.${paymentMethod.paymentType}] not defined in payment.properties" /></h4>
+ </c:otherwise>
+ </c:choose>
+ </a>
+ </li>
+ </c:forEach>
+ </ul>
+
+
+
+
+ <div class="tab-content">
+ <c:forEach items="${paymentMethods}" var="paymentMethod">
+ <div class="payment-tab tab-pane <c:choose><c:when test="${order.paymentMethodType!=null && order.paymentMethodType==paymentMethod.paymentType}">active</c:when><c:otherwise><c:if test="${order.paymentMethodType==null && paymentMethod.defaultSelected==true}">active</c:if></c:otherwise></c:choose>" id="${paymentMethod.paymentType}">
+ <c:choose>
+ <c:when test="${order.paymentMethodType!=null && order.paymentMethodType==paymentMethod.paymentType}">
+ <c:set var="paymentModule" value="${order.paymentMethodType}" scope="request"/>
+ </c:when>
+ <c:otherwise>
+ <c:if test="${order.paymentMethodType==null && paymentMethod.defaultSelected==true}">
+ <c:set var="paymentModule" value="${paymentMethod.paymentMethodCode}" scope="request"/>
+ </c:if>
+ </c:otherwise>
+ </c:choose>
+ <c:set var="selectedPaymentMethod" value="${order.paymentMethodType}" scope="request"/>
+ <c:set var="paymentMethod" value="${paymentMethod}" scope="request"/>
+
+ <!-- exception for stripe which has it's own page -->
+ <c:choose>
+ <c:when test="${paymentMethod.paymentMethodCode=='stripe'}">
+ <c:set var="pageName" value="${fn:toLowerCase(paymentMethod.paymentMethodCode)}" />
+ </c:when>
+ <c:otherwise>
+ <c:set var="pageName" value="${fn:toLowerCase(paymentMethod.paymentType)}" />
+ </c:otherwise>
+ </c:choose>
+ <jsp:include page="/pages/shop/common/checkout/${pageName}.jsp" />
+
+ </div>
+ </c:forEach>
+ <input type="hidden" id="paymentMethodType" name="paymentMethodType" value="<c:if test="${order.paymentType!=null}"><c:out value="${order.paymentType}"/></c:if>"/>
+ <input type="hidden" id="paymentModule" name="paymentModule" value="<c:choose><c:when test="${order.paymentModule!=null}"><c:out value="${order.paymentModule}"/></c:when><c:otherwise><c:out value="${paymentModule}" /></c:otherwise></c:choose>"/>
+ </div>
+ </div>
+ </div>
+ <br/>
+ <!-- end payment box -->
+ </c:if>
+ </div>
+ <!-- end left column -->
+
+
+ <!-- Order summary right column -->
+ <div class="span4 col-md-4 no-padding">
+
+ <!-- order summary box -->
+ <div class="checkout-box">
+ <span id="summaryBox" class="box-title">
+ <p class="p-title"><s:message code="label.order.summary" text="Order summary" /></p>
+ </span>
+
+ <table id="summary-table" class="table table-condensed table-hover">
+ <thead>
+ <tr>
+ <th width="45%"><s:message code="label.order.item" text="Item" /></th>
+ <!--<th width="15%"><s:message code="label.quantity" text="Quantity" /></th>-->
+ <th width="20%"><s:message code="label.order.price" text="Price" /></th>
+ <th width="20%"><s:message code="label.order.total" text="Total" /></th>
+ </tr>
+ </thead>
+
+ <tbody id="summaryRows">
+ <c:forEach items="${cart.shoppingCartItems}" var="shoppingCartItem">
+ <tr class="item">
+ <td width="38%">
+ ${shoppingCartItem.quantity} x ${shoppingCartItem.name}
+ <c:if test="${fn:length(shoppingCartItem.shoppingCartAttributes)>0}">
+ <br/>
+ <ul>
+ <c:forEach items="${shoppingCartItem.shoppingCartAttributes}" var="option">
+ <li>${option.optionName} - ${option.optionValue}</li>
+ </c:forEach>
+ </ul>
+ </c:if>
+ </td>
+ <!--<td width="15%">${shoppingCartItem.quantity}</td>-->
+ <td width="31%"><strong>${shoppingCartItem.price}</strong></td>
+ <td width="31%"><strong>${shoppingCartItem.subTotal}</strong></td>
+ </tr>
+ </c:forEach>
+ <!-- subtotals -->
+ <c:forEach items="${order.orderTotalSummary.totals}" var="total">
+ <c:if test="${total.orderTotalCode!='order.total.total'}">
+ <tr class="subt">
+ <td colspan="2"><s:message code="${total.orderTotalCode}" text="${total.orderTotalCode}"/></td>
+ <td><strong><sm:monetary value="${total.value}" /></strong></td>
+ </tr>
+ </c:if>
+ </c:forEach>
+ </tbody>
+ </table>
+
+
+ <div id="totalRow" class="total-box">
+ <span class="total-box-grand-total">
+ <font class="total-box-label">
+ <s:message code="order.total.total" text="Total"/>
+ <font class="total-box-price"><sm:monetary value="${order.orderTotalSummary.total}"/></font>
+ </font>
+ </span>
+ </div>
+ </div>
+ <!-- end order summary box -->
+ <c:if test="${requestScope.CONFIGS['displayCustomerAgreement']==true}">
+ <!-- customer agreement -->
+ <div class="checkout-box" id="customerAgreementSection" class="">
+ <label id="customerAgreement" class="checkbox">
+ <s:message code="NotEmpty.customer.agreement" text="Please make sure you agree with terms and conditions" var="msgAgreement"/>
+ <form:checkbox path="customerAgreed" id="customerAgreed" cssClass="required" title="${msgAgreement}"/>
+ <a href="javascript:return false;" id="clickAgreement"><s:message code="label.customer.order.agreement" text="I agree with the terms and conditions" /></a>
+ </label>
+ <div id="customer-agreement-area">
+ <c:choose>
+ <c:when test="${requestScope.CONTENT['agreement']!=null}">
+ <sm:pageContent contentCode="agreement"/>
+ </c:when>
+ <c:otherwise>
+ <s:message code="message.content.missing.agreement" text="Content with code 'agreement' does not exist" />
+ </c:otherwise>
+ </c:choose>
+ </div>
+ </div>
+ </c:if>
+
+ <div id="formErrorMessage" class="alert">
+ </div>
+ <!-- Submit -->
+ <div class="form-actions">
+ <div class="pull-right">
+ <button id="submitOrder" type="button" class="btn btn-large btn-success
+ <c:if test="${errorMessages!=null}"> btn-disabled</c:if>"
+ <c:if test="${errorMessages!=null}"> disabled="true"</c:if>
+ ><s:message code="button.label.submitorder" text="Submit order"/></button>
+
+ <!-- submit can be a post or a pre ajax query -->
+ </div>
+ </div>
+
+ </div>
+ <!-- end right column -->
+
+ </div>
+ <!-- end row fluid span -->
+ </div>
+ <!-- end span 12 -->
+
+ </div>
+ <!-- end row fluid -->
+
+ </form:form>
</div>
\ No newline at end of file
diff --git a/sm-shop/src/main/webapp/pages/shop/common/checkout/confirmation.jsp b/sm-shop/src/main/webapp/pages/shop/common/checkout/confirmation.jsp
old mode 100755
new mode 100644
index d45f99b..67f01ef
--- a/sm-shop/src/main/webapp/pages/shop/common/checkout/confirmation.jsp
+++ b/sm-shop/src/main/webapp/pages/shop/common/checkout/confirmation.jsp
@@ -94,6 +94,7 @@ $(document).ready(function() {
<p class="lead"><c:out value="${ordermessage}" /></p>
+ <p class="lead"><c:out value="${ordermessageid}" /></p>
<p><c:out value="${orderemail}" /></p>
diff --git a/sm-shop/src/main/webapp/pages/shop/common/checkout/creditcard.jsp b/sm-shop/src/main/webapp/pages/shop/common/checkout/creditcard.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/shop/common/checkout/creditCardInformations.jsp b/sm-shop/src/main/webapp/pages/shop/common/checkout/creditCardInformations.jsp
old mode 100755
new mode 100644
index 08f327b..4d83b64
--- a/sm-shop/src/main/webapp/pages/shop/common/checkout/creditCardInformations.jsp
+++ b/sm-shop/src/main/webapp/pages/shop/common/checkout/creditCardInformations.jsp
@@ -26,15 +26,15 @@ response.setDateHeader ("Expires", -1);
$(document).ready(function() {
- $("#cvvImage").popover({ title: '<s:message code="label.payment.creditcard.cardcvv" text="Card validation number" />', content: img });
+ $("#cvvImage").popover({ title: '<s:message code="label.payment.creditcard.cardcvv" text="Card validation number" />', content: img, html: true });
var creditCardDiv = '#creditcard_card_number';
invalidCreditCardNumber(creditCardDiv);
$(creditCardDiv).validateCreditCard(function(result) {
invalidCreditCardNumber(creditCardDiv);
if(result.card_type!=null) {
- //console.log('CC type: ' + result.card_type.name
- // + '\nLength validation: ' + result.length_valid
- // + '\nLuhn validation: + result.luhn_valid');
+ log('CC type: ' + result.card_type.name
+ + '\nLength validation: ' + result.length_valid
+ + '\nLuhn validation: + result.luhn_valid');
if(result.luhn_valid==true && result.length_valid==true) {
validCreditCardNumber(creditCardDiv, result);
} else {
@@ -85,36 +85,36 @@ response.setDateHeader ("Expires", -1);
<label class="control-label"><s:message code="label.payment.creditcard.cardowner" text="Card Holder's Name" /></label>
<div class="controls">
<s:message code="NotEmpty.order.creditcard.name" text="Credit card holder's name is required" var="msgCardHolderName"/>
- <input type="text" id="creditcard_card_holder" name="payment['creditcard_card_holder']" class="input-xlarge required" title="${msgCardHolderName}" value="${order.payment['creditcard_card_holder']}">
+ <input type="text" id="creditcard_card_holder" name="payment['creditcard_card_holder']" class="input-xlarge required form-control form-control-50" title="${msgCardHolderName}" value="${order.payment['creditcard_card_holder']}">
</div>
</div>
-
+ <br/>
<div class="control-group">
<label class="control-label"><s:message code="label.payment.creditcard.cardnumber" text="Card number" /></label>
<s:message code="NotEmpty.order.creditcard.number" text="A valid credit card number is required" var="msgCardNumber"/>
- <div class="input-append">
+ <div class="controls input-append">
<!-- added stripe card-number -->
- <input id="creditcard_card_number" class="input-xlarge valid required" type="text" name="payment['creditcard_card_number']" autocomplete="off" title="${msgCardNumber}" data-stripe="number">
+ <input id="creditcard_card_number" class="input-xlarge valid required form-control form-control-50" type="text" name="payment['creditcard_card_number']" autocomplete="off" title="${msgCardNumber}" data-stripe="number">
<span id="creditcard_card_image" class="img-add-on"></span>
</div>
</div>
-
<div class="control-group">
<label class="control-label"><s:message code="label.payment.creditcard.cardexpiry" text="Card expiry year" /></label>
<div class="controls">
<div class="row-fluid">
<div class="span2">
<!-- added stripe expiration month -->
- <select id="creditCardDays" name="payment['creditcard_card_expirationmonth']" class="input-small" data-stripe="exp-month"></select>
+ <select id="creditCardDays" name="payment['creditcard_card_expirationmonth']" class="input-small form-control form-control-25" data-stripe="exp-month"></select>
</div>
+ <br/>
<div class="span2">
<!-- added stripe expiration year -->
- <select id="creditCardYears" name="payment['creditcard_card_expirationyear']" class="input-small" data-stripe="exp-year"></select>
+ <select id="creditCardYears" name="payment['creditcard_card_expirationyear']" class="input-small form-control form-control-25" data-stripe="exp-year"></select>
</div>
</div>
</div>
</div>
-
+ <br/>
<div class="control-group">
<label class="control-label"><s:message code="label.payment.creditcard.cardcvv" text="Card validation number" /></label>
<div class="controls">
@@ -122,10 +122,10 @@ response.setDateHeader ("Expires", -1);
<div class="span2">
<s:message code="NotEmpty.order.creditcard.cvv" text="Credit card validation digit is required" var="msgCardCvv"/>
<!-- added stripe cvc -->
- <input type="text" id="creditcard_card_cvv" name="payment['creditcard_card_cvv']" class="input-small required" autocomplete="off" maxlength="3" pattern="\d{3}" title="${msgCardCvv}" data-stripe="cvc">
+ <input type="text" id="creditcard_card_cvv" name="payment['creditcard_card_cvv']" class="input-small required form-control form-control-25" autocomplete="off" maxlength="3" pattern="\d{3}" title="${msgCardCvv}" data-stripe="cvc">
</div>
<div class="span4">
- <a href="#" id="cvvImage" rel="popover"><s:message code="label.payment.creditcard.whatiscvv" text="What is a credit card validation number?" /></a>
+ <a href="#!" id="cvvImage" rel="popover"><s:message code="label.payment.creditcard.whatiscvv" text="What is a credit card validation number?" /></a>
</div>
</div>
</div>
diff --git a/sm-shop/src/main/webapp/pages/shop/common/checkout/moneyorder.jsp b/sm-shop/src/main/webapp/pages/shop/common/checkout/moneyorder.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/shop/common/checkout/paypal.jsp b/sm-shop/src/main/webapp/pages/shop/common/checkout/paypal.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/shop/common/checkout/selectedPayment.jsp b/sm-shop/src/main/webapp/pages/shop/common/checkout/selectedPayment.jsp
old mode 100755
new mode 100644
index 95ea4ca..e9c91ea
--- a/sm-shop/src/main/webapp/pages/shop/common/checkout/selectedPayment.jsp
+++ b/sm-shop/src/main/webapp/pages/shop/common/checkout/selectedPayment.jsp
@@ -14,10 +14,11 @@ response.setDateHeader ("Expires", -1);
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
-
+ <!--
<span style="margin-left:2px;">
<input type="radio" onClick="setPaymentModule('${requestScope.paymentMethod.paymentMethodCode}');" name="paymentMethodType" value="<c:out value="${requestScope.paymentMethod.paymentType}"/>" <c:choose><c:when test="${requestScope.selectedPaymentMethod!=null && (requestScope.selectedPaymentMethod==requestScope.paymentMethod.paymentType)}"> checked</c:when><c:otherwise><c:if test="${requestScope.selectedPaymentMethod==null && requestScope.paymentMethod.defaultSelected==true}"> checked</c:if></c:otherwise></c:choose>/>
</span>
+ -->
diff --git a/sm-shop/src/main/webapp/pages/shop/common/checkout/stripe.jsp b/sm-shop/src/main/webapp/pages/shop/common/checkout/stripe.jsp
old mode 100755
new mode 100644
index 45f04c2..974a9e4
--- a/sm-shop/src/main/webapp/pages/shop/common/checkout/stripe.jsp
+++ b/sm-shop/src/main/webapp/pages/shop/common/checkout/stripe.jsp
@@ -38,18 +38,27 @@ response.setDateHeader ("Expires", -1);
if (response.error) {
// Show the errors on the form
- showResponseErrorMessage(response.error.message);
+ var orderValidationMessage = getOrderValidationMessage(response.error.code);
+ log('Validation message ' + orderValidationMessage);
+ if(orderValidationMessage == '') {
+ orderValidationMessage = error.message;
+ }
+ showResponseErrorMessage(orderValidationMessage);
$('#pageContainer').hideLoading();
$form.find('button').prop('disabled', false);
} else {
// response contains id and card, which contains additional card details
var token = response.id;
// Insert the token into the form so it gets submitted to the server
- $form.append($('<input type="hidden" name="payment['stripe_token']" />').val(token));
+ var tokenField = '<input type="hidden" name="payment[\'stripe_token\']" value="' + token +'" /><input type="hidden" name="payment[\'null_creditcard\']" value="null_creditcard"/>';
+ $form.append(tokenField);
+ //log(tokenField);
// and submit
$form.get(0).submit();
}
};
+ <c:if test="">
+ </c:if>
diff --git a/sm-shop/src/main/webapp/pages/shop/common/customer/address.jsp b/sm-shop/src/main/webapp/pages/shop/common/customer/address.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/shop/common/customer/changePassword.jsp b/sm-shop/src/main/webapp/pages/shop/common/customer/changePassword.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/shop/common/customer/customerOrdersMenu.jsp b/sm-shop/src/main/webapp/pages/shop/common/customer/customerOrdersMenu.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/shop/common/customer/customerProfileMenu.jsp b/sm-shop/src/main/webapp/pages/shop/common/customer/customerProfileMenu.jsp
old mode 100755
new mode 100644
index 6a31702..19b0e2f
--- a/sm-shop/src/main/webapp/pages/shop/common/customer/customerProfileMenu.jsp
+++ b/sm-shop/src/main/webapp/pages/shop/common/customer/customerProfileMenu.jsp
@@ -23,4 +23,5 @@ response.setDateHeader ("Expires", -1);
</a>
</li>
<li><a href="<c:url value="/shop/customer/password.html"/>"><i class="fa fa-angle-right"></i> <s:message code="menu.change-password" text="Change password"/></a></li>
+ <li><a href="<c:url value="/shop/customer/j_spring_security_logout"/>"><i class="fa fa-angle-right"></i> <s:message code="button.label.logout" text="Logout"/></a></li>
</ul>
\ No newline at end of file
diff --git a/sm-shop/src/main/webapp/pages/shop/common/customer/dashboard.jsp b/sm-shop/src/main/webapp/pages/shop/common/customer/dashboard.jsp
old mode 100755
new mode 100644
index 8c9f42a..4c409ef
--- a/sm-shop/src/main/webapp/pages/shop/common/customer/dashboard.jsp
+++ b/sm-shop/src/main/webapp/pages/shop/common/customer/dashboard.jsp
@@ -60,15 +60,15 @@ $(document).ready(function() {
<div id="main-content" class="container clearfix row-fluid">
+ <div class="row-fluid">
- <div class="span-12 col-md-12 no-padding common-row">
-
-
<c:if test="${options!=null && fn:length(options)>0}">
-
+
+ <div class="span-12 col-md-12 no-padding-left">
<div id="attributesSuccess" class="alert alert-success" style="<c:choose><c:when test="${success!=null}">display:block;</c:when><c:otherwise>display:none;</c:otherwise></c:choose>"><s:message code="message.success" text="Request successfull"/></div>
<div id="attributesError" class="alert alert-error" style="display:none;"><s:message code="message.error" text="An error occured"/></div>
<form action="#" id="attributes">
+
<div id="attributesBox" class="checkout-box">
<span class="box-title">
<p class="p-title"><s:message code="label.customer.moredetails" text="More details"/></font></p>
@@ -96,7 +96,7 @@ $(document).ready(function() {
</c:forEach>
</c:when>
<c:when test="${option.type=='Text'}">
- <input class="textAttribute form-control form-control-md" type="text" id="<c:out value="${option.id}"/>-<c:out value="${option.availableValues[0].id}"/>" name="<c:out value="${option.id}"/>-<c:out value="${option.availableValues[0].id}"/>" class="input-large" value="<c:if test="${option.defaultValue!=null}">${option.defaultValue.name}</c:if>">
+ <input class="input-medium textAttribute form-control form-control-md form-control-50" type="text" id="<c:out value="${option.id}"/>-<c:out value="${option.availableValues[0].id}"/>" name="<c:out value="${option.id}"/>-<c:out value="${option.availableValues[0].id}"/>" class="input-large" value="<c:if test="${option.defaultValue!=null}">${option.defaultValue.name}</c:if>">
</c:when>
<c:when test="${option.type=='Checkbox'}">
<c:forEach items="${option.availableValues}" var="optionValue">
@@ -110,15 +110,13 @@ $(document).ready(function() {
<span class="help-inline"></span>
</div>
-
+ </div>
</c:forEach>
<input id="customer" type="hidden" value="<c:out value="${requestScope.CUSTOMER.id}"/>" name="customer">
- <div class="short-form-actions">
- <div class="pull-left">
- <button type="submit" class="btn btn-large"><s:message code="button.label.save" text="Save"/></button>
- </div>
+ <div class="form-actions">
+ <button type="submit" class="btn btn-large"><s:message code="button.label.submit2" text="Submit"/></button>
</div>
@@ -126,7 +124,10 @@ $(document).ready(function() {
</div>
</div>
+
</form>
+ </div>
+
</c:if>
diff --git a/sm-shop/src/main/webapp/pages/shop/common/customer/editAddress.jsp b/sm-shop/src/main/webapp/pages/shop/common/customer/editAddress.jsp
old mode 100755
new mode 100644
index 4472278..bf4c04a
--- a/sm-shop/src/main/webapp/pages/shop/common/customer/editAddress.jsp
+++ b/sm-shop/src/main/webapp/pages/shop/common/customer/editAddress.jsp
@@ -119,7 +119,7 @@ function isFormValid() {
</div>
<div class="control-group form-group">
- <label><s:message code="label.customer.company" text="Company"/></label>
+ <label><s:message code="label.customer.companyname" text="Company"/></label>
<div class="controls">
<form:input cssClass="input-large form-control form-control-md" maxlength="100" path="company"/>
@@ -130,7 +130,7 @@ function isFormValid() {
<label><s:message code="label.customer.streetaddress" text="Street Address"/></label>
<div class="controls">
- <s:message code="NotEmpty.customer.address" text="Address is required" var="msgAddress"/>
+ <s:message code="NotEmpty.customer.address2" text="Address is required" var="msgAddress"/>
<form:input cssClass="input-large required form-control form-control-md" maxlength="256" path="address" title="${msgAddress}"/>
</div>
</div>
diff --git a/sm-shop/src/main/webapp/pages/shop/common/customer/logon.jsp b/sm-shop/src/main/webapp/pages/shop/common/customer/logon.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/shop/common/customer/order.jsp b/sm-shop/src/main/webapp/pages/shop/common/customer/order.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/shop/common/customer/orders.jsp b/sm-shop/src/main/webapp/pages/shop/common/customer/orders.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/shop/common/customer/register.jsp b/sm-shop/src/main/webapp/pages/shop/common/customer/register.jsp
old mode 100755
new mode 100644
index 0a57d5a..2d6dfd2
--- a/sm-shop/src/main/webapp/pages/shop/common/customer/register.jsp
+++ b/sm-shop/src/main/webapp/pages/shop/common/customer/register.jsp
@@ -22,9 +22,6 @@ response.setDateHeader ("Expires", -1);
<script type="text/javascript">
-var RecaptchaOptions = {
- theme : 'clean'
-};
$(document).ready(function() {
@@ -187,23 +184,13 @@ function isFormValid() {
</div>
<div class="control-group form-group">
- <div class="controls"><!--watch the white space in IOS!-->
- <script type="text/javascript"
- src="http://www.google.com/recaptcha/api/challenge?k=<c:out value="${recapatcha_public_key}"/>&hl=${requestScope.LANGUAGE.code}">
- </script>
- <noscript>
- <iframe
- src="http://www.google.com/recaptcha/api/noscript?k=<c:out value="${recapatcha_public_key}"/>&hl=${requestScope.LANGUAGE.code}"
- height="300" width="500" frameborder="0">
- </iframe>
- <br/>
- <form:textarea path="recaptcha_challenge_field" class="form-control" readonly="3" cols="40"/>
- <form:errors path="recaptcha_challenge_field" cssClass="error" />
-
- <input type="hidden" name="recaptcha_response_field"
- value="manual_challenge">
- </noscript>
- </div>
+ <div class="controls">
+
+ <script src="https://www.google.com/recaptcha/api.js?hl=<c:out value="${requestScope.LANGUAGE.code}"/>" async defer></script>
+
+ <div class="g-recaptcha" data-sitekey="<c:out value="${recapatcha_public_key}"/>"></div>
+
+ </div>
</div>
<div class="form-actions">
diff --git a/sm-shop/src/main/webapp/pages/shop/common/merchant/contactus.jsp b/sm-shop/src/main/webapp/pages/shop/common/merchant/contactus.jsp
old mode 100755
new mode 100644
index f01e09b..4103341
--- a/sm-shop/src/main/webapp/pages/shop/common/merchant/contactus.jsp
+++ b/sm-shop/src/main/webapp/pages/shop/common/merchant/contactus.jsp
@@ -1,278 +1,259 @@
-<%
-response.setCharacterEncoding("UTF-8");
-response.setHeader("Cache-Control","no-cache");
-response.setHeader("Pragma","no-cache");
-response.setDateHeader ("Expires", -1);
-%>
-
-<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
-<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
-<%@ taglib uri="http://www.springframework.org/tags" prefix="s" %>
-<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
-<%@ taglib uri="/WEB-INF/shopizer-tags.tld" prefix="sm" %>
-
-<%@page contentType="text/html"%>
-<%@page pageEncoding="UTF-8"%>
-
-<!--Set google map API key -->
-<c:if test="${requestScope.CONFIGS['displayStoreAddress'] == true}">
-<script type="text/javascript"
- src="https://maps.googleapis.com/maps/api/js?sensor=true">
-</script>
-</c:if>
-
-<script type="text/javascript">
-
-var RecaptchaOptions = {
- theme : 'clean'
-};
-
-
-$(document).ready(function() {
-
- isFormValid();
- $("input[type='text']").on("change keyup paste", function(){
- isFormValid();
- });
- $("#comment").on("change keyup paste", function(){
- isFormValid();
- });
-
- $("#submitContact").click(function() {
- sendContact();
- });
-
-});
-
-
-function sendContact(){
- $('#pageContainer').showLoading();
- $(".alert-error").hide();
- $(".alert-success").hide();
- var data = $('#contactForm').serialize();
- //console.log(data);
- $.ajax({
- type: 'POST',
- url: '<c:url value="/shop/store/${requestScope.MERCHANT_STORE.code}/contact"/>',
- data: data,
- cache: false,
- dataType: 'json',
- success: function(response){
-
- $('#pageContainer').hideLoading();
- if(response.errorMessage!=null && response.errorMessage!='') {
- $(".alert-error").show();
- $(".alert-success").hide();
- return;
- }
-
- $(".alert-error").hide();
- $(".alert-success").show();
- },
- error: function(xhr, textStatus, errorThrown) {
- $('#pageContainer').hideLoading();
- alert('error ' + errorThrown);
- }
-
- });
-
-}
-
-
-
-
-
- function isFormValid() {
- var $inputs = $('#contactForm').find(':input');
- var valid = true;
- var firstErrorMessage = null;
- $inputs.each(function() {
- if($(this).hasClass('required')) {
- var fieldValid = isFieldValid($(this));
- if(!fieldValid) {
- valid = false;
- }
- }
- //if has class email
- if($(this).hasClass('email')) {
- var emailValid = validateEmail($(this).val());
- //console.log('Email is valid ? ' + emailValid);
- if(!emailValid) {
- valid = false;
- }
- }
- });
-
- //console.log('Form is valid ? ' + valid);
- if(valid==false) {//disable submit button
- $('#submitContact').addClass('btn-disabled');
- $('#submitContact').prop('disabled', true);
- } else {
- $('#submitContact').removeClass('btn-disabled');
- $('#submitContact').prop('disabled', false);
- }
- }
-
-
- function isFieldValid(field) {
- var validateField = true;
-
- var fieldId = field.prop('id');
- var value = field.val();
-
- //console.log('Check id ' + fieldId + ' and value ' + value);
- if(!emptyString(value)) {
- field.css('background-color', '#FFF');
- return true;
- } else {
- field.css('background-color', '#FFC');
- return false;
- }
- }
-
-
-
-</script>
-
-
- <div id="main-content" class="container clearfix">
- <h1 class="contact-title"><s:message code="label.customer.contactus" text="Contact us"/></h1>
- <div id="mainContactUsRow" class="row-fluid common-row">
-
- <div class="span6 col-md-7">
-
- <form:form action="#" method="POST" id="contactForm" class="form-horizontal" name="contactForm" commandName="contact">
- <div id="store.success" class="alert alert-success" style="display:none;"><s:message code="message.email.success" text="Your message has been sent"/></div>
- <div id="store.error" class="alert alert-error" style="display:none;"><s:message code="message.email.success" text="An error occurred while sending your message, pleas try again later"/></div>
- <form:errors id="contactForm" path="*" cssClass="alert alert-error" element="div" />
- <fieldset>
- <div class="control-group form-group">
- <label for="inputName" class="control-label"><s:message code="label.entity.name" text="Name"/></label>
- <div class="controls">
- <s:message code="NotEmpty.customer.name" text="Name is required" var="msgName"/>
- <form:input path="name" cssClass="required form-control form-control-md" id="name" title="${msgName}"/>
- <form:errors path="name" cssClass="error" />
- </div>
- </div>
- <div class="control-group form-group">
- <label for="inputEmail" class="control-label"><s:message code="label.generic.email" text="Email address"/></label>
- <div class="controls">
- <form:input path="email" cssClass="required form-control form-control-md" id="email"/>
- <form:errors path="email" cssClass="error" />
- </div>
- </div>
- <div class="control-group form-group">
- <label for="inputEmail" class="control-label"><s:message code="label.generic.subject" text="Subject"/></label>
- <div class="controls">
- <form:input path="subject" cssClass="required form-control form-control-md" id="subject"/>
- <form:errors path="subject" cssClass="error" />
- </div>
- </div>
- <div class="control-group form-group">
- <label class="control-label" for="textarea"><s:message code="label.generic.comments" text="Comments"/></label>
- <div class="controls">
- <form:textarea path="comment" cssClass="span8 required form-control form-control-md" rows="10" id="comment"/>
- </div>
- </div>
- <div class="control-group form-group">
- <div class="controls">
- <!--watch the white space in IOS!-->
- <script type="text/javascript"
- src="http://www.google.com/recaptcha/api/challenge?k=<c:out value="${recapatcha_public_key}"/>&hl=${requestScope.LANGUAGE.code}">
-
- </script>
- <noscript>
- <iframe
- src="http://www.google.com/recaptcha/api/noscript?k=<c:out value="${recapatcha_public_key}"/>&hl=${requestScope.LANGUAGE.code}"
- height="300" width="500" frameborder="0"> </iframe>
- <br />
- <form:textarea path="captchaResponseField" readonly="3"
- cols="40" />
- <form:errors path="captchaResponseField" cssClass="error" />
-
- <input type="hidden" name="captchaChallengeField"
- value="manual_challenge">
- </noscript>
- </div>
- </div>
-
- <div class="form-actions">
- <input id="submitContact" type="button" value="<s:message code="label.generic.send" text="Send"/>" name="register" class="btn btn-large">
- </div>
- </fieldset>
- </form:form>
-
-
-
- </div>
-<!-- END LEFT-SIDE CONTACT FORM AREA -->
-
-
-<!-- BEGIN RIGHT-SIDE CONTACT FORM AREA -->
- <div class="contact-info span4 offset1 col-md-4">
- <!-- COMPANY ADDRESS -->
- <c:if test="${requestScope.CONFIGS['displayStoreAddress'] == true}">
- <address>
- <div itemscope itemtype="http://schema.org/Organization">
- <h2 itemprop="name"><c:out value="${requestScope.MERCHANT_STORE.storename}"/></h2><br/>
- <div itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
- <span itemprop="streetAddress"><c:out value="${requestScope.MERCHANT_STORE.storeaddress}"/> <c:out value="${requestScope.MERCHANT_STORE.storecity}"/></span><br/>
- <span itemprop="addressLocality"><c:choose><c:when test="${not empty requestScope.MERCHANT_STORE.storestateprovince}"><c:out value="${requestScope.MERCHANT_STORE.storestateprovince}"/></c:when><c:otherwise><script>$.ajax({url: "<c:url value="/shop/reference/zoneName"/>",type: "GET",data: "zoneCode=${requestScope.MERCHANT_STORE.zone.code}",success: function(data){$('#storeZoneName').html(data)}})</script><span id="storeZoneName"><c:out value="${requestScope.MERCHANT_STORE.zone.code}"/></span></c:otherwise></c:choose>,
- <span id="storeCountryName"><script>$.ajax({url: "<c:url value="/shop/reference/countryName"/>",type: "GET",data: "countryCode=${requestScope.MERCHANT_STORE.country.isoCode}",success: function(data){$('#storeCountryName').html(data)}})</script></span></span><br/>
- <span itemprop="postalCode"><c:out value="${requestScope.MERCHANT_STORE.storepostalcode}"/></span><br/>
- <abbr title="Phone"><s:message code="label.generic.phone" text="Phone" /></abbr>: <span itemprop="telephone"><c:out value="${requestScope.MERCHANT_STORE.storephone}"/></span>
- </div>
- </div>
- </address>
- </c:if>
-
- </div>
-<!-- END RIGHT-SIDE CONTACT FORM AREA -->
-<!-- CUSTOM CONTENT -->
- <div class="row-fluid common-row">
- <c:if test="${content!=null}">
- <br/>
- <p>
- <c:out value="${content.description}" escapeXml="false"/>
- </p>
- <br/>
- </c:if>
- <br/>
- <div class="contactMapCanvas" id="map_canvas" style="width:600px; height:300px"></div>
-
- </div>
-
-
-<!-- GOOGLE MAP -->
-<c:if test="${requestScope.CONFIGS['displayStoreAddress'] == true}">
-
-
-<script>
-
-var address = '<c:out value="${requestScope.MERCHANT_STORE.storeaddress}"/> <c:out value="${requestScope.MERCHANT_STORE.storecity}"/> <c:out value="${requestScope.MERCHANT_STORE.zone.code}"/> <c:out value="${requestScope.MERCHANT_STORE.storepostalcode}"/>';
-
-if(address!=null) {
- geocoder = new google.maps.Geocoder();
- var mapOptions = {
- zoom: 8,
- mapTypeId: google.maps.MapTypeId.ROADMAP
- }
- map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);
-
- geocoder.geocode( { 'address': address}, function(results, status) {
- if (status == google.maps.GeocoderStatus.OK) {
- map.setCenter(results[0].geometry.location);
- var marker = new google.maps.Marker({
- map: map,
- position: results[0].geometry.location
- });
- } else {
- alert("Geocode was not successful for the following reason: " + status);
- }
- });
-}
-
-</script>
-
-</c:if>
- </div>
+<%
+response.setCharacterEncoding("UTF-8");
+response.setHeader("Cache-Control","no-cache");
+response.setHeader("Pragma","no-cache");
+response.setDateHeader ("Expires", -1);
+%>
+
+<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
+<%@ taglib uri="http://www.springframework.org/tags" prefix="s" %>
+<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
+<%@ taglib uri="/WEB-INF/shopizer-tags.tld" prefix="sm" %>
+
+<%@page contentType="text/html"%>
+<%@page pageEncoding="UTF-8"%>
+
+<!--Set google map API key -->
+<c:if test="${requestScope.CONFIGS['displayStoreAddress'] == true}">
+<script type="text/javascript"
+ src="https://maps.googleapis.com/maps/api/js?sensor=true">
+</script>
+</c:if>
+
+<script type="text/javascript">
+
+
+$(document).ready(function() {
+
+ isFormValid();
+ $("input[type='text']").on("change keyup paste", function(){
+ isFormValid();
+ });
+ $("#comment").on("change keyup paste", function(){
+ isFormValid();
+ });
+
+ $("#submitContact").click(function() {
+ sendContact();
+ });
+
+});
+
+
+function sendContact(){
+ $('#pageContainer').showLoading();
+ $(".alert-error").hide();
+ $(".alert-success").hide();
+ var data = $('#contactForm').serialize();
+ //console.log(data);
+ $.ajax({
+ type: 'POST',
+ url: '<c:url value="/shop/store/${requestScope.MERCHANT_STORE.code}/contact"/>',
+ data: data,
+ cache: false,
+ dataType: 'json',
+ success: function(response){
+
+ $('#pageContainer').hideLoading();
+ if(response.errorMessage!=null && response.errorMessage!='') {
+ $(".alert-error").show();
+ $(".alert-success").hide();
+ return;
+ }
+
+ $(".alert-error").hide();
+ $(".alert-success").show();
+ },
+ error: function(xhr, textStatus, errorThrown) {
+ $('#pageContainer').hideLoading();
+ alert('error ' + errorThrown);
+ }
+
+ });
+
+}
+
+
+
+
+
+ function isFormValid() {
+ var $inputs = $('#contactForm').find(':input');
+ var valid = true;
+ var firstErrorMessage = null;
+ $inputs.each(function() {
+ if($(this).hasClass('required')) {
+ var fieldValid = isFieldValid($(this));
+ if(!fieldValid) {
+ valid = false;
+ }
+ }
+ //if has class email
+ if($(this).hasClass('email')) {
+ var emailValid = validateEmail($(this).val());
+ //console.log('Email is valid ? ' + emailValid);
+ if(!emailValid) {
+ valid = false;
+ }
+ }
+ });
+
+ //console.log('Form is valid ? ' + valid);
+ if(valid==false) {//disable submit button
+ $('#submitContact').addClass('btn-disabled');
+ $('#submitContact').prop('disabled', true);
+ } else {
+ $('#submitContact').removeClass('btn-disabled');
+ $('#submitContact').prop('disabled', false);
+ }
+ }
+
+
+ function isFieldValid(field) {
+ var validateField = true;
+
+ var fieldId = field.prop('id');
+ var value = field.val();
+
+ //console.log('Check id ' + fieldId + ' and value ' + value);
+ if(!emptyString(value)) {
+ field.css('background-color', '#FFF');
+ return true;
+ } else {
+ field.css('background-color', '#FFC');
+ return false;
+ }
+ }
+
+
+
+</script>
+
+
+ <div id="main-content" class="container clearfix">
+ <h1 class="contact-title"><s:message code="label.customer.contactus" text="Contact us"/></h1>
+ <div id="mainContactUsRow" class="row-fluid common-row">
+
+ <div class="span6 col-md-7">
+
+ <form:form action="#" method="POST" id="contactForm" class="form-horizontal" name="contactForm" commandName="contact">
+ <div id="store.success" class="alert alert-success" style="display:none;"><s:message code="message.email.success" text="Your message has been sent"/></div>
+ <div id="store.error" class="alert alert-error" style="display:none;"><s:message code="message.email.success" text="An error occurred while sending your message, pleas try again later"/></div>
+ <form:errors id="contactForm" path="*" cssClass="alert alert-error" element="div" />
+ <fieldset>
+ <div class="control-group form-group">
+ <label for="inputName" class="control-label"><s:message code="label.entity.name" text="Name"/></label>
+ <div class="controls">
+ <s:message code="NotEmpty.customer.name" text="Name is required" var="msgName"/>
+ <form:input path="name" cssClass="required form-control form-control-md" id="name" title="${msgName}"/>
+ <form:errors path="name" cssClass="error" />
+ </div>
+ </div>
+ <div class="control-group form-group">
+ <label for="inputEmail" class="control-label"><s:message code="label.generic.email" text="Email address"/></label>
+ <div class="controls">
+ <form:input path="email" cssClass="required form-control form-control-md" id="email"/>
+ <form:errors path="email" cssClass="error" />
+ </div>
+ </div>
+ <div class="control-group form-group">
+ <label for="inputEmail" class="control-label"><s:message code="label.generic.subject" text="Subject"/></label>
+ <div class="controls">
+ <form:input path="subject" cssClass="required form-control form-control-md" id="subject"/>
+ <form:errors path="subject" cssClass="error" />
+ </div>
+ </div>
+ <div class="control-group form-group">
+ <label class="control-label" for="textarea"><s:message code="label.generic.comments" text="Comments"/></label>
+ <div class="controls">
+ <form:textarea path="comment" cssClass="span8 required form-control form-control-md" rows="10" id="comment"/>
+ </div>
+ </div>
+ <div class="control-group form-group">
+ <div class="controls">
+
+ <script src="https://www.google.com/recaptcha/api.js?hl=<c:out value="${requestScope.LANGUAGE.code}"/>" async defer></script>
+
+ <div class="g-recaptcha" data-sitekey="<c:out value="${recapatcha_public_key}"/>"></div>
+
+ </div>
+ </div>
+
+ <div class="form-actions">
+ <input id="submitContact" type="button" value="<s:message code="label.generic.send" text="Send"/>" name="register" class="btn btn-large">
+ </div>
+ </fieldset>
+ </form:form>
+
+
+<!-- CUSTOM CONTENT -->
+ <div class="row-fluid common-row">
+ <div class="contactMapCanvas" id="map_canvas" style="width:600px; height:300px"></div>
+ </div>
+
+
+
+ </div>
+<!-- END LEFT-SIDE CONTACT FORM AREA -->
+
+
+<!-- BEGIN RIGHT-SIDE CONTACT FORM AREA -->
+ <div class="contact-info span4 offset1 col-md-4">
+ <!-- COMPANY ADDRESS -->
+ <c:if test="${requestScope.CONFIGS['displayStoreAddress'] == true}">
+ <jsp:include page="/pages/shop/common/preBuiltBlocks/storeAddress.jsp"/>
+ </c:if>
+ <c:if test="${requestScope.CONTENT['contactUsDetails']!=null}">
+ <br/>
+ <sm:pageContent contentCode="contactUsDetails"/>
+ </c:if>
+ <c:if test="${content!=null}">
+ <p>
+ <c:out value="${content.description}" escapeXml="false"/>
+ </p>
+ <br/>
+ </c:if>
+
+ </div>
+
+<!-- END RIGHT-SIDE CONTACT FORM AREA -->
+
+
+
+<!-- GOOGLE MAP -->
+<c:if test="${requestScope.CONFIGS['displayStoreAddress'] == true}">
+
+
+
+
+<script>
+
+var address = '<c:out value="${requestScope.MERCHANT_STORE.storeaddress}"/> <c:out value="${requestScope.MERCHANT_STORE.storecity}"/> <c:out value="${requestScope.MERCHANT_STORE.zone.code}"/> <c:out value="${requestScope.MERCHANT_STORE.storepostalcode}"/>';
+
+if(address!=null) {
+ geocoder = new google.maps.Geocoder();
+ var mapOptions = {
+ zoom: 8,
+ mapTypeId: google.maps.MapTypeId.ROADMAP
+ }
+ map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);
+
+ geocoder.geocode( { 'address': address}, function(results, status) {
+ if (status == google.maps.GeocoderStatus.OK) {
+ map.setCenter(results[0].geometry.location);
+ var marker = new google.maps.Marker({
+ map: map,
+ position: results[0].geometry.location
+ });
+ } else {
+ alert("Geocode was not successful for the following reason: " + status);
+ }
+ });
+}
+
+</script>
+
+</c:if>
+ </div>
+ </div>
\ No newline at end of file
diff --git a/sm-shop/src/main/webapp/pages/shop/common/notFound.jsp b/sm-shop/src/main/webapp/pages/shop/common/notFound.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/shop/common/preBuiltBlocks/customerAddress.jsp b/sm-shop/src/main/webapp/pages/shop/common/preBuiltBlocks/customerAddress.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/shop/common/preBuiltBlocks/storeAddress.jsp b/sm-shop/src/main/webapp/pages/shop/common/preBuiltBlocks/storeAddress.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/shop/common/timeout.jsp b/sm-shop/src/main/webapp/pages/shop/common/timeout.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/shop/templates/bootstrap/catalogLayout.jsp b/sm-shop/src/main/webapp/pages/shop/templates/bootstrap/catalogLayout.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/shop/templates/bootstrap/pages/category.jsp b/sm-shop/src/main/webapp/pages/shop/templates/bootstrap/pages/category.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/shop/templates/bootstrap/pages/content.jsp b/sm-shop/src/main/webapp/pages/shop/templates/bootstrap/pages/content.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/shop/templates/bootstrap/pages/customer.jsp b/sm-shop/src/main/webapp/pages/shop/templates/bootstrap/pages/customer.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/shop/templates/bootstrap/pages/landing.jsp b/sm-shop/src/main/webapp/pages/shop/templates/bootstrap/pages/landing.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/shop/templates/bootstrap/pages/product.jsp b/sm-shop/src/main/webapp/pages/shop/templates/bootstrap/pages/product.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/shop/templates/bootstrap/pages/search.jsp b/sm-shop/src/main/webapp/pages/shop/templates/bootstrap/pages/search.jsp
old mode 100755
new mode 100644
index a6f2d6a..be590ad
--- a/sm-shop/src/main/webapp/pages/shop/templates/bootstrap/pages/search.jsp
+++ b/sm-shop/src/main/webapp/pages/shop/templates/bootstrap/pages/search.jsp
@@ -33,11 +33,13 @@ response.setDateHeader ("Expires", -1);
function search() {
+ $('#productsContainer').showLoading();
var url = '<%=request.getContextPath()%>/services/public/search/<c:out value="${requestScope.MERCHANT_STORE.code}"/>/<c:out value="${requestScope.LANGUAGE.code}"/>/' + START_COUNT_PRODUCTS + '/' + MAX_PRODUCTS + '/term.html';
searchProducts(url,'#productsContainer','<c:out value="${q}"/>',null);
}
function callBackSearchProducts(productList) {
+ buildProductsList(productList,'#productsContainer', null);//generic list function
totalCount = productList.productCount;
START_COUNT_PRODUCTS = START_COUNT_PRODUCTS + MAX_PRODUCTS;
if(START_COUNT_PRODUCTS < totalCount) {
diff --git a/sm-shop/src/main/webapp/pages/shop/templates/bootstrap/sections/breadcrumb.jsp b/sm-shop/src/main/webapp/pages/shop/templates/bootstrap/sections/breadcrumb.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/shop/templates/bootstrap/sections/footer.jsp b/sm-shop/src/main/webapp/pages/shop/templates/bootstrap/sections/footer.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/shop/templates/bootstrap/sections/header.jsp b/sm-shop/src/main/webapp/pages/shop/templates/bootstrap/sections/header.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/shop/templates/bootstrap/sections/jsLinks.jsp b/sm-shop/src/main/webapp/pages/shop/templates/bootstrap/sections/jsLinks.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/shop/templates/bootstrap/sections/navbar.jsp b/sm-shop/src/main/webapp/pages/shop/templates/bootstrap/sections/navbar.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/shop/templates/bootstrap/sections/productBox.jsp b/sm-shop/src/main/webapp/pages/shop/templates/bootstrap/sections/productBox.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/shop/templates/bootstrap/sections/shopLinks.jsp b/sm-shop/src/main/webapp/pages/shop/templates/bootstrap/sections/shopLinks.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/shop/templates/bootstrap/sections/shop-listing.jsp b/sm-shop/src/main/webapp/pages/shop/templates/bootstrap/sections/shop-listing.jsp
old mode 100755
new mode 100644
index e06fdba..b997b30
--- a/sm-shop/src/main/webapp/pages/shop/templates/bootstrap/sections/shop-listing.jsp
+++ b/sm-shop/src/main/webapp/pages/shop/templates/bootstrap/sections/shop-listing.jsp
@@ -26,7 +26,7 @@ function buildProductsList(productList, divProductsContainer) {
//productUrl = productUrl + '/ref=' + ref;
//}
if(productList.products[i].image!=null) {
- productHtml = productHtml + '<a href="' + productUrl + '"><img src="<c:url value="/"/>' + productList.products[i].image.imageUrl +'" itemprop="image"></a>';
+ productHtml = productHtml + '<a href="' + productUrl + '"><img src="<c:url value=""/>' + productList.products[i].image.imageUrl +'" itemprop="image"></a>';
}
productHtml = productHtml + '<div class="bottom"><a href="' + productUrl + '" class="view"><s:message code="button.label.view" text="View" /></a> / <a productid="' + productList.products[i].id + '" href="#" class="addToCart"><s:message code="button.label.addToCart" text="Add to cart" /></a></div>';
productHtml = productHtml + '</div>'
diff --git a/sm-shop/src/main/webapp/pages/shop/templates/bootstrap3/catalogLayout.jsp b/sm-shop/src/main/webapp/pages/shop/templates/bootstrap3/catalogLayout.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/shop/templates/bootstrap3/pages/category.jsp b/sm-shop/src/main/webapp/pages/shop/templates/bootstrap3/pages/category.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/shop/templates/bootstrap3/pages/content.jsp b/sm-shop/src/main/webapp/pages/shop/templates/bootstrap3/pages/content.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/shop/templates/bootstrap3/pages/customer.jsp b/sm-shop/src/main/webapp/pages/shop/templates/bootstrap3/pages/customer.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/shop/templates/bootstrap3/pages/landing.jsp b/sm-shop/src/main/webapp/pages/shop/templates/bootstrap3/pages/landing.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/shop/templates/bootstrap3/pages/product.jsp b/sm-shop/src/main/webapp/pages/shop/templates/bootstrap3/pages/product.jsp
old mode 100755
new mode 100644
index 2b1b617..191b5f7
--- a/sm-shop/src/main/webapp/pages/shop/templates/bootstrap3/pages/product.jsp
+++ b/sm-shop/src/main/webapp/pages/shop/templates/bootstrap3/pages/product.jsp
@@ -130,7 +130,7 @@ response.setDateHeader ("Expires", -1);
<ul class="thumbnails product-list">
<!-- Iterate over featuredItems -->
<c:set var="ITEMS" value="${relatedProducts}" scope="request" />
- <jsp:include page="/pages/shop/templates/bootstrap/sections/productBox.jsp" />
+ <jsp:include page="/pages/shop/templates/bootstrap3/sections/productBox.jsp" />
</ul>
</c:if>
diff --git a/sm-shop/src/main/webapp/pages/shop/templates/bootstrap3/pages/search.jsp b/sm-shop/src/main/webapp/pages/shop/templates/bootstrap3/pages/search.jsp
old mode 100755
new mode 100644
index 57ddef2..932f136
--- a/sm-shop/src/main/webapp/pages/shop/templates/bootstrap3/pages/search.jsp
+++ b/sm-shop/src/main/webapp/pages/shop/templates/bootstrap3/pages/search.jsp
@@ -33,11 +33,13 @@ response.setDateHeader ("Expires", -1);
function search() {
+ $('#productsContainer').showLoading();
var url = '<%=request.getContextPath()%>/services/public/search/<c:out value="${requestScope.MERCHANT_STORE.code}"/>/<c:out value="${requestScope.LANGUAGE.code}"/>/' + START_COUNT_PRODUCTS + '/' + MAX_PRODUCTS + '/term.html';
searchProducts(url,'#productsContainer','<c:out value="${q}"/>',null);
}
function callBackSearchProducts(productList) {
+ buildProductsList(productList,'#productsContainer', null);//generic list function
totalCount = productList.productCount;
START_COUNT_PRODUCTS = START_COUNT_PRODUCTS + MAX_PRODUCTS;
if(START_COUNT_PRODUCTS < totalCount) {
diff --git a/sm-shop/src/main/webapp/pages/shop/templates/bootstrap3/sections/breadcrumb.jsp b/sm-shop/src/main/webapp/pages/shop/templates/bootstrap3/sections/breadcrumb.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/shop/templates/bootstrap3/sections/footer.jsp b/sm-shop/src/main/webapp/pages/shop/templates/bootstrap3/sections/footer.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/shop/templates/bootstrap3/sections/header.jsp b/sm-shop/src/main/webapp/pages/shop/templates/bootstrap3/sections/header.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/shop/templates/bootstrap3/sections/jsLinks.jsp b/sm-shop/src/main/webapp/pages/shop/templates/bootstrap3/sections/jsLinks.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/shop/templates/bootstrap3/sections/navbar.jsp b/sm-shop/src/main/webapp/pages/shop/templates/bootstrap3/sections/navbar.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/shop/templates/bootstrap3/sections/productBox.jsp b/sm-shop/src/main/webapp/pages/shop/templates/bootstrap3/sections/productBox.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/shop/templates/bootstrap3/sections/shopLinks.jsp b/sm-shop/src/main/webapp/pages/shop/templates/bootstrap3/sections/shopLinks.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/shop/templates/bootstrap3/sections/shop-listing.jsp b/sm-shop/src/main/webapp/pages/shop/templates/bootstrap3/sections/shop-listing.jsp
old mode 100755
new mode 100644
index af8daba..f7efb0c
--- a/sm-shop/src/main/webapp/pages/shop/templates/bootstrap3/sections/shop-listing.jsp
+++ b/sm-shop/src/main/webapp/pages/shop/templates/bootstrap3/sections/shop-listing.jsp
@@ -18,7 +18,7 @@ function buildProductsList(productList, divProductsContainer) {
var productHtml = '<li class="col-md-4 productItem" itemscope itemtype="http://schema.org/Enumeration" class="item listing-item" data-id="' + productList.products[i].id + '" item-price="' + productList.products[i].price +'" item-name="' + productList.products[i].description.name +'" item-order="' + productList.products[i].sortOrder +'">';
productHtml = productHtml + '<div class="product-box">';
if(productList.products[i].image!=null) {
- productHtml = productHtml + '<div class="product-image"><a href="' + productUrl + '"><img src="<c:url value="/"/>' + productList.products[i].image.imageUrl +'" itemprop="image"></a></div>';
+ productHtml = productHtml + '<div class="product-image"><a href="' + productUrl + '"><img src="<c:url value=""/>' + productList.products[i].image.imageUrl +'" itemprop="image"></a></div>';
}
productHtml = productHtml + '<div class="product-name">';
productHtml = productHtml + '<a href="<c:url value="/shop/product/" />' + productList.products[i].description.friendlyUrl + '.html<sm:breadcrumbParam/>">';
diff --git a/sm-shop/src/main/webapp/pages/shop/templates/exoticamobilia/pages/category.jsp b/sm-shop/src/main/webapp/pages/shop/templates/exoticamobilia/pages/category.jsp
index 6522cc8..6487000 100644
--- a/sm-shop/src/main/webapp/pages/shop/templates/exoticamobilia/pages/category.jsp
+++ b/sm-shop/src/main/webapp/pages/shop/templates/exoticamobilia/pages/category.jsp
@@ -23,7 +23,7 @@ response.setDateHeader ("Expires", -1);
<script type="text/html" id="productBoxTemplate">
{{#products}}
<div itemscope itemtype="http://schema.org/Enumeration" class="col-md-4 productItem" item-order="{{sortOrder}}" item-name="{{description.name}}" item-price="{{price}}" data-id="{{id}}" class="col-sm-4">
-<div data-effect-delay="0" data-animation-effect="fadeInUpSmall" class="box-style-1 white-bg object-non-visible animated object-visible fadeInUpSmall">
+<div class="box-style-4 white-bg object-non-visible animated object-visible">
{{#description.highlights}}
<div class="ribbon-wrapper-green">
<div class="ribbon-green">
@@ -31,26 +31,36 @@ response.setDateHeader ("Expires", -1);
</div>
</div>
{{/description.highlights}}
- {{#image}}
-
- <div class="product-image"><img class="product-img" src="<c:url value="/"/>{{image.imageUrl}}"><a class="overlay" href="<c:url value="/shop/product/" />{{description.friendlyUrl}}.html<sm:breadcrumbParam/>"><img class="product-img" src="<c:url value="/"/>{{image.imageUrl}}"></a></div>
-
- {{/image}}
- <div class="listing-item-body clearfix">
- <div class="product-info">
- <a href="<c:url value="/shop/product/" />{{description.name}}.html<sm:breadcrumbParam/>"><h3 itemprop="name" class="title product-name">{{description.name}}</h3></a>
- </div>
- <div data-effect-delay="0" data-animation-effect="fadeInUpSmall">
- <h4>
+ {{^canBePurchased}}
+ <div class="sold-out-box">
+ <span class="sold-out-text"><s:message code="label.soldout" text="Sold out" /></span>
+ </div>
+ {{/canBePurchased}}
+ <div class="product-image">
+ {{#image}}
+ <img class="product-img" src="<c:url value=""/>{{image.imageUrl}}"><a class="overlay" href="<c:url value="/shop/product/" />{{description.friendlyUrl}}.html<sm:breadcrumbParam/>"><img class="product-img" src="<c:url value="/"/>{{image.imageUrl}}"></a>
+ {{/image}}
+ </div>
+ <!-- *** Product Name & Price Starts *** -->
+ <div class="caption">
+ <div class="product-details">
+ <div class="clearfix">
+ <h3 class="product-heading product-name" itemprop="name">{{description.name}}</h3>
+ <h4 class="price">
{{#discounted}}<del>{{originalPrice}}</del> <span itemprop="price" class="specialPrice">{{finalPrice}}</span>{{/discounted}}
{{^discounted}}<span itemprop="price" class="specialPrice">{{finalPrice}}</span>{{/discounted}}
</h4>
+ <!-- Product Name & Price Ends -->
+ <!-- Product Buttons Starts -->
+ <div class="clearfix">
+ <a class="btn btn-default pull-left" href="<c:url value="/shop/product/" />{{description.friendlyUrl}}.html<sm:breadcrumbParam/>" class="details"><s:message code="button.label.view" text="Details" /></a>
+ <c:if test="${requestScope.CONFIGS['allowPurchaseItems'] == true}">
+ {{#canBePurchased}}<a class="btn btn-buy pull-right addToCart" href="javascript:void(0);" class="addToCart" productId="{{id}}"><s:message code="button.label.addToCart" text="Add to cart" /></a>{{/canBePurchased}}
+ </c:if>
+ </div>
+ </div>
</div>
- <div class="product-actions">
- <a href="<c:url value="/shop/product/" />{{description.friendlyUrl}}.html<sm:breadcrumbParam/>" class="details"><s:message code="button.label.view" text="Details" /></a>
- | <a productid="{{id}}" href="javascript:void(0);" class="addToCart"><s:message code="button.label.addToCart" text="Add to cart" /></a>
</div>
- </div>
</div>
</div>
{{/products}}
@@ -61,7 +71,7 @@ response.setDateHeader ("Expires", -1);
<script>
var START_COUNT_PRODUCTS = 0;
- var MAX_PRODUCTS = 12;
+ var MAX_PRODUCTS = 30;
var filter = null;
var filterValue = null;
@@ -257,7 +267,7 @@ response.setDateHeader ("Expires", -1);
<c:if test="${category.description.description!=null}">
<div class="row">
- <p class="lead"><c:out value="${category.description.description}" /></p>
+ <p class="lead"><c:out value="${category.description.description}" escapeXml="false"/></p>
</div>
</c:if>
@@ -301,7 +311,7 @@ response.setDateHeader ("Expires", -1);
<div id="productsContainer" class="list-unstyled"></div>
<nav id="button_nav" style="text-align:center;display:none;">
- <button id="moreProductsButton" class="btn btn-large" style="width:400px;" onClick="loadCategoryProducts();"><s:message code="label.product.moreitems" text="Display more items" />...</button>
+ <button id="moreProductsButton" class="btn btn-primary btn-large" style="width:400px;" onClick="loadCategoryProducts();"><s:message code="label.product.moreitems" text="Display more items" />...</button>
</nav>
<span id="end_nav" style="display:none;"><s:message code="label.product.nomoreitems" text="No more items to be displayed" /></span>
<!-- end block -->
@@ -320,10 +330,12 @@ response.setDateHeader ("Expires", -1);
</c:if>
<ul class="nav nav-list">
<c:forEach items="${subCategories}" var="subCategory">
+ <c:if test="${subCategory.visible}">
<li>
<a href="<c:url value="/shop/category/${subCategory.description.friendlyUrl}.html"/><sm:breadcrumbParam categoryId="${subCategory.id}"/>"><i class="fa fa-angle-right"></i> <c:out value="${subCategory.description.name}" />
<c:if test="${subCategory.productCount>0}"> <span class="countItems">(<c:out value="${subCategory.productCount}" />)</span></c:if></a>
</li>
+ </c:if>
</c:forEach>
</ul>
<br/>
@@ -347,5 +359,4 @@ response.setDateHeader ("Expires", -1);
</div>
- </div>
-
+ </div>
\ No newline at end of file
diff --git a/sm-shop/src/main/webapp/pages/shop/templates/exoticamobilia/pages/content.jsp b/sm-shop/src/main/webapp/pages/shop/templates/exoticamobilia/pages/content.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/pages/shop/templates/exoticamobilia/pages/items.jsp b/sm-shop/src/main/webapp/pages/shop/templates/exoticamobilia/pages/items.jsp
new file mode 100644
index 0000000..4b0bf4a
--- /dev/null
+++ b/sm-shop/src/main/webapp/pages/shop/templates/exoticamobilia/pages/items.jsp
@@ -0,0 +1,333 @@
+<%
+response.setCharacterEncoding("UTF-8");
+response.setHeader("Cache-Control","no-cache");
+response.setHeader("Pragma","no-cache");
+response.setDateHeader ("Expires", -1);
+%>
+
+<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
+<%@ taglib uri="http://www.springframework.org/tags" prefix="s" %>
+<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
+<%@ taglib uri="/WEB-INF/shopizer-tags.tld" prefix="sm" %>
+
+<%@page contentType="text/html"%>
+<%@page pageEncoding="UTF-8"%>
+
+ <script src="<c:url value="/resources/js/jquery.easing.1.3.js" />"></script>
+ <script src="<c:url value="/resources/js/jquery.quicksand.js" />"></script>
+ <script src="<c:url value="/resources/js/jquery-sort-filter-plugin.js" />"></script>
+ <script src="<c:url value="/resources/js/jquery.alphanumeric.pack.js" />"></script>
+
+
+ <script type="text/html" id="productBoxTemplate">
+{{#products}}
+<div itemscope itemtype="http://schema.org/Enumeration" class="col-md-4 productItem" item-order="{{sortOrder}}" item-name="{{description.name}}" item-price="{{price}}" data-id="{{id}}" class="col-sm-4">
+<div class="box-style-4 white-bg object-non-visible animated object-visible">
+ {{#description.highlights}}
+ <div class="ribbon-wrapper-green">
+ <div class="ribbon-green">
+ {{description.highlights}}
+ </div>
+ </div>
+ {{/description.highlights}}
+ {{^canBePurchased}}
+ <div class="sold-out-box">
+ <span class="sold-out-text"><s:message code="label.soldout" text="Sold out" /></span>
+ </div>
+ {{/canBePurchased}}
+ <div class="product-image">
+ {{#image}}
+ <img class="product-img" src="<c:url value=""/>{{image.imageUrl}}"><a class="overlay" href="<c:url value="/shop/product/" />{{description.friendlyUrl}}.html<sm:breadcrumbParam/>"><img class="product-img" src="<c:url value="/"/>{{image.imageUrl}}"></a>
+ {{/image}}
+ </div>
+ <!-- *** Product Name & Price Starts *** -->
+ <div class="caption">
+ <div class="product-details">
+ <div class="clearfix">
+ <h3 class="product-heading product-name" itemprop="name">{{description.name}}</h3>
+ <h4 class="price">
+ {{#discounted}}<del>{{originalPrice}}</del> <span itemprop="price" class="specialPrice">{{finalPrice}}</span>{{/discounted}}
+ {{^discounted}}<span itemprop="price" class="specialPrice">{{finalPrice}}</span>{{/discounted}}
+ </h4>
+ <!-- Product Name & Price Ends -->
+ <!-- Product Buttons Starts -->
+ <div class="clearfix">
+ <a class="btn btn-default pull-left" href="<c:url value="/shop/product/" />{{description.friendlyUrl}}.html<sm:breadcrumbParam/>" class="details"><s:message code="button.label.view" text="Details" /></a>
+ <c:if test="${requestScope.CONFIGS['allowPurchaseItems'] == true}">
+ {{#canBePurchased}}<a class="btn btn-buy pull-right addToCart" href="javascript:void(0);" class="addToCart" productId="{{id}}"><s:message code="button.label.addToCart" text="Add to cart" /></a>{{/canBePurchased}}
+ </c:if>
+ </div>
+ </div>
+ </div>
+ </div>
+</div>
+</div>
+{{/products}}
+</script>
+
+
+ <!-- don't change that script except max_oroducts -->
+ <script>
+
+ var START_COUNT_PRODUCTS = 0;
+ var MAX_PRODUCTS = 30;
+ var filter = null;
+ var filterValue = null;
+
+ $(function(){
+
+ //price minimum/maximum
+ $('.numeric').numeric();
+
+
+ $('#filter').on('change', function() {
+ visualize();
+ });
+
+ $('#priceFilterMinimum').on('blur', function() {
+ visualize();
+ });
+
+ $('#priceFilterMaximum').on('blur', function() {
+ visualize()
+ });
+
+
+ loadItemsProducts();
+
+ });
+
+
+ function visualize() {
+ var orderBy = $("#filter").val();
+ var minimumPrice = $('#priceFilterMinimum').val();
+ var maximumPrice = $('#priceFilterMaximum').val();
+
+ //orderProducts(orderBy);
+ orderProducts(orderBy, minimumPrice, maximumPrice);
+ }
+
+ /** used for ordering and filtering **/
+ //function orderProducts(attribute, minimum, maximum) {
+ function orderProducts(attribute, minimumPrice, maximumPrice) {
+
+ if(minimumPrice==undefined) {
+ minimumPrice = '';
+ }
+
+ if(maximumPrice==undefined) {
+ maximumPrice = '';
+ }
+
+ //log('Attribute ' + attribute + ' Minimum price ' + minimumPrice + ' Maximum price ' + maximumPrice);
+
+ if(minimumPrice == '' && maximumPrice == '') {
+
+ if(attribute=='item-order') {
+ return;
+ }
+ }
+
+ // get the first collection
+ var $prods = $('#productsContainer');
+
+
+ // clone applications to get a second collection
+ data = $('#hiddenProductsContainer').clone();
+
+ //console.log('Data');
+ //console.log(data);
+
+
+ listedData = data.find('.productItem');
+
+ //console.log('Listed Data');
+ //console.log(listedData);
+
+ filteredData = listedData;
+ var $sortedData = null;
+
+ if(minimumPrice != '' || maximumPrice != '') {
+ //filter filteredData
+ if(minimumPrice == '') {
+ minimumPrice = '0';
+ }
+ filteredData = listedData.filter(function() {
+
+ //log('Item price ' + $(this).attr('item-price'));
+
+ var price = parseFloat($(this).attr('item-price'));
+ if(maximumPrice != '') {
+ return price >= parseFloat(minimumPrice) && price <= parseFloat(maximumPrice);
+ } else {
+ return price >= parseFloat(minimumPrice);
+ }
+
+ });
+ }
+
+ //console.log('After filtered Data');
+ //console.log(filteredData);
+
+
+ if(attribute!='item-order') {
+
+ $sortedData = filteredData.sorted({
+ by: function(v) {
+ if(attribute=='item-price') {
+ return parseFloat($(v).attr(attribute));
+ } else {
+ return $(v).attr(attribute);
+ }
+ }
+ });
+
+ } else {
+ $sortedData = filteredData;
+ }
+
+ // finally, call quicksand
+ $prods.quicksand($sortedData, {
+ duration: 800,
+ easing: 'easeInOutQuad'
+ });
+
+
+ }
+
+ function loadItemsProducts() {
+
+ ///products/public/page/{start}/{max}/{store}/{language}/manufacturer/{id}
+ var url = '<%=request.getContextPath()%>/services/public/products/page/' + START_COUNT_PRODUCTS + '/' + MAX_PRODUCTS + '/<c:out value="${requestScope.MERCHANT_STORE.code}"/>/<c:out value="${requestScope.LANGUAGE.code}"/>/manufacturer/<c:out value="${manufacturer.id}"/>.html';
+
+ if(filter!=null) {
+ url = url + '/filter=' + filter + '/filter-value=' + filterValue +'';
+ }
+ loadProducts(url,'#productsContainer');
+
+ }
+
+
+/* function filterCategory(filterType,filterVal) {
+ //reset product section
+ $('#productsContainer').html('');
+ $('#hiddenProductsContainer').html('');
+ START_COUNT_PRODUCTS = 0;
+ filter = filterType;
+ filterValue = filterVal;
+ loadItemsProducts();
+ } */
+
+ function buildProductsList(productList, divProductsContainer) {
+ log('Products-> ' + productList.products.length);
+ var productsTemplate = Hogan.compile(document.getElementById("productBoxTemplate").innerHTML);
+ var productsRendred = productsTemplate.render(productList);
+ $('#productsContainer').append(productsRendred);
+ $('#hiddenProductsContainer').append(productsRendred);
+ initBindings();
+ }
+
+ function callBackLoadProducts(productList) {
+ totalCount = productList.productCount;
+ START_COUNT_PRODUCTS = START_COUNT_PRODUCTS + MAX_PRODUCTS;
+ if(START_COUNT_PRODUCTS < totalCount && START_COUNT_PRODUCTS <= productList.productCount) {
+ $("#button_nav").show();
+ } else {
+ $("#button_nav").hide();
+ }
+ $('#productsContainer').hideLoading();
+
+ visualize();
+
+ var productQty = productList.productCount + ' <s:message code="label.search.items.found" text="item(s) found" />';
+ $('#products-qty').html(productQty);
+
+
+ }
+
+
+
+
+</script>
+
+
+
+<div id="mainContent" class="container">
+
+ <header class="page-header row">
+ <c:if test="${manufacturer.description.name!=null}">
+ <div class="fixed-image section dark-translucent-bg parallax-bg-3">
+ <div class="container">
+ <h2 class="shop-banner-title lead"><c:out value="${manufacturer.description.name}"/></h2>
+ </div>
+ </div>
+ </c:if>
+
+ </header>
+
+
+ <c:if test="${manufacturer.description.description!=null}">
+ <div class="row">
+ <p class="lead"><c:out value="${manufacturer.description.description}" escapeXml="false"/></p>
+ </div>
+ </c:if>
+
+
+
+ <div id="shop" class="row">
+ <div class="sorting-filters">
+ <form class="form-inline">
+ <div class="form-group">
+ <label><s:message code="label.generic.sortby" text="Sort by" />:</label>
+ <select id="filter" class="form-control">
+ <option value="item-order"><s:message code="label.generic.default" text="Default" /></option>
+ <option value="item-name"><s:message code="label.generic.name" text="Name" /></option>
+ <option value="item-price"><s:message code="label.generic.price" text="Price" /></option>
+ </select>
+ </div>
+ <div class="form-group">
+ <label><s:message code="label.generic.price" text="Price" /> (<s:message code="label.entity.minimum" text="Minimum"/>/<s:message code="label.entity.maximum" text="Maximum"/>):</label>
+ <div class="row grid-space-10">
+ <div class="col-sm-6">
+ <input id="priceFilterMinimum" name="priceFilterMinimum" class="form-control numeric filterByField" type="text">
+ </div>
+ <div class="col-sm-6">
+ <input id="priceFilterMaximum" name="priceFilterMaximum" class="form-control numeric filterByField" type="text">
+ </div>
+ </div>
+ </div>
+ <div class="form-group">
+ <div class="col-sm-6">
+ </div>
+ </div>
+ </form>
+ </div>
+ <div class="col-md-12">
+
+ <div class="row product-list">
+
+
+ <!-- just copy that block for havimg products displayed -->
+ <!-- products are loaded by ajax -->
+ <div id="productsContainer" class="list-unstyled"></div>
+
+ <nav id="button_nav" style="text-align:center;display:none;">
+ <button id="moreProductsButton" class="btn btn-primary btn-large" style="width:400px;" onClick="loadCategoryProducts();"><s:message code="label.product.moreitems" text="Display more items" />...</button>
+ </nav>
+ <span id="end_nav" style="display:none;"><s:message code="label.product.nomoreitems" text="No more items to be displayed" /></span>
+ <!-- end block -->
+
+ </div>
+
+ <!-- hidden -->
+ <div id="hiddenProductsContainer" style="display:none;"></div>
+
+ </div><!-- /col-md-12 -->
+
+
+
+
+
+ </div>
+ </div>
\ No newline at end of file
diff --git a/sm-shop/src/main/webapp/pages/shop/templates/exoticamobilia/pages/landing.jsp b/sm-shop/src/main/webapp/pages/shop/templates/exoticamobilia/pages/landing.jsp
index 1cf13f9..e155351 100644
--- a/sm-shop/src/main/webapp/pages/shop/templates/exoticamobilia/pages/landing.jsp
+++ b/sm-shop/src/main/webapp/pages/shop/templates/exoticamobilia/pages/landing.jsp
@@ -19,82 +19,25 @@ response.setDateHeader ("Expires", -1);
<div style="margin-top: 0px;" class="banner center-block">
- <!-- Responsive slider - START -->
- <div class="responsive-slider" data-spy="responsive-slider" data-autoplay="false">
- <div class="slides" data-group="slides">
- <ul>
- <li>
- <div class="slide-body" data-group="slide">
- <img src="" id="slide1">
-
- <div class="bannerTextTitle bannerTextColor" style="width:500px; top:30px; left:20px;float:left;">
- <h2 class="bannerTextStyle helvetica-light bannerMarginBottom">
- Furniture warehouse
- </h2>
- <p class="bannerTextParagraphStyle helvetica-light">Antic and exotic furnitures</p>
- <a class="white bannerRedBtn helvetica-light" href="/living-room-collections/asana-collection/" title="Shop the Suar Collection">Shop the Suar Collection <i class="fa fa-play"></i></a>
- </div>
-
-
- </div>
-
- <!--<div class="caption header center" style="width:100% !important;">-->
- <!--<div class="caption header" style="width:100% !important;height:60% !important;text-align: center; !important;">-->
- <!--<div class="header-white header-caption" style="padding: 30px 0 !important; font-size: 50px;">Mega centre de liquidation</div>-->
- <!--
- <div class="header-white header-caption" style="text-align: center;">Entrepot de meubles exotiques</div>
- <div class="sub-header sub-header-white header-caption" style="text-align: center;">
-
- <div style="width:100%;">
-
- Bois de rose - Acacia
- <br>
- Suar - Racine de teck - Mango
- </br>
- Recycles - Metal - et bien plus...</br>
-
- </div>
-
- </div>
- <div class="sub-sub-header sub-header-white header-caption" style="text-align: center;">
- <span style="background-color: #FFFF00;color:#000000">30% a 50%</span> de rabais sur tous les articles a prix regulier<br/>
- <span style="background-color: #FFFF00;color:#000000">Jusqu'a 70%</span> de rabais sur les articles de fin de ligne
- </div>
- </div>
- -->
-
- </div>
- </li>
- <%-- <li>
- <div class="slide-body" data-group="slide">
- <img src="images/table-brune1.jpg">
- </div>
- </li>
- <li>
- <div class="slide-body" data-group="slide">
- <img src="images/table-brune1.jpg">
- </div>
- </li>
- --%>
+ <c:if test="${requestScope.CONTENT['banner']!=null}">
+ <sm:pageContent contentCode="banner"/>
+ </c:if>
- </ul>
- </div>
+ </div>
- </div>
- <!-- Responsive slider - END -->
- </div>
-
- <!-- banner end -->
</div>
+
+ <c:if test="${requestScope.CONTENT['homeMessage']!=null}">
+ <sm:pageContent contentCode="homeMessage"/>
+ </c:if>
+
+
<div class="main">
<c:if test="${page!=null}">
- <div class="row">
- <div id="shop" class="col-md-12">
- <h1 class="text-center title" id="homeText"><c:out value="${page.description}" escapeXml="false"/></h1>
- <div class="separator"></div>
- </div>
+ <div id="" class="container">
+ <c:out value="${page.description}" escapeXml="false"/>
</div>
</c:if>
@@ -104,36 +47,28 @@ response.setDateHeader ("Expires", -1);
<sm:shopProductGroup groupName="SPECIALS"/>
<div id="" class="container">
- <c:if test="${requestScope.FEATURED_ITEM!=null || requestScope.SPECIALS!=null}" >
- <div class="row-exoticamobilia row">
- <div class="productItem tabs-style-2">
- <ul class="nav nav-tabs" id="product-tab">
- <c:if test="${requestScope.FEATURED_ITEM!=null}" ><li class="active "><a data-toggle="tab" href="#tab1"><s:message code="menu.catalogue-featured" text="Featured items" /></a></li></c:if>
- <c:if test="${requestScope.SPECIALS!=null}" ><li<c:if test="${requestScope.FEATURED_ITEM==null}"> class="active"</c:if>><a data-toggle="tab" href="#tab2"><s:message code="label.product.specials" text="Specials" /></a></li></c:if>
- </ul>
- </div>
- <div class="tab-content padding-top-clear padding-bottom-clear">
+ <c:if test="${requestScope.FEATURED_ITEM!=null || requestScope.SPECIALS!=null}" >
<!-- one div by section -->
<c:if test="${requestScope.FEATURED_ITEM!=null}" >
- <div class="tab-pane fade <c:if test="${requestScope.FEATURED_ITEM!=null}" >active</c:if> in" id="tab1">
+ <h2><s:message code="menu.catalogue-featured" text="Featured items" /></h2>
<!-- Iterate over featuredItems -->
<c:set var="ITEMS" value="${requestScope.FEATURED_ITEM}" scope="request" />
<c:set var="FEATURED" value="true" scope="request" />
<jsp:include page="/pages/shop/templates/exoticamobilia/sections/productBox.jsp" />
- </div>
</c:if>
<c:if test="${requestScope.SPECIALS!=null}" >
- <div class="tab-pane fade <c:if test="${requestScope.FEATURED_ITEM==null}" >active</c:if> in" id="tab2">
+ <h2><s:message code="label.product.specials" text="Specials" /></h2>
<!-- Iterate over featuredItems -->
<c:set var="ITEMS" value="${requestScope.SPECIALS}" scope="request" />
<jsp:include page="/pages/shop/templates/exoticamobilia/sections/productBox.jsp" />
- </div>
</c:if>
- </div>
- </div>
</c:if>
</div>
+
+ <div class="container">
+
+ </div>
</div>
-</div>
+</div>
\ No newline at end of file
diff --git a/sm-shop/src/main/webapp/pages/shop/templates/exoticamobilia/pages/product.jsp b/sm-shop/src/main/webapp/pages/shop/templates/exoticamobilia/pages/product.jsp
index d3f2b7c..f9c6a39 100644
--- a/sm-shop/src/main/webapp/pages/shop/templates/exoticamobilia/pages/product.jsp
+++ b/sm-shop/src/main/webapp/pages/shop/templates/exoticamobilia/pages/product.jsp
@@ -24,13 +24,18 @@ response.setDateHeader ("Expires", -1);
<jsp:include page="/pages/shop/templates/exoticamobilia/sections/breadcrumb.jsp" />
+ <c:if test="${product.images!=null && fn:length(product.images) gt 1}">
+ <c:forEach items="${product.images}" var="thumbnail">
+ <c:if test="${thumbnail.videoUrl!=null}">
+ <c:set var="VIDEO_URL" value="${thumbnail.videoUrl}" scope="request" />
+ </c:if>
+
+ </c:forEach>
+ </c:if>
+
<section class="main-container">
-
-
- <div class="container no-left-padding no-right-padding">
- <div class="row">
-
- <div class="main col-md-12">
+
+ <div class="main col-md-12 no-left-padding no-right-padding">
<!-- page-title start -->
@@ -47,47 +52,61 @@ response.setDateHeader ("Expires", -1);
<i class="fa fa-camera pr-5"></i> <s:message code="label.generic.pictures" text="Pictures" />
</a>
</li>
+ <c:if test="${requestScope.VIDEO_URL!=null}">
<li>
<a title="video" data-toggle="tab" role="tab" href="#product-video">
<i class="fa fa-video-camera pr-5"></i> <s:message code="label.generic.videos" text="Videos" />
</a>
</li>
+ </c:if>
</ul>
<div class="tab-content clear-style">
<c:if test="${product.image!=null}">
<div id="product-images" class="tab-pane active">
- <div style="width: 360px;" class="owl-item">
+ <div style="width:100%;" class="owl-item">
<div id="largeImg" class="overlay-container image-container">
<img src="<c:url value="${product.image.imageUrl}"/>" alt="<c:out value="${product.description.name}"/>">
<a href="<sm:shopProductImage imageName="${product.image.imageName}" sku="${product.sku}" size="LARGE"/>" class="popup-img overlay" title="<c:out value="${product.description.name}"/>"><i class="fa fa-search-plus"></i></a>
</div>
</div>
- <c:if test="${product.images!=null && fn:length(product.images)>1}">
+ <c:if test="${product.images!=null && fn:length(product.images) gt 1}">
<div id="imageGallery" class="row">
<c:forEach items="${product.images}" var="thumbnail">
- <div class="col-xs-6 col-md-3">
- <a href="javascript:;"" class="thumbImg thumbnail" imgId="im-<c:out value="${thumbnail.id}"/>" title="<c:out value="${thumbnail.imageName}"/>" rel="<c:url value="${thumbnail.imageUrl}"/>"><img src="<c:url value="${thumbnail.imageUrl}"/>" alt="<c:url value="${thumbnail.imageName}"/>" ></a>
- </div>
+ <c:if test="${thumbnail.imageType==0}">
+ <div class="col-xs-6 col-md-3">
+ <c:choose>
+ <c:when test="${thumbnail.externalUrl==null}">
+ <a href="javascript:;"" class="detailsThumbImg thumbImg thumbnail" imgId="im-<c:out value="${thumbnail.id}"/>" title="<c:out value="${thumbnail.imageName}"/>" rel="<c:url value="${thumbnail.imageUrl}"/>"><img height="100" src="<c:url value="${thumbnail.imageUrl}"/>" alt="<c:url value="${thumbnail.imageName}"/>" ></a>
+ </c:when>
+ <c:otherwise>
+ <a href="javascript:;"" class="detailsThumbImg thumbImg thumbnail" imgId="im-<c:out value="${thumbnail.id}"/>" title="<c:out value="${product.description.name}"/>" rel="<c:url value="${thumbnail.externalUrl}"/>"><img height="100" src="${thumbnail.externalUrl}" alt="<c:url value="${product.description.name}"/>" ></a>
+ </c:otherwise>
+ </c:choose>
+ </div>
+ </c:if>
</c:forEach>
</div>
</c:if>
</div>
-
-
-
</c:if>
+ <c:if test="${requestScope.VIDEO_URL!=null}">
<div class="tab-pane" id="product-video">
<div class="embed-responsive embed-responsive-16by9">
- <!-- TODO -->
- <iframe class="embed-responsive-item" src="<c:url value="/resources/templates/exoticamobilia/img/vimeo.html" />"></iframe>
- <p><a href="http://vimeo.com/29198414">Test Video</a> from <a href="http://vimeo.com/staff">Vimeo</a> on <a href="https://vimeo.com/">Vimeo</a>.</p>
+ <iframe class="embed-responsive-item" height="350" src="<c:out value="${requestScope.VIDEO_URL}"/>"></iframe>
+
</div>
</div>
+ </c:if>
+
+
<hr>
+ <c:set var="HIDEACTION" value="TRUE" scope="request" />
+ <!-- product rating -->
+ <jsp:include page="/pages/shop/common/catalog/rating.jsp" />
<span itemprop="offerDetails" itemscope itemtype="http://data-vocabulary.org/Offer">
<meta itemprop="seller" content="${requestScope.MERCHANT_STORE.storename}"/>
<meta itemprop="currency" content="<c:out value="${requestScope.MERCHANT_STORE.currency.code}" />" />
@@ -107,8 +126,11 @@ response.setDateHeader ("Expires", -1);
</address>
</c:if>
</span>
+ <p>
+ <!--<div class="fb-like" data-href="<c:out value="${requestScope.MERCHANT_STORE.domainName}"/><c:url value="/shop/${product.description.friendlyUrl}.html"/>" data-layout="standard" data-action="like" data-show-faces="true" data-share="true"></div>-->
+ <iframe src="https://www.facebook.com/plugins/share_button.php?href=<c:out value="${requestScope.CONFIGS['SHOP_SCHEME']}"/>%3A%2F%2F<c:out value="${requestScope.MERCHANT_STORE.domainName}"/><c:url value="/shop/${product.description.friendlyUrl}.html"/>&layout=button_count&size=large&mobile_iframe=true&appId=<c:out value="${requestScope.CONFIGS['shopizer.facebook-appid']}"/>&width=83&height=28" width="83" height="28" style="border:none;overflow:hidden" scrolling="no" frameborder="0" allowTransparency="true"></iframe>
+ </p>
<jsp:include page="/pages/shop/common/catalog/addToCartProduct.jsp" />
-
</div>
</div>
@@ -133,16 +155,21 @@ response.setDateHeader ("Expires", -1);
<p>
<dl class="dl-horizontal">
- <dt><s:message code="label.product.weight" text="Weight" />:</dt>
- <dd><fmt:formatNumber value="${product.productWeight}" maxFractionDigits="2"/> <s:message code="label.generic.weightunit.${requestScope.MERCHANT_STORE.weightunitcode}" text="Pounds" /></dd>
+ <!--<dt><s:message code="label.product.weight" text="Weight" />:</dt>
+ <dd><fmt:formatNumber value="${product.productWeight}" maxFractionDigits="2"/> <s:message code="label.generic.weightunit.${requestScope.MERCHANT_STORE.weightunitcode}" text="Pounds" /></dd>-->
<dt><s:message code="label.product.height" text="Height" />:</dt>
<dd><fmt:formatNumber value="${product.productHeight}" maxFractionDigits="2"/> <s:message code="label.generic.sizeunit.${requestScope.MERCHANT_STORE.seizeunitcode}" text="Inches" /></dd>
- <dt><s:message code="label.product.length" text="Length" />:</dt>
- <dd><fmt:formatNumber value="${product.productLength}" maxFractionDigits="2"/> <s:message code="label.generic.sizeunit.${requestScope.MERCHANT_STORE.seizeunitcode}" text="Inches" /></dd>
<dt><s:message code="label.product.width" text="Width" />:</dt>
<dd><fmt:formatNumber value="${product.productWidth}" maxFractionDigits="2"/> <s:message code="label.generic.sizeunit.${requestScope.MERCHANT_STORE.seizeunitcode}" text="Inches" /></dd>
+ <dt><s:message code="label.product.length" text="Length" />:</dt>
+ <dd><fmt:formatNumber value="${product.productLength}" maxFractionDigits="2"/> <s:message code="label.generic.sizeunit.${requestScope.MERCHANT_STORE.seizeunitcode}" text="Inches" /></dd>
</dl>
</p>
+ <c:if test="${product.manufacturer.code=='green' || product.manufacturer.code=='local'}">
+ <c:if test="${requestScope.CONTENT['fsa']!=null}">
+ <sm:pageContent contentCode="fsa"/>
+ </c:if>
+ </c:if>
</div>
<div id="h2tab2" class="tab-pane fade">
@@ -180,8 +207,10 @@ response.setDateHeader ("Expires", -1);
</div>
</div>
</aside>
+ <!--
</div>
</div>
+ -->
</section>
<!-- Related items -->
@@ -194,7 +223,7 @@ response.setDateHeader ("Expires", -1);
<!--<p>Voici quelques suggestions de produits additionnels</p>-->
<!-- Iterate over featuredItems -->
<c:set var="ITEMS" value="${relatedProducts}" scope="request" />
-
+ <jsp:include page="/pages/shop/templates/exoticamobilia/sections/productBox.jsp" />
</div>
</div>
</div>
@@ -208,45 +237,22 @@ response.setDateHeader ("Expires", -1);
<script>
$(function () {
+
+ $('.popup-img').magnificPopup({type:'image'});
$('.thumbImg').click(function(){
- var igId= $(this).attr('imgId');
+ var igId = $(this).attr('imgId');
var url = $(this).attr('rel');
var name = $(this).attr('title');
$("#largeImg").html("<img src='" + url + "' /><a href='" + url + "' data-mfp-src='" + url + "' class='popup-img overlay' title='" + name + "'><i class='fa fa-search-plus'></i></a>");
- //$('#'+ igId).magnificPopup({type:'image'});
+ //re bind action
+ $('.popup-img').magnificPopup({type:'image'});
})
})
-
- /**
-
- $(function () {
- $('#productTabs a:first').tab('show');
- $('#productTabs a').click(function (e) {
- e.preventDefault();
- $(this).tab('show');
- })
- $('.thumbImg').click(function (e) {
- img = $(this).find('img').clone();
- $('#mainImg').html(img);
- setImageZoom(img.attr('id'));
- })
- })
- <!-- lens plugin -->
- function setImageZoom(id) {
- $('#' + id).elevateZoom({
- zoomType : "lens",
- lensShape : "square",
- lensSize : 240
- });
- }
-
- **/
-
</script>
diff --git a/sm-shop/src/main/webapp/pages/shop/templates/exoticamobilia/pages/search.jsp b/sm-shop/src/main/webapp/pages/shop/templates/exoticamobilia/pages/search.jsp
index 57ddef2..2286eef 100644
--- a/sm-shop/src/main/webapp/pages/shop/templates/exoticamobilia/pages/search.jsp
+++ b/sm-shop/src/main/webapp/pages/shop/templates/exoticamobilia/pages/search.jsp
@@ -1,123 +1,182 @@
-<%
-response.setCharacterEncoding("UTF-8");
-response.setHeader("Cache-Control","no-cache");
-response.setHeader("Pragma","no-cache");
-response.setDateHeader ("Expires", -1);
-%>
-
-<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
-<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
-<%@ taglib uri="http://www.springframework.org/tags" prefix="s" %>
-<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
-<%@ taglib uri="/WEB-INF/shopizer-tags.tld" prefix="sm" %>
-
-<%@page contentType="text/html"%>
-<%@page pageEncoding="UTF-8"%>
-
-
-
- <script>
-
- var START_COUNT_PRODUCTS = 0;
- var MAX_PRODUCTS = 3;
-
-
- $(function(){
-
- search();
-
- });
-
-
- <jsp:include page="/pages/shop/templates/bootstrap3/sections/shop-listing.jsp" />
-
-
- function search() {
- var url = '<%=request.getContextPath()%>/services/public/search/<c:out value="${requestScope.MERCHANT_STORE.code}"/>/<c:out value="${requestScope.LANGUAGE.code}"/>/' + START_COUNT_PRODUCTS + '/' + MAX_PRODUCTS + '/term.html';
- searchProducts(url,'#productsContainer','<c:out value="${q}"/>',null);
- }
-
- function callBackSearchProducts(productList) {
- totalCount = productList.productCount;
- START_COUNT_PRODUCTS = START_COUNT_PRODUCTS + MAX_PRODUCTS;
- if(START_COUNT_PRODUCTS < totalCount) {
- $("#button_nav").show();
- } else {
- $("#button_nav").hide();
- }
-
- $('#productsContainer').hideLoading();
-
-
- var productQty = productList.productCount + ' <s:message code="label.search.items.found" text="item(s) found" />';
- $('#products-qty').html(productQty);
-
- //facets
- if(productList.categoryFacets!=null && productList.categoryFacets.length>0) {
- $('#categoryLabel').show();
- for (var i = 0; i < productList.categoryFacets.length; i++) {
- var categoryFacets = '<li>';
- categoryFacets = categoryFacets + '<a href="<c:url value="/shop"/>/category/' + productList.categoryFacets[i].description.friendlyUrl + '.html">' + productList.categoryFacets[i].description.name;
- if(productList.categoryFacets[i].productCount>0) {
- categoryFacets = categoryFacets + ' <span class="countItems">(' + productList.categoryFacets[i].productCount + ')</span>'
- }
- categoryFacets = categoryFacets + '</a>';
- categoryFacets = categoryFacets + '</li>';
- $(categoriesFacets).append(categoryFacets);
- }
- } else {
- $('#categoryLabel').hide();
- }
-
-
-
- }
-
-
-
-
-</script>
-
-
- <div id="mainContent" class="container">
-
- <div id="shop" class="row">
-
-
-
- <div class="col-md-9">
-
- <div class="row top-shop-option">
- <div class="col-sm-6 col-md-6">
- <div id="products-qty"></div>
- </div>
- </div>
-
-
- <div class="row product-list">
-
-
- <!-- just copy that block for having products displayed -->
- <!-- products are loaded by ajax -->
- <ul id="productsContainer" class="list-unstyled"></ul>
-
- <nav id="button_nav" style="text-align:center;display:none;">
- <button id="moreProductsButton" class="btn btn-large" style="width:400px;" onClick="loadCategoryProducts();"><s:message code="label.product.moreitems" text="Display more items" />...</button>
- </nav>
- <span id="end_nav" style="display:none;"><s:message code="label.product.nomoreitems" text="No more items to be displayed" /></span>
- <!-- end block -->
-
- </div>
-
- </div><!-- /col-md-9 -->
-
- <sidebar class="col-md-3">
- <h3 id="categoryLabel"><s:message code="label.categories.title" text="Categories"/></h3>
- <ul id="categoriesFacets" class="nav nav-list"></ul>
- </sidebar>
-
-
-
- </div><!-- row -->
-
+<%
+response.setCharacterEncoding("UTF-8");
+response.setHeader("Cache-Control","no-cache");
+response.setHeader("Pragma","no-cache");
+response.setDateHeader ("Expires", -1);
+%>
+
+<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
+<%@ taglib uri="http://www.springframework.org/tags" prefix="s" %>
+<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
+<%@ taglib uri="/WEB-INF/shopizer-tags.tld" prefix="sm" %>
+
+<%@page contentType="text/html"%>
+<%@page pageEncoding="UTF-8"%>
+
+ <script type="text/html" id="productBoxTemplate">
+{{#products}}
+<div itemscope itemtype="http://schema.org/Enumeration" class="col-md-4 productItem" item-order="{{sortOrder}}" item-name="{{description.name}}" item-price="{{price}}" data-id="{{id}}" class="col-sm-4">
+<div class="box-style-4 white-bg object-non-visible animated object-visible">
+ {{#description.highlights}}
+ <div class="ribbon-wrapper-green">
+ <div class="ribbon-green">
+ {{description.highlights}}
+ </div>
+ </div>
+ {{/description.highlights}}
+ {{^canBePurchased}}
+ <div class="sold-out-box">
+ <span class="sold-out-text"><s:message code="label.soldout" text="Sold out" /></span>
+ </div>
+ {{/canBePurchased}}
+ <div class="product-image">
+ {{#image}}
+ <img class="product-img" src="<c:url value=""/>{{image.imageUrl}}"><a class="overlay" href="<c:url value="/shop/product/" />{{description.friendlyUrl}}.html<sm:breadcrumbParam/>"><img class="product-img" src="<c:url value="/"/>{{image.imageUrl}}"></a>
+ {{/image}}
+ </div>
+ <!-- *** Product Name & Price Starts *** -->
+ <div class="caption">
+ <div class="product-details">
+ <div class="clearfix">
+ <h3 class="product-heading product-name" itemprop="name">{{description.name}}</h3>
+ <h4 class="price">
+ {{#discounted}}<del>{{originalPrice}}</del> <span itemprop="price" class="specialPrice">{{finalPrice}}</span>{{/discounted}}
+ {{^discounted}}<span itemprop="price" class="specialPrice">{{finalPrice}}</span>{{/discounted}}
+ </h4>
+ <!-- Product Name & Price Ends -->
+ <!-- Product Buttons Starts -->
+ <div class="clearfix">
+ <a class="btn btn-default pull-left" href="<c:url value="/shop/product/" />{{description.friendlyUrl}}.html<sm:breadcrumbParam/>" class="details"><s:message code="button.label.view" text="Details" /></a>
+ <c:if test="${requestScope.CONFIGS['allowPurchaseItems'] == true}">
+ {{#canBePurchased}}<a class="btn btn-buy pull-right addToCart" href="javascript:void(0);" class="addToCart" productId="{{id}}"><s:message code="button.label.addToCart" text="Add to cart" /></a>{{/canBePurchased}}
+ </c:if>
+ </div>
+ </div>
+ </div>
+ </div>
+</div>
+</div>
+{{/products}}
+</script>
+</script>
+
+
+
+ <script>
+
+ var START_COUNT_PRODUCTS = 0;
+ var MAX_PRODUCTS = 18;
+
+
+ $(function(){
+
+ search();
+
+ });
+
+
+
+ function search() {
+ //Invoke search service
+ $('#productsContainer').showLoading();
+ var url = '<%=request.getContextPath()%>/services/public/search/<c:out value="${requestScope.MERCHANT_STORE.code}"/>/<c:out value="${requestScope.LANGUAGE.code}"/>/' + START_COUNT_PRODUCTS + '/' + MAX_PRODUCTS + '/term.html';
+ searchProducts(url,'#productsContainer','<c:out value="${q}"/>',null);
+ }
+
+ //inviked from callback below
+ function buildProductsList(productList) {
+ log('Products-> ' + productList.products.length);
+ var productsTemplate = Hogan.compile(document.getElementById("productBoxTemplate").innerHTML);
+ var productsRendred = productsTemplate.render(productList);
+ $('#productsContainer').append(productsRendred);
+ //$('#hiddenProductsContainer').append(productsRendred);//used for filtering products but no filter in search
+ initBindings();//add to cart etc...
+ }
+
+ //once the list of product is retrieved
+ function callBackSearchProducts(productList) {
+ buildProductsList(productList);
+ totalCount = productList.productCount;
+ START_COUNT_PRODUCTS = START_COUNT_PRODUCTS + MAX_PRODUCTS;
+ if(START_COUNT_PRODUCTS < totalCount) {
+ $("#button_nav").show();
+ } else {
+ $("#button_nav").hide();
+ }
+
+ $('#productsContainer').hideLoading();
+
+
+ var productQty = productList.productCount + ' <s:message code="label.search.items.found" text="item(s) found" />';
+ $('#products-qty').html(productQty);
+
+ //facets
+ if(productList.categoryFacets!=null && productList.categoryFacets.length>0) {
+ $('#categoryLabel').show();
+ for (var i = 0; i < productList.categoryFacets.length; i++) {
+ var categoryFacets = '<li>';
+ categoryFacets = categoryFacets + '<a href="<c:url value="/shop"/>/category/' + productList.categoryFacets[i].description.friendlyUrl + '.html">' + productList.categoryFacets[i].description.name;
+ if(productList.categoryFacets[i].productCount>0) {
+ categoryFacets = categoryFacets + ' <span class="countItems">(' + productList.categoryFacets[i].productCount + ')</span>'
+ }
+ categoryFacets = categoryFacets + '</a>';
+ categoryFacets = categoryFacets + '</li>';
+ $(categoriesFacets).append(categoryFacets);
+ }
+ } else {
+ $('#categoryLabel').hide();
+ }
+
+
+
+ }
+
+
+
+
+</script>
+
+
+ <div id="mainContent" class="container">
+
+ <div id="shop" class="row">
+
+
+
+ <div class="col-md-9">
+
+ <div class="row top-shop-option">
+ <div class="col-sm-9 col-md-9">
+ <strong><div id="products-qty"></div></strong>
+ </div>
+ </div>
+
+
+ <div class="row product-list">
+
+
+ <!-- just copy that block for having products displayed -->
+ <!-- products are loaded by ajax -->
+ <ul id="productsContainer" class="list-unstyled"></ul>
+
+ <nav id="button_nav" style="text-align:center;display:none;">
+ <button id="moreProductsButton" class="btn btn-large" style="width:400px;" onClick="loadCategoryProducts();"><s:message code="label.product.moreitems" text="Display more items" />...</button>
+ </nav>
+ <span id="end_nav" style="display:none;"><s:message code="label.product.nomoreitems" text="No more items to be displayed" /></span>
+ <!-- end block -->
+
+ </div>
+
+ </div><!-- /col-md-9 -->
+
+ <sidebar class="col-md-3">
+ <h3 id="categoryLabel"><s:message code="label.categories.title" text="Categories"/></h3>
+ <ul id="categoriesFacets" class="nav nav-list"></ul>
+ </sidebar>
+
+
+
+ </div><!-- row -->
+
</div><!-- container -->
\ No newline at end of file
diff --git a/sm-shop/src/main/webapp/pages/shop/templates/exoticamobilia/sections/footer.jsp b/sm-shop/src/main/webapp/pages/shop/templates/exoticamobilia/sections/footer.jsp
index df5dc15..d3f486d 100644
--- a/sm-shop/src/main/webapp/pages/shop/templates/exoticamobilia/sections/footer.jsp
+++ b/sm-shop/src/main/webapp/pages/shop/templates/exoticamobilia/sections/footer.jsp
@@ -49,7 +49,7 @@ response.setDateHeader ("Expires", -1);
</c:if>
- <c:if test="${requestScope.CONFIGS['facebook_page_url'] != null || requestScope.CONFIGS['twitter_handle'] != null || requestScope.CONFIGS['pinterest'] != null}">
+ <c:if test="${requestScope.CONFIGS['facebook_page_url'] != null || requestScope.CONFIGS['twitter_handle'] != null || requestScope.CONFIGS['pinterest'] != null || requestScope.CONFIGS['instagram'] != null}">
<ul class="social-links circle">
<c:if test="${requestScope.CONFIGS['twitter_handle'] != null}">
<li class="twitter"><a target="_blank" href="<c:out value="${requestScope.CONFIGS['twitter_handle']}"/>"><i class="fa fa-twitter"></i></a></li>
@@ -60,8 +60,15 @@ response.setDateHeader ("Expires", -1);
<c:if test="${requestScope.CONFIGS['pinterest'] != null}">
<li class="pinterest"><a target="_blank" href="<c:out value="${requestScope.CONFIGS['pinterest']}"/>"><i class="fa fa-pinterest"></i></a></li>
</c:if>
+ <c:if test="${requestScope.CONFIGS['instagram'] != null}">
+ <li class="instagram"><a target="_blank" href="<c:out value="${requestScope.CONFIGS['instagram']}"/>"><i class="fa fa-instagram"></i></a></li>
+ </c:if>
</ul>
</c:if>
+
+ <c:if test="${requestScope.CONTENT['paymentDetails']!=null}">
+ <sm:pageContent contentCode="paymentDetails"/>
+ </c:if>
<hr class="hidden-md hidden-lg hidden-sm">
@@ -70,27 +77,15 @@ response.setDateHeader ("Expires", -1);
<div class="col-md-3 col-sm-6">
<c:if test="${requestScope.CONFIGS['displayStoreAddress'] == true}">
-
- <%--<p class="lead"><s:message code="label.store.tofindus" text="Where to find us" /></p> --%>
<ul class="list-icons">
<jsp:include page="/pages/shop/common/preBuiltBlocks/storeAddress.jsp"/>
-
+ <c:if test="${requestScope.CONTENT['contactUsDetails']!=null}">
+ <br/>
+ <sm:pageContent contentCode="contactUsDetails"/>
+ </c:if>
</ul>
</c:if>
- <%--<c:if test="${not empty requestScope.TOP_CATEGORIES}">
- <p class="lead">Top categories</p>
- <ul>
- <c:forEach items="${requestScope.TOP_CATEGORIES}" var="category">
- <li>
- <a href="<c:url value="/shop/category/${category.description.seUrl}.html"/><sm:breadcrumbParam categoryId="${category.id}"/>" class="current">
- <span class="name">${category.description.name}</span>
- </a>
- </li>
- </c:forEach>
- </ul>
- </c:if>--%>
-
<hr class="hidden-md hidden-lg">
@@ -104,7 +99,7 @@ response.setDateHeader ("Expires", -1);
<%-- <p class="lead">Top categories</p> --%>
<ul class="nav nav-pills nav-stacked">
<li class="<sm:activeLink linkCode="HOME" activeReturnCode="active"/>">
- <a class="dropdown-toggle" data-toggle="dropdown" href="<c:url value="/shop"/>"><s:message code="menu.home" text="Home"/></a>
+ <a href="<c:url value="/shop"/>"><s:message code="menu.home" text="Home"/></a>
</li>
<c:forEach items="${requestScope.TOP_CATEGORIES}" var="category">
<li>
@@ -114,13 +109,13 @@ response.setDateHeader ("Expires", -1);
</li>
</c:forEach>
<c:if test="${requestScope.CONFIGS['displayContactUs']==true}">
- <li class="<sm:activeLink linkCode="CONTACT" activeReturnCode="active"/>"><a class="dropdown-toggle" data-toggle="dropdown" href="<c:url value="/shop/store/contactus.html"/>"><s:message code="label.customer.contactus" text="Contact us"/></a></li>
+ <li class="<sm:activeLink linkCode="CONTACT" activeReturnCode="active"/>"><a href="<c:url value="/shop/store/contactus.html"/>"><s:message code="label.customer.contactus" text="Contact us"/></a></li>
</c:if>
</ul>
</c:if>
<c:if test="${requestScope.CONFIGS['displayCustomerSection'] == true}">
- <%-- <p class="lead"><s:message code="label.customer.myaccount" text="My Account" /></p> --%>
- <ul class="nav nav-pills nav-stacked">
+ <!--
+ <ul class="nav nav-pills nav-stacked">
<sec:authorize access="hasRole('AUTH_CUSTOMER') and fullyAuthenticated">
<li><a href="<c:url value="/shop/customer/account.html"/>"><s:message code="menu.profile" text="Profile"/></a></li>
<li><a href="<c:url value="/shop/customer/billing.html"/>"><s:message code="label.customer.billingshipping" text="Billing & shipping information"/></a></li>
@@ -134,7 +129,8 @@ response.setDateHeader ("Expires", -1);
<sec:authorize access="!hasRole('AUTH_CUSTOMER') and !fullyAuthenticated">
<li><a href="#"><s:message code="button.label.signin" text="Signin" /></a></li>
</sec:authorize>
- </ul>
+ </ul>
+ -->
</c:if>
@@ -146,9 +142,9 @@ response.setDateHeader ("Expires", -1);
<div class="col-md-4 col-sm-6">
- <img src="<c:out value="/sm-shop/resources/templates/exoticamobilia/img/entrepot.JPG"/>" />
-
-
+ <c:if test="${requestScope.CONTENT['footerMessage']!=null}">
+ <sm:pageContent contentCode="footerMessage"/>
+ </c:if>
</div><!-- /.col-md-3 -->
</div>
@@ -164,10 +160,10 @@ response.setDateHeader ("Expires", -1);
<div id="navbar-collapse-2" class="collapse navbar-collapse">
<ul class="nav navbar-nav">
<li class="<sm:activeLink linkCode="HOME" activeReturnCode="active"/>">
- <a class="dropdown-toggle" data-toggle="dropdown" href="<c:url value="/shop"/>"><s:message code="menu.home" text="Home"/></a>
+ <a href="<c:url value="/shop"/>"><s:message code="menu.home" text="Home"/></a>
</li>
<c:if test="${requestScope.CONFIGS['displayContactUs']==true}">
- <li class="<sm:activeLink linkCode="CONTACT" activeReturnCode="active"/>"><a class="dropdown-toggle" data-toggle="dropdown" href="<c:url value="/shop/store/contactus.html"/>"><s:message code="label.customer.contactus" text="Contact us"/></a></li>
+ <li class="<sm:activeLink linkCode="CONTACT" activeReturnCode="active"/>"><a href="<c:url value="/shop/store/contactus.html"/>"><s:message code="label.customer.contactus" text="Contact us"/></a></li>
</c:if>
</ul>
</div>
diff --git a/sm-shop/src/main/webapp/pages/shop/templates/exoticamobilia/sections/header.jsp b/sm-shop/src/main/webapp/pages/shop/templates/exoticamobilia/sections/header.jsp
index a1c4d1a..bc18816 100644
--- a/sm-shop/src/main/webapp/pages/shop/templates/exoticamobilia/sections/header.jsp
+++ b/sm-shop/src/main/webapp/pages/shop/templates/exoticamobilia/sections/header.jsp
@@ -22,14 +22,22 @@ response.setDateHeader ("Expires", -1);
<script src="<c:url value="/resources/templates/bootstrap3/js/typeahead.bundle.min.js" />"></script>
<script type="text/javascript">
-//Search code
+//***** Search code *****
$(document).ready(function() {
//post search form
- $("#searchButton").click(function(){
- var searchQuery = $('#searchField').val();
- $('#hiddenQuery').val(searchQuery);
- log('Search string : ' + searchQuery);
+ $(".searchButton").click(function(){
+ var searchQuery = $('#searchField').val();
+ var responsiveSearchField = $('#responsiveSearchField').val();
+ var q = searchQuery;
+ if(q==null || q=='') {
+ q = responsiveSearchField;
+ }
+ if(q==null || q =='') {
+ return;
+ }
+ $('#hiddenQuery').val(q);
+ //log('Search string : ' + searchQuery);
$('#hiddenSearchForm').submit();
});
@@ -41,7 +49,7 @@ $(document).ready(function() {
queryTokenizer: Bloodhound.tokenizers.whitespace,
<c:if test="${requestScope.CONFIGS['useDefaultSearchConfig'][requestScope.LANGUAGE.code]==true}">
<c:if test="${requestScope.CONFIGS['defaultSearchConfigPath'][requestScope.LANGUAGE.code]!=null}">
- prefetch: '<c:out value="${requestScope.CONFIGS['defaultSearchConfigPath'][requestScope.LANGUAGE.code]}"/>',
+ prefetch: '<c:out value="${requestScope.CONFIGS['defaultSearchConfigPath'][requestScope.LANGUAGE.code]}"/>',
</c:if>
</c:if>
remote: '<c:url value="/services/public/search/${requestScope.MERCHANT_STORE.code}/${requestScope.LANGUAGE.code}/autocomplete.html"/>?q=%QUERY'
@@ -92,7 +100,7 @@ $(document).ready(function() {
<script type="text/html" id="miniCartTemplate">
<li>
{{#code}}
- <table class="table table-hover">
+ <table class="minicart table table-hover">
<thead>
<tr>
<!-- not responsive -->
@@ -115,7 +123,7 @@ $(document).ready(function() {
 
{{/image}}
</td>
- <td class="cart-product">{{quantity}} {{name}}</td>
+ <td class="cart-product" width="50%">{{quantity}} {{name}}</td>
<td class="cart-amount">{{price}}</td>
<td><button productid="{{productId}}" class="close removeProductIcon" onclick="removeItemFromMinicart('{{id}}')">x</button></td>
</tr>
@@ -123,7 +131,7 @@ $(document).ready(function() {
</tbody>
</table>
<div class="panel-body text-right">
- <a href="#" onclick="viewShoppingCartPage();" class="btn btn-group btn-default btn-sm"><s:message code="label.checkout" text="Checkout"/></a>
+ <a href="#" onclick="viewShoppingCartPage();" class="btn btn-group btn-success btn-minicart"><s:message code="label.checkout" text="Checkout"/></a>
</div>
{{/code}}
{{^code}}
@@ -196,7 +204,7 @@ $(document).ready(function() {
<!-- ================ -->
<div class="header-top-first clearfix">
<!-- social links -->
- <c:if test="${requestScope.CONFIGS['facebook_page_url'] != null || requestScope.CONFIGS['twitter_handle'] != null || requestScope.CONFIGS['pinterest'] != null}">
+ <c:if test="${requestScope.CONFIGS['facebook_page_url'] != null || requestScope.CONFIGS['twitter_handle'] != null || requestScope.CONFIGS['pinterest'] != null || requestScope.CONFIGS['instagram'] != null}">
<ul class="social-links clearfix hidden-xs">
<c:if test="${requestScope.CONFIGS['twitter_handle'] != null}">
<li class="twitter"><a target="_blank" href="<c:out value="${requestScope.CONFIGS['twitter_handle']}"/>"><i class="fa fa-twitter"></i></a></li>
@@ -207,6 +215,9 @@ $(document).ready(function() {
<c:if test="${requestScope.CONFIGS['pinterest'] != null}">
<li class="pinterest"><a target="_blank" href="<c:out value="${requestScope.CONFIGS['pinterest']}"/>"><i class="fa fa-pinterest"></i></a></li>
</c:if>
+ <c:if test="${requestScope.CONFIGS['instagram'] != null}">
+ <li class="instagram"><a target="_blank" href="<c:out value="${requestScope.CONFIGS['instagram']}"/>"><i class="fa fa-instagram"></i></a></li>
+ </c:if>
</ul>
</c:if>
<div class="social-links hidden-lg hidden-md hidden-sm">
@@ -222,7 +233,10 @@ $(document).ready(function() {
<c:if test="${requestScope.CONFIGS['pinterest'] != null}">
<li class="pinterest"><a target="_blank" href="<c:out value="${requestScope.CONFIGS['pinterest']}"/>"><i class="fa fa-pinterest"></i></a></li>
</c:if>
- </ul>
+ <c:if test="${requestScope.CONFIGS['instagram'] != null}">
+ <li class="instagram"><a target="_blank" href="<c:out value="${requestScope.CONFIGS['instagram']}"/>"><i class="fa fa-instagram"></i></a></li>
+ </c:if>
+ </ul>
</div>
</div>
</div>
@@ -239,13 +253,19 @@ $(document).ready(function() {
<!-- ================ -->
<div class="header-top-dropdown">
<!-- search box -->
+ <c:if test="${requestScope.CONFIGS['displaySearchBox'] == true}">
<div id="searchFieldGroup" class="btn-group dropdown no-responsive">
<input id="searchField" class="typeahead form-control" name="q" type="text" />" autocomplete="off" spellcheck="false" dir="auto" value="<c:out value="${q}"/>">
</div>
<div class="btn-group dropdown">
- <button type="button" id="searchButton" class="btn dropdown-toggle no-responsive" data-toggle="dropdown"><i class="fa fa-search"></i><span class="uppercase"><s:message code="label.generic.search" text="Search" /></span></button>
+ <button type="button" class="btn dropdown-toggle no-responsive searchButton" data-toggle="dropdown"><i class="fa fa-search"></i><span class="uppercase"><s:message code="label.generic.search" text="Search" /></span></button>
+ <!-- important for submitting search -->
+ <form id="hiddenSearchForm" method="post" action="<c:url value="/shop/search/search.html"/>">
+ <input type="hidden" id="hiddenQuery" name="q">
+ </form>
</div>
- <c:if test="${fn:length(requestScope.MERCHANT_STORE.languages) > 0}">
+ </c:if>
+ <c:if test="${fn:length(requestScope.MERCHANT_STORE.languages) > 1}">
<!-- switch language -->
<div class="btn-group dropdown">
<!-- For this template only french and english supported, if required build a dropdown list with all languages -->
@@ -258,14 +278,18 @@ $(document).ready(function() {
</div>
</c:if>
<!-- Customer account menu populated by JS -->
+ <c:if test="${requestScope.CONFIGS['displayCustomerSection'] == true}">
<div class="btn-group dropdown" id="customerAccount"></div>
+ </c:if>
<!-- Shopping cart menu populated by JS -->
+ <c:if test="${requestScope.CONFIGS['allowPurchaseItems'] == true}">
<div id="miniCart" class="btn-group dropdown">
- <button id="open-cart" type="button" class="btn dropdown-toggle" data-toggle="dropdown"><i class="fa fa-shopping-cart no-desktop"></i> <span id="miniCartSummary"></span></button>
+ <button id="open-cart" type="button" class="btn dropdown-toggle" data-toggle="dropdown"><i class="fa fa-shopping-cart"></i> <span id="miniCartSummary"></span></button>
<!-- miniCartDetails id required to add cart content from html template -->
<ul id="miniCartDetails" class="dropdown-menu dropdown-menu-right dropdown-animation cart"></ul>
</div>
+ </c:if>
</div>
<!-- header top dropdowns end -->
@@ -289,14 +313,17 @@ $(document).ready(function() {
<div class="header-left clearfix" id="site-branding">
<c:choose>
<c:when test="${requestScope.CONTENT['logo']!=null}">
+ <!-- A content logo exist -->
<sm:pageContent contentCode="logo"/>
</c:when>
<c:otherwise>
<c:choose>
<c:when test="${not empty requestScope.MERCHANT_STORE.storeLogo}">
+ <!-- use merchant store logo -->
<img class="logoImage" src="<sm:storeLogo/>"/>
</c:when>
<c:otherwise>
+ <!-- Use store name -->
<div class="logo">
<h1>
<a class="grey store-name" href="<c:url value="/shop/"/>">
@@ -326,17 +353,6 @@ $(document).ready(function() {
</div>
-
- <%--
- </div>
- </div>
- </div>
- </div>
- <!--/.container -->
- --%>
-
-
-
\ No newline at end of file
diff --git a/sm-shop/src/main/webapp/pages/shop/templates/exoticamobilia/sections/jsLinks.jsp b/sm-shop/src/main/webapp/pages/shop/templates/exoticamobilia/sections/jsLinks.jsp
index 9663bcf..68ab969 100644
--- a/sm-shop/src/main/webapp/pages/shop/templates/exoticamobilia/sections/jsLinks.jsp
+++ b/sm-shop/src/main/webapp/pages/shop/templates/exoticamobilia/sections/jsLinks.jsp
@@ -11,31 +11,19 @@
- <!--<script src="<c:url value="/resources/templates/exoticamobilia/js/jquery-1.11.1.min.js" />"></script>-->
<script src="<c:url value="/resources/templates/exoticamobilia/js/bootstrap.js" />"></script>
<script src="<c:url value="/resources/templates/exoticamobilia/js/iframe_api" />"></script>
<script src="<c:url value="/resources/templates/exoticamobilia/js/jquery.magnific-popup.min.js" />"></script>
<script src="<c:url value="/resources/templates/exoticamobilia/js/isotope.js" />"></script>
- <!--
- <script src="<c:url value="/resources/templates/exoticamobilia/js/jquery_002.js" />"></script>
- <script src="<c:url value="/resources/templates/exoticamobilia/js/jquery_003.js" />"></script>
- <script src="<c:url value="/resources/templates/exoticamobilia/js/jquery_004.js" />"></script>
- <script src="<c:url value="/resources/templates/exoticamobilia/js/jquery_005.js" />"></script>
- <script src="<c:url value="/resources/templates/exoticamobilia/js/jquery_006.js" />"></script>
- <script src="<c:url value="/resources/templates/exoticamobilia/js/jquery_007.js" />"></script>
- <script src="<c:url value="/resources/templates/exoticamobilia/js/jquery_008.js" />"></script>
- -->
<script src="<c:url value="/resources/templates/exoticamobilia/js/jquery.event.move.js" />"></script>
- <!-- appear -->
- <script src="<c:url value="/resources/templates/exoticamobilia/js/jquery.js" />"></script>
+ <script src="<c:url value="/resources/templates/exoticamobilia/js/jquery.appear.js" />"></script>
+ <script src="<c:url value="/resources/templates/exoticamobilia/js/responsive-slider.min.js" />"></script>
<script src="<c:url value="/resources/templates/exoticamobilia/js/modernizr.js" />"></script>
<script src="<c:url value="/resources/templates/exoticamobilia/js/owl.js" />"></script>
- <!--
- <script src="<c:url value="/resources/templates/exoticamobilia/js/responsive-slider.js" />"></script>
- -->
+
diff --git a/sm-shop/src/main/webapp/pages/shop/templates/exoticamobilia/sections/navbar.jsp b/sm-shop/src/main/webapp/pages/shop/templates/exoticamobilia/sections/navbar.jsp
index 67d5891..33516f8 100644
--- a/sm-shop/src/main/webapp/pages/shop/templates/exoticamobilia/sections/navbar.jsp
+++ b/sm-shop/src/main/webapp/pages/shop/templates/exoticamobilia/sections/navbar.jsp
@@ -34,33 +34,27 @@ response.setDateHeader ("Expires", -1);
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
-
- <button type="button" class="navbar-toggle">
- <i class="fa fa-search"></i>
- </button>
-
- <!-- search bar collapsed -->
- <div id="responsiveSearchFieldGroup" class="">
- <input type="text" class="typeahead navbar-toggle"
- placeholder="Search for..." id="responsiveSearchField">
- <!--<span class="input-group-btn">-->
- <!--<button class="btn navbar-toggle" type="button" id="go">Search</button>-->
- <!--</span>-->
- </div>
+
+ <c:if test="${requestScope.CONFIGS['displaySearchBox'] == true}">
+ <button type="button" class="navbar-toggle searchButton no-desktop">
+ <i class="fa fa-search"></i>
+ </button>
+
+ <!-- search bar collapsed -->
+ <div id="responsiveSearchFieldGroup" class="no-desktop">
+ <input type="text" class="typeahead navbar-toggle"
+ placeholder="" id="responsiveSearchField">
+ </div>
+ </c:if>
+
+
+
</div>
<div id="mainNavigation" class="collapse navbar-collapse">
<ul class="nav navbar-nav navbar-right" id="topMain">
-
- <!--<li
- class="<sm:activeLink linkCode="HOME" activeReturnCode="active"/>">
- <a href="<c:url value="/shop"/>"><s:message code="menu.home"
- text="Home" /></a>
- </li>-->
-
-
<c:set var="code" value="${category.code}"/>
<c:forEach items="${requestScope.TOP_CATEGORIES}" var="category">
diff --git a/sm-shop/src/main/webapp/pages/shop/templates/exoticamobilia/sections/productBox.jsp b/sm-shop/src/main/webapp/pages/shop/templates/exoticamobilia/sections/productBox.jsp
index f447c60..6338639 100644
--- a/sm-shop/src/main/webapp/pages/shop/templates/exoticamobilia/sections/productBox.jsp
+++ b/sm-shop/src/main/webapp/pages/shop/templates/exoticamobilia/sections/productBox.jsp
@@ -1,49 +1,76 @@
-<%
-response.setCharacterEncoding("UTF-8");
-response.setHeader("Cache-Control","no-cache");
-response.setHeader("Pragma","no-cache");
-response.setDateHeader ("Expires", -1);
-%>
-
-<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
-<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
-<%@ taglib uri="http://www.springframework.org/tags" prefix="s" %>
-<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
-<%@ taglib uri="/WEB-INF/shopizer-tags.tld" prefix="sm" %>
-
-<%@page contentType="text/html"%>
-<%@page pageEncoding="UTF-8"%>
- <c:forEach items="${requestScope.ITEMS}" var="product">
- <div class="col-sm-4" data-id="${product.id}" item-price="${product.price}" item-name="${product.description.name}" item-order="${product.sortOrder}">
- <div class="box-style-1 white-bg object-non-visible animated object-visible fadeInUpSmall" data-animation-effect="fadeInUpSmall" data-effect-delay="0">
- <c:if test="${product.description.highlights!=null && product.description.highlights!=''}">
- <div class="ribbon-wrapper-green">
- <div class="ribbon-green">
- <c:out value="${product.description.highlights}" />
- </div>
- </div>
- </c:if>
- <div class="product-image"><c:if test="${product.image!=null}"><a href="<c:url value="/shop/product/" /><c:out value="${product.description.friendlyUrl}"/>.html"><img src="<sm:shopProductImage imageName="${product.image.imageName}" sku="${product.sku}"/>" class="product-img" /></a></c:if></div>
- <div class="product-info">
- <a href="<c:url value="/shop/product/" /><c:out value="${product.description.friendlyUrl}"/>.html<sm:breadcrumbParam productId="${product.id}"/>"><h3 class="product-name" itemprop="name"><c:out value="${product.description.name}"/></h3></a>
- </div>
- <div data-animation-effect="fadeInUpSmall" data-effect-delay="0">
- <h4>
- <c:choose>
- <c:when test="${product.discounted}">
- <del><c:out value="${product.originalPrice}" /></del> <span class="specialPrice" itemprop="price"><c:out value="${product.finalPrice}" /></span>
- </c:when>
- <c:otherwise>
- <span itemprop="price"><c:out value="${product.finalPrice}" /></span>
- </c:otherwise>
- </c:choose>
- </h4>
- </div>
- <div class="product-actions">
-
- <a class="details" href="<c:url value="/shop/product/" /><c:out value="${product.description.friendlyUrl}"/>.html<sm:breadcrumbParam productId="${product.id}"/>"><s:message code="button.label.view" text="Details" /></a>
- <c:choose><c:when test="${requestScope.FEATURED==true}"><c:if test="${requestScope.CONFIGS['displayAddToCartOnFeaturedItems']==true}"> | <a class="addToCart" href="javascript:void(0);" productId="${product.id}"><s:message code="button.label.addToCart" text="Add to cart" /></a></c:if></c:when><c:otherwise> | <a class="addToCart" href="javascript:void(0);" productId="${product.id}"><s:message code="button.label.addToCart" text="Add to cart" /></a></c:otherwise></c:choose>
- </div>
- </div>
- </div>
- </c:forEach>
\ No newline at end of file
+<%
+response.setCharacterEncoding("UTF-8");
+response.setHeader("Cache-Control","no-cache");
+response.setHeader("Pragma","no-cache");
+response.setDateHeader ("Expires", -1);
+%>
+
+<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
+<%@ taglib uri="http://www.springframework.org/tags" prefix="s" %>
+<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
+<%@ taglib uri="/WEB-INF/shopizer-tags.tld" prefix="sm" %>
+
+<%@page contentType="text/html"%>
+<%@page pageEncoding="UTF-8"%>
+<div class="row-exoticamobilia row">
+ <c:forEach items="${requestScope.ITEMS}" var="product">
+ <div class="col-sm-4" data-id="${product.id}" item-price="${product.price}" item-name="${product.description.name}" item-order="${product.sortOrder}">
+ <div class="box-style-1 white-bg object-non-visible animated object-visible">
+ <c:if test="${product.description.highlights!=null && product.description.highlights!=''}">
+ <div class="ribbon-wrapper-green">
+ <div class="ribbon-green">
+ <c:out value="${product.description.highlights}" />
+ </div>
+ </div>
+ </c:if>
+ <c:if test="${!product.canBePurchased }">
+ <div class="sold-out-box">
+ <span class="sold-out-text"><s:message code="label.soldout" text="Sold out" /></span>
+ </div>
+ </c:if>
+ <div class="product-image"><c:if test="${product.image!=null}"><a href="<c:url value="/shop/product/" /><c:out value="${product.description.friendlyUrl}"/>.html"><img src="<sm:shopProductImage imageName="${product.image.imageName}" sku="${product.sku}"/>" class="product-img" /></a></c:if></div>
+
+ <!-- *** Product Name & Price Starts *** -->
+ <div class="caption">
+ <div class="product-details">
+ <div class="clearfix">
+ <!--<a href="<c:url value="/shop/product/" /><c:out value="${product.description.friendlyUrl}"/>.html<sm:breadcrumbParam productId="${product.id}"/>">-->
+ <h3 class="product-heading product-name" itemprop="name"><c:out value="${product.description.name}"/></h3>
+ <!--</a>-->
+ <h4 class="price">
+ <h4>
+ <c:choose>
+ <c:when test="${product.discounted}">
+ <del><c:out value="${product.originalPrice}" /></del> <span class="specialPrice" itemprop="price"><c:out value="${product.finalPrice}" /></span>
+ </c:when>
+ <c:otherwise>
+ <span itemprop="price"><c:out value="${product.finalPrice}" /></span>
+ </c:otherwise>
+ </c:choose>
+ </h4>
+ </h4>
+ </div>
+ <!-- Product Name & Price Ends -->
+ <!-- Product Buttons Starts -->
+ <div class="clearfix">
+ <a class="btn btn-default pull-left" href="<c:url value="/shop/product/" /><c:out value="${product.description.friendlyUrl}"/>.html<sm:breadcrumbParam productId="${product.id}"/>"><s:message code="button.label.view" text="Details" /></a>
+ <c:choose>
+ <c:when test="${requestScope.FEATURED==true}">
+ <c:if test="${requestScope.CONFIGS['displayAddToCartOnFeaturedItems']==true && requestScope.CONFIGS['allowPurchaseItems']==true && product.canBePurchased}"><a class="btn btn-buy pull-right addToCart" href="javascript:void(0);" productId="${product.id}"><s:message code="button.label.addToCart" text="Add to cart" /></a>
+ </c:if>
+ </c:when>
+ <c:otherwise>
+ <c:if test="${requestScope.CONFIGS['allowPurchaseItems']==true && product.canBePurchased}">
+ <a class="btn btn-buy pull-right addToCart" href="javascript:void(0);" productId="${product.id}"><s:message code="button.label.addToCart" text="Add to cart" /></a>
+ </c:if>
+ </c:otherwise>
+ </c:choose>
+ </div>
+ <!-- Product Buttons Ends -->
+ </div>
+ </div>
+ </div>
+ </div>
+ </c:forEach>
+</div>
\ No newline at end of file
diff --git a/sm-shop/src/main/webapp/pages/shop/templates/exoticamobilia/sections/shopLinks.jsp b/sm-shop/src/main/webapp/pages/shop/templates/exoticamobilia/sections/shopLinks.jsp
index 5600097..4e7c9f3 100644
--- a/sm-shop/src/main/webapp/pages/shop/templates/exoticamobilia/sections/shopLinks.jsp
+++ b/sm-shop/src/main/webapp/pages/shop/templates/exoticamobilia/sections/shopLinks.jsp
@@ -5,24 +5,18 @@
<%@ page session="false" %>
- <!--<script src="<c:url value="/resources/js/jquery-1.10.2.min.js" />"></script>-->
<script src="<c:url value="/resources/templates/exoticamobilia/js/jquery-1.11.1.min.js" />"></script>
- <!-- WEB FONTS -->
- <!--<link href="<c:url value="/resources/templates/bootstrap3/css/css.css" />" rel="stylesheet" type="text/css">-->
-
+
<!-- CORE CSS -->
<link href="<c:url value="/resources/templates/exoticamobilia/css/bootstrap.css" />" rel="stylesheet" type="text/css">
<!-- more fonts, cursor up -->
<link href="<c:url value="/resources/templates/exoticamobilia/css/fontello.css" />" rel="stylesheet" type="text/css">
<link href="<c:url value="/resources/templates/exoticamobilia/css/magnific-popup.css" />" rel="stylesheet" type="text/css">
- <!--<link href="<c:url value="/resources/templates/exoticamobilia/css/owl.css" />" rel="stylesheet" type="text/css">-->
- <!--
- <link href="<c:url value="/resources/templates/exoticamobilia/css/magnific-popup.css" />" rel="stylesheet" type="text/css">
- <link href="<c:url value="/resources/templates/exoticamobilia/css/animations.css" />" rel="stylesheet" type="text/css">
- -->
+
+
<link href="<c:url value="/resources/templates/exoticamobilia/css/responsive-slider.css" />" rel="stylesheet" type="text/css">
- <link rel="shortcut icon" href="<c:url value="/resources/templates/exoticamobilia/img/favicon.ico"/> ">
+ <link rel="icon" href="<c:url value="/resources/templates/exoticamobilia/img/favicon.ico"/> ">
<!-- Theme -->
@@ -32,17 +26,7 @@
<link href="<c:url value="/resources/templates/exoticamobilia/css/dark_gray.css" />" rel="stylesheet" type="text/css">
- <!--
-
- <link href="<c:url value="/resources/templates/exoticamobilia/css/css_002.css" />" rel="stylesheet" type="text/css">
- <link href="<c:url value="/resources/templates/exoticamobilia/css/css.css" />" rel="stylesheet" type="text/css">
- <link href="<c:url value="/resources/templates/exoticamobilia/css/custom.css" />" rel="stylesheet" type="text/css">
- <link href="<c:url value="/resources/templates/exoticamobilia/css/dark_gray.css" />" rel="stylesheet" type="text/css">
- <link href="<c:url value="/resources/templates/exoticamobilia/css/extralayers.css" />" rel="stylesheet" type="text/css">
- <link href="<c:url value="/resources/templates/exoticamobilia/css/settings.css" />" rel="stylesheet" type="text/css">
- <link href="<c:url value="/resources/templates/exoticamobilia/css/style-switcher.css" />" rel="stylesheet" type="text/css">
- -->
<!-- generic and common css file -->
<link href="<c:url value="/resources/css/sm.css" />" rel="stylesheet">
diff --git a/sm-shop/src/main/webapp/resources/css/bootstrap/css/datepicker.css b/sm-shop/src/main/webapp/resources/css/bootstrap/css/datepicker.css
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/css/bootstrap/css/sm-bootstrap.css b/sm-shop/src/main/webapp/resources/css/bootstrap/css/sm-bootstrap.css
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/css/bootstrap/css/sm-bootstrap-responsive.css b/sm-shop/src/main/webapp/resources/css/bootstrap/css/sm-bootstrap-responsive.css
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/css/bootstrap/img/glyphicons-halflings.png b/sm-shop/src/main/webapp/resources/css/bootstrap/img/glyphicons-halflings.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/css/bootstrap/img/glyphicons-halflings.png and b/sm-shop/src/main/webapp/resources/css/bootstrap/img/glyphicons-halflings.png differ
diff --git a/sm-shop/src/main/webapp/resources/css/bootstrap/img/glyphicons-halflings-white.png b/sm-shop/src/main/webapp/resources/css/bootstrap/img/glyphicons-halflings-white.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/css/bootstrap/img/glyphicons-halflings-white.png and b/sm-shop/src/main/webapp/resources/css/bootstrap/img/glyphicons-halflings-white.png differ
diff --git a/sm-shop/src/main/webapp/resources/css/font-awesome/css/font-awesome.css b/sm-shop/src/main/webapp/resources/css/font-awesome/css/font-awesome.css
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/css/font-awesome/css/font-awesome.min.css b/sm-shop/src/main/webapp/resources/css/font-awesome/css/font-awesome.min.css
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/css/font-awesome/css/font-awesome-ie7.css b/sm-shop/src/main/webapp/resources/css/font-awesome/css/font-awesome-ie7.css
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/css/font-awesome/css/font-awesome-ie7.min.css b/sm-shop/src/main/webapp/resources/css/font-awesome/css/font-awesome-ie7.min.css
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/css/font-awesome/font/FontAwesome.otf b/sm-shop/src/main/webapp/resources/css/font-awesome/font/FontAwesome.otf
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/css/font-awesome/font/FontAwesome.otf and b/sm-shop/src/main/webapp/resources/css/font-awesome/font/FontAwesome.otf differ
diff --git a/sm-shop/src/main/webapp/resources/css/font-awesome/font/fontawesome-webfont.eot b/sm-shop/src/main/webapp/resources/css/font-awesome/font/fontawesome-webfont.eot
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/css/font-awesome/font/fontawesome-webfont.eot and b/sm-shop/src/main/webapp/resources/css/font-awesome/font/fontawesome-webfont.eot differ
diff --git a/sm-shop/src/main/webapp/resources/css/font-awesome/font/fontawesome-webfont.svg b/sm-shop/src/main/webapp/resources/css/font-awesome/font/fontawesome-webfont.svg
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/css/font-awesome/font/fontawesome-webfont.ttf b/sm-shop/src/main/webapp/resources/css/font-awesome/font/fontawesome-webfont.ttf
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/css/font-awesome/font/fontawesome-webfont.ttf and b/sm-shop/src/main/webapp/resources/css/font-awesome/font/fontawesome-webfont.ttf differ
diff --git a/sm-shop/src/main/webapp/resources/css/font-awesome/font/fontawesome-webfont.woff b/sm-shop/src/main/webapp/resources/css/font-awesome/font/fontawesome-webfont.woff
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/css/font-awesome/font/fontawesome-webfont.woff and b/sm-shop/src/main/webapp/resources/css/font-awesome/font/fontawesome-webfont.woff differ
diff --git a/sm-shop/src/main/webapp/resources/css/font-awesome/fonts/FontAwesome.otf b/sm-shop/src/main/webapp/resources/css/font-awesome/fonts/FontAwesome.otf
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/css/font-awesome/fonts/FontAwesome.otf and b/sm-shop/src/main/webapp/resources/css/font-awesome/fonts/FontAwesome.otf differ
diff --git a/sm-shop/src/main/webapp/resources/css/font-awesome/fonts/fontawesome-webfont.eot b/sm-shop/src/main/webapp/resources/css/font-awesome/fonts/fontawesome-webfont.eot
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/css/font-awesome/fonts/fontawesome-webfont.eot and b/sm-shop/src/main/webapp/resources/css/font-awesome/fonts/fontawesome-webfont.eot differ
diff --git a/sm-shop/src/main/webapp/resources/css/font-awesome/fonts/fontawesome-webfont.svg b/sm-shop/src/main/webapp/resources/css/font-awesome/fonts/fontawesome-webfont.svg
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/css/font-awesome/fonts/fontawesome-webfont.ttf b/sm-shop/src/main/webapp/resources/css/font-awesome/fonts/fontawesome-webfont.ttf
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/css/font-awesome/fonts/fontawesome-webfont.ttf and b/sm-shop/src/main/webapp/resources/css/font-awesome/fonts/fontawesome-webfont.ttf differ
diff --git a/sm-shop/src/main/webapp/resources/css/font-awesome/fonts/fontawesome-webfont.woff b/sm-shop/src/main/webapp/resources/css/font-awesome/fonts/fontawesome-webfont.woff
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/css/font-awesome/fonts/fontawesome-webfont.woff and b/sm-shop/src/main/webapp/resources/css/font-awesome/fonts/fontawesome-webfont.woff differ
diff --git a/sm-shop/src/main/webapp/resources/css/font-awesome/less/bootstrap.less b/sm-shop/src/main/webapp/resources/css/font-awesome/less/bootstrap.less
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/css/font-awesome/less/bordered-pulled.less b/sm-shop/src/main/webapp/resources/css/font-awesome/less/bordered-pulled.less
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/css/font-awesome/less/core.less b/sm-shop/src/main/webapp/resources/css/font-awesome/less/core.less
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/css/font-awesome/less/extras.less b/sm-shop/src/main/webapp/resources/css/font-awesome/less/extras.less
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/css/font-awesome/less/fixed-width.less b/sm-shop/src/main/webapp/resources/css/font-awesome/less/fixed-width.less
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/css/font-awesome/less/font-awesome.less b/sm-shop/src/main/webapp/resources/css/font-awesome/less/font-awesome.less
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/css/font-awesome/less/font-awesome-ie7.less b/sm-shop/src/main/webapp/resources/css/font-awesome/less/font-awesome-ie7.less
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/css/font-awesome/less/icons.less b/sm-shop/src/main/webapp/resources/css/font-awesome/less/icons.less
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/css/font-awesome/less/larger.less b/sm-shop/src/main/webapp/resources/css/font-awesome/less/larger.less
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/css/font-awesome/less/list.less b/sm-shop/src/main/webapp/resources/css/font-awesome/less/list.less
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/css/font-awesome/less/mixins.less b/sm-shop/src/main/webapp/resources/css/font-awesome/less/mixins.less
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/css/font-awesome/less/path.less b/sm-shop/src/main/webapp/resources/css/font-awesome/less/path.less
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/css/font-awesome/less/rotated-flipped.less b/sm-shop/src/main/webapp/resources/css/font-awesome/less/rotated-flipped.less
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/css/font-awesome/less/spinning.less b/sm-shop/src/main/webapp/resources/css/font-awesome/less/spinning.less
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/css/font-awesome/less/stacked.less b/sm-shop/src/main/webapp/resources/css/font-awesome/less/stacked.less
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/css/font-awesome/less/variables.less b/sm-shop/src/main/webapp/resources/css/font-awesome/less/variables.less
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/css/font-awesome/scss/_bootstrap.scss b/sm-shop/src/main/webapp/resources/css/font-awesome/scss/_bootstrap.scss
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/css/font-awesome/scss/_bordered-pulled.scss b/sm-shop/src/main/webapp/resources/css/font-awesome/scss/_bordered-pulled.scss
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/css/font-awesome/scss/_core.scss b/sm-shop/src/main/webapp/resources/css/font-awesome/scss/_core.scss
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/css/font-awesome/scss/_extras.scss b/sm-shop/src/main/webapp/resources/css/font-awesome/scss/_extras.scss
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/css/font-awesome/scss/_fixed-width.scss b/sm-shop/src/main/webapp/resources/css/font-awesome/scss/_fixed-width.scss
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/css/font-awesome/scss/_icons.scss b/sm-shop/src/main/webapp/resources/css/font-awesome/scss/_icons.scss
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/css/font-awesome/scss/_larger.scss b/sm-shop/src/main/webapp/resources/css/font-awesome/scss/_larger.scss
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/css/font-awesome/scss/_list.scss b/sm-shop/src/main/webapp/resources/css/font-awesome/scss/_list.scss
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/css/font-awesome/scss/_mixins.scss b/sm-shop/src/main/webapp/resources/css/font-awesome/scss/_mixins.scss
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/css/font-awesome/scss/_path.scss b/sm-shop/src/main/webapp/resources/css/font-awesome/scss/_path.scss
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/css/font-awesome/scss/_rotated-flipped.scss b/sm-shop/src/main/webapp/resources/css/font-awesome/scss/_rotated-flipped.scss
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/css/font-awesome/scss/_spinning.scss b/sm-shop/src/main/webapp/resources/css/font-awesome/scss/_spinning.scss
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/css/font-awesome/scss/_stacked.scss b/sm-shop/src/main/webapp/resources/css/font-awesome/scss/_stacked.scss
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/css/font-awesome/scss/_variables.scss b/sm-shop/src/main/webapp/resources/css/font-awesome/scss/_variables.scss
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/css/font-awesome/scss/font-awesome.scss b/sm-shop/src/main/webapp/resources/css/font-awesome/scss/font-awesome.scss
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/css/font-awesome/scss/font-awesome-ie7.scss b/sm-shop/src/main/webapp/resources/css/font-awesome/scss/font-awesome-ie7.scss
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/css/shopizer-admin.css b/sm-shop/src/main/webapp/resources/css/shopizer-admin.css
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/css/showLoading.css b/sm-shop/src/main/webapp/resources/css/showLoading.css
old mode 100755
new mode 100644
sm-shop/src/main/webapp/resources/css/sm.css 629(+353 -276)
diff --git a/sm-shop/src/main/webapp/resources/css/sm.css b/sm-shop/src/main/webapp/resources/css/sm.css
old mode 100755
new mode 100644
index 5c1b51b..06783f5
--- a/sm-shop/src/main/webapp/resources/css/sm.css
+++ b/sm-shop/src/main/webapp/resources/css/sm.css
@@ -1,276 +1,353 @@
-/**
-*Generic Shopizer shop css file
-*
-**/
-
-
-.total-price {
- width: 100%; float: left; height: 27px
-}
-
-.total-price1 {
- background-image: url(../img/shopizer/cart-price1.gif); width: 5px;; background-repeat: no-repeat; float: left; height: 27px
-}
-
-.total-price2 {
- background-image: url(../img/shopizer/cart-price2.gif); width:95%; TEXT-ALIGN: right; PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; FONT-STYLE: normal; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BACKGROUND-REPEAT: repeat-x; FONT-FAMILY: Tahoma, Helvetica, Arial; FLOAT: left; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; HEIGHT: 27px; COLOR: #e1e1e1; BORDER-LEFT-WIDTH: 0px; FONT-WEIGHT: normal; PADDING-TOP: 2px
-}
-.total-price3 {
- background-image: url(../img/shopizer/cart-price3.gif); width: 5px; background-repeat: no-repeat; float: left; height: 27px
-}
-.total-label {
- font-size: 14px
-}
-.price-label {
- color: #8dc63f
-}
-.price-total {
- font-size: 18px;
-}
-
-.section-header {
- BACKGROUND-IMAGE: url(../img/shopizer/header-dot.gif); PADDING-BOTTOM: 6px; TEXT-TRANSFORM: uppercase; FONT-STYLE: normal; WIDTH: 100%; BACKGROUND-REPEAT: repeat-x; FONT-FAMILY: "Times New Roman"; BACKGROUND-POSITION: left bottom; FLOAT: left; COLOR: #a1a1a1; FONT-SIZE: 18px; FONT-WEIGHT: normal
-}
-.section-header-1stword {
- COLOR: #535353
-}
-
-.short-form-actions {
- margin-top: 5px;
- padding: 5px 0px 18px;
-}
-
-.sm-ui-component label {
- color: #333333;
- margin-bottom: 0;
- display: inline;
-}
-
-/** signin **/
-
-#signinPane {
- padding: 15px;
- padding-bottom: 0px;
-}
-
-
-/** shopping cart **/
-.cartmessage {
- margin-left:10px;
- margin-top:10px;
- margin-bottom:10px;
-}
-
-#mainCartTable tbody tr:hover td, .table tbody tr:hover th {
- background-color: transparent;
-}
-
-
-
-
-
-#searchGroup .tt-suggestion {
- padding: 8px 20px;
-}
-
-
-#searchGroup .name {
- font-weight: bold;
-}
-
-#searchGroup .description {
- font-size: 14px;
-}
-
-#searchButton {
- height: 37px;
-}
-
-/** boxes **/
-.box-title {
-
- background-color: #FBFBFB;
- background-image: -moz-linear-gradient(center top , #FFFFFF, #F5F5F5);
- box-shadow: 0 1px 0 #FFFFFF inset;
- border: 1px solid #DDDDDD;
- border-radius: 4px 4px 0px 0px;
- color: #000000;
- font-size: 12px;
- font-weight: bold;
- width:100%;
- height: 30px;
- position: absolute;
- margin-left:-20px;
- top: -1px;
-}
-
-.box-h1 {
- color: #000000;
- font-size: 16px;
- font-weight: bold;
- width:100%;
-}
-
-
-.box-title p {
- padding:8px;
-}
-
-
-.checkout-box {
- background-color: #FFF;
- border: 1px solid #DDDDDD;
- padding: 39px 19px 14px;
- position: relative;
-}
-
-#summary-table {
- table-layout:fixed;
- width:100%;
-}
-
-.error { color: #ff0000; }
-
-.no_margin{
- margin:0px !important;
-}
-
-input.required, select.required, checkbox.required, textarea.required {
- background-color: #FFC;
-}
-
-.contentPages {
- margin:10px !important;
-}
-
-.customerSection {
- margin:10px !important;
-}
-
-.socialLinksSection {
- margin:10px !important;
-}
-
-/** cart colors **/
-#mainCartTable th {
- background-color: #FBFBFB;
- background-image: -moz-linear-gradient(center top , #FFFFFF, #F5F5F5);
- box-shadow: 0 1px 0 #FFFFFF inset;
-}
-
-form input.valid {
- background: url("../img/check.png") no-repeat scroll 250px center rgba(0, 0, 0, 0);
-}
-
-/** checkout **/
-#checkoutForm .img-add-on {
- background-color: #FFF;
- border: 0px;
- display: inline-block;
- font-weight: normal;
- height: 32px;
- line-height: 18px;
- min-width: 16px;
- padding: 4px 5px;
- text-align: center;
- text-shadow: 0 1px 0 #FFFFFF;
- vertical-align: middle;
- width: auto;
-}
-
-.nomargin {
- margin: 0 !important;
-}
-
-.alert-custom {
- border-bottom: 1px solid #EEEEEE;
- background-color: #FFFFFF;
- padding-bottom: 20px;
- margin-bottom:18px;
- height:50px;
-}
-
-#orderTableTitle {
- margin-top:20px;
-}
-
-#cartContent .item {
- border-bottom: 1px dotted #DDDDDD;
-}
-
-#cartContent .cartImage {
- float: left;
- padding: 10px;
- text-align: left;
- width: 15%;
-}
-
-#cartContent .productName {
- float: left;
- padding: 10px;
- font-size: 15px;
- text-align: left;
- width: 40%;
-}
-
-#cartContent .quantity {
- float: left;
- font-size: 15px;
- padding: 10px;
- text-align: center;
- width: 10%;
-}
-
-#cartContent .totalPrice {
- float: right;
- font-size: 15px;
- font-weight: bold;
- padding: 10px;
- text-align: right;
- width: 10%;
-}
-
-
-#cartContent .subTotal {
- float: right;
- font-size: 15px;
- padding: 10px;
- text-align: right;
- width: 10%;
-}
-
-#cartContent .total {
- text-align: right;
- padding: 10px;
-}
-
-.totalItem {
- font-size: 15px;
- padding: 10px;
-}
-
-.checkoutButton {
- margin-top:5px;
-}
-
-#customerAgreementSection {
- padding-top: 19px !important;
-}
-
-#customer-agreement-area {
- display:none;
- height:200px;
- overflow:auto;
- margin-bottom:1.5em;
- padding:10px;
- border:solid 1px #d7d7d7;
- color:#505050;
- background-color:#ffffff;
- font-size:90%;
-}
-
-
-
-
-
-
+/**
+*Generic Shopizer shop css file
+*
+**/
+
+
+.total-price {
+ width: 100%; float: left; height: 27px
+}
+
+.total-price1 {
+ background-image: url(../img/shopizer/cart-price1.gif); width: 5px;; background-repeat: no-repeat; float: left; height: 27px
+}
+
+.total-price2 {
+ background-image: url(../img/shopizer/cart-price2.gif); width:95%; TEXT-ALIGN: right; PADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; FONT-STYLE: normal; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BACKGROUND-REPEAT: repeat-x; FONT-FAMILY: Tahoma, Helvetica, Arial; FLOAT: left; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; HEIGHT: 27px; COLOR: #e1e1e1; BORDER-LEFT-WIDTH: 0px; FONT-WEIGHT: normal; PADDING-TOP: 2px
+}
+.total-price3 {
+ background-image: url(../img/shopizer/cart-price3.gif); width: 5px; background-repeat: no-repeat; float: left; height: 27px
+}
+.total-label {
+ font-size: 14px
+}
+.price-label {
+ color: #8dc63f
+}
+.price-total {
+ font-size: 18px;
+}
+
+.section-header {
+ BACKGROUND-IMAGE: url(../img/shopizer/header-dot.gif); PADDING-BOTTOM: 6px; TEXT-TRANSFORM: uppercase; FONT-STYLE: normal; WIDTH: 100%; BACKGROUND-REPEAT: repeat-x; FONT-FAMILY: "Times New Roman"; BACKGROUND-POSITION: left bottom; FLOAT: left; COLOR: #a1a1a1; FONT-SIZE: 18px; FONT-WEIGHT: normal
+}
+.section-header-1stword {
+ COLOR: #535353
+}
+
+.short-form-actions {
+ margin-top: 5px;
+ padding: 5px 0px 18px;
+}
+
+.sm-ui-component label {
+ color: #333333;
+ margin-bottom: 0;
+ display: inline;
+}
+
+/** signin **/
+
+#signinPane {
+ padding: 15px;
+ padding-bottom: 0px;
+}
+
+
+/** shopping cart **/
+.cartmessage {
+ margin-left:10px;
+ margin-top:10px;
+ margin-bottom:10px;
+}
+
+#mainCartTable tbody tr:hover td, .table tbody tr:hover th {
+ background-color: transparent;
+}
+
+
+
+
+
+#searchGroup .tt-suggestion {
+ padding: 8px 20px;
+}
+
+
+#searchGroup .name {
+ font-weight: bold;
+}
+
+#searchGroup .description {
+ font-size: 14px;
+}
+
+#searchButton {
+ height: 37px;
+}
+
+/** boxes **/
+.box-title {
+
+ background-color: #FBFBFB;
+ background-image: -moz-linear-gradient(center top , #FFFFFF, #F5F5F5);
+ box-shadow: 0 1px 0 #FFFFFF inset;
+ border: 1px solid #DDDDDD;
+ border-radius: 4px 4px 0px 0px;
+ color: #000000;
+ font-size: 12px;
+ font-weight: bold;
+ width:100%;
+ height: 30px;
+ position: absolute;
+ margin-left:-20px;
+ top: -1px;
+}
+
+.box-h1 {
+ color: #000000;
+ font-size: 16px;
+ font-weight: bold;
+ width:100%;
+}
+
+
+.box-title p {
+ padding:8px;
+}
+
+
+.checkout-box {
+ background-color: #FFF;
+ border: 1px solid #DDDDDD;
+ padding: 39px 19px 14px;
+ position: relative;
+}
+
+#summary-table {
+ table-layout:fixed;
+ width:100%;
+}
+
+.error { color: #ff0000; }
+
+.no_margin{
+ margin:0px !important;
+}
+
+input.required, select.required, checkbox.required, textarea.required {
+ background-color: #FFC;
+}
+
+.contentPages {
+ margin:10px !important;
+}
+
+.customerSection {
+ margin:10px !important;
+}
+
+.socialLinksSection {
+ margin:10px !important;
+}
+
+/** cart colors **/
+#mainCartTable th {
+ background-color: #FBFBFB;
+ background-image: -moz-linear-gradient(center top , #FFFFFF, #F5F5F5);
+ box-shadow: 0 1px 0 #FFFFFF inset;
+}
+
+form input.valid {
+ background: url("../img/check.png") no-repeat scroll 250px center rgba(0, 0, 0, 0);
+}
+
+/** checkout **/
+#checkoutForm .img-add-on {
+ background-color: #FFF;
+ border: 0px;
+ display: inline-block;
+ font-weight: normal;
+ height: 32px;
+ line-height: 18px;
+ min-width: 16px;
+ padding: 4px 5px;
+ text-align: center;
+ text-shadow: 0 1px 0 #FFFFFF;
+ vertical-align: middle;
+ width: auto;
+}
+
+.nomargin {
+ margin: 0 !important;
+}
+
+.alert-custom {
+ border-bottom: 1px solid #EEEEEE;
+ background-color: #FFFFFF;
+ padding-bottom: 20px;
+ margin-bottom:18px;
+ height:50px;
+}
+
+#orderTableTitle {
+ margin-top:20px;
+}
+
+#cartContent .item {
+ border-bottom: 1px dotted #DDDDDD;
+}
+
+#cartContent .cartImage {
+ float: left;
+ padding: 10px;
+ text-align: left;
+ width: 15%;
+}
+
+#cartContent .productName {
+ float: left;
+ padding: 10px;
+ font-size: 15px;
+ text-align: left;
+ width: 40%;
+}
+
+#cartContent .quantity {
+ float: left;
+ font-size: 15px;
+ padding: 10px;
+ text-align: center;
+ width: 10%;
+}
+
+#cartContent .totalPrice {
+ float: right;
+ font-size: 15px;
+ font-weight: bold;
+ padding: 10px;
+ text-align: right;
+ width: 10%;
+}
+
+
+#cartContent .subTotal {
+ float: right;
+ font-size: 15px;
+ padding: 10px;
+ text-align: right;
+ width: 10%;
+}
+
+#cartContent .total {
+ text-align: right;
+ padding: 10px;
+}
+
+.totalItem {
+ font-size: 15px;
+ padding: 10px;
+}
+
+.checkoutButton {
+ margin-top:5px;
+}
+
+#customerAgreementSection {
+ padding-top: 19px !important;
+}
+
+#customer-agreement-area {
+ display:none;
+ height:200px;
+ overflow:auto;
+ margin-bottom:1.5em;
+ padding:10px;
+ border:solid 1px #d7d7d7;
+ color:#505050;
+ background-color:#ffffff;
+ font-size:90%;
+}
+
+.form-control-75 {
+ width:75% !important;
+}
+
+.form-control-50 {
+ width:50% !important;
+}
+
+.form-control-25 {
+ width:25% !important;
+}
+
+.stars img {
+ display: inline-block !important;
+}
+
+#cc-img-container {
+ display: table;
+ width: 90%;
+}
+
+#cc-img-container a {
+ display: table-cell;
+ text-align: center;
+ width: 16%;
+}
+
+#cc-img-container img {
+ width: 100%;
+ max-width: 40px;
+}
+
+@media screen and (max-width: 600px) {
+
+
+ table#mainCartTable tbody td .form-control{
+ width:20%;
+ display: inline !important;
+ }
+ .actions .btn{
+ width:36%;
+ margin:1.5em 0;
+ }
+
+ .actions .btn-info{
+ float:left;
+ }
+ .actions .btn-danger{
+
+ }
+
+ table#mainCartTable thead { display: none; }
+ table#mainCartTable tbody td { display: block; padding: .6rem; min-width:320px;}
+ table#mainCartTable tbody tr td:first-child { background: #333; color: #fff; }
+ table#mainCartTable tbody td:before {
+ content: attr(data-th); font-weight: bold;
+ display: inline-block; width: 8rem;
+ }
+
+
+
+ table#mainCartTable tfoot td{display:block; }
+ table#mainCartTable tfoot td .btn{display:block;}
+
+}
+
+.btn-regular {
+ background-color: #f1f1f1;
+ border-color: #f1f1f1;
+ color: #666666;
+}
+
+
+
+.btn-regular:hover, .btn-regular:focus, .btn-regular.focus {
+ text-decoration:none;
+ color: #666666 !important;
+}
+
+.btn-warning:hover, .btn-warning:focus, .btn-warning.focus {
+ color: #ffffff !important;
+}
diff --git a/sm-shop/src/main/webapp/resources/img/admin/checkmark_checked.png b/sm-shop/src/main/webapp/resources/img/admin/checkmark_checked.png
new file mode 100644
index 0000000..4538d09
Binary files /dev/null and b/sm-shop/src/main/webapp/resources/img/admin/checkmark_checked.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/admin/checkmark_unchecked.png b/sm-shop/src/main/webapp/resources/img/admin/checkmark_unchecked.png
new file mode 100644
index 0000000..eea25a6
Binary files /dev/null and b/sm-shop/src/main/webapp/resources/img/admin/checkmark_unchecked.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/admin/login-box-backg.png b/sm-shop/src/main/webapp/resources/img/admin/login-box-backg.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/admin/login-box-backg.png and b/sm-shop/src/main/webapp/resources/img/admin/login-box-backg.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/admin/remove.png b/sm-shop/src/main/webapp/resources/img/admin/remove.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/admin/remove.png and b/sm-shop/src/main/webapp/resources/img/admin/remove.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/ajax-loader.gif b/sm-shop/src/main/webapp/resources/img/ajax-loader.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/ajax-loader.gif and b/sm-shop/src/main/webapp/resources/img/ajax-loader.gif differ
diff --git a/sm-shop/src/main/webapp/resources/img/blue_right_arrow.jpg b/sm-shop/src/main/webapp/resources/img/blue_right_arrow.jpg
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/blue_right_arrow.jpg and b/sm-shop/src/main/webapp/resources/img/blue_right_arrow.jpg differ
diff --git a/sm-shop/src/main/webapp/resources/img/check.png b/sm-shop/src/main/webapp/resources/img/check.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/check.png and b/sm-shop/src/main/webapp/resources/img/check.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/cvv.jpg b/sm-shop/src/main/webapp/resources/img/cvv.jpg
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/cvv.jpg and b/sm-shop/src/main/webapp/resources/img/cvv.jpg differ
diff --git a/sm-shop/src/main/webapp/resources/img/facebook-transparent.png b/sm-shop/src/main/webapp/resources/img/facebook-transparent.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/facebook-transparent.png and b/sm-shop/src/main/webapp/resources/img/facebook-transparent.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/icon_error.png b/sm-shop/src/main/webapp/resources/img/icon_error.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/icon_error.png and b/sm-shop/src/main/webapp/resources/img/icon_error.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/icon_green_on.gif b/sm-shop/src/main/webapp/resources/img/icon_green_on.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/icon_green_on.gif and b/sm-shop/src/main/webapp/resources/img/icon_green_on.gif differ
diff --git a/sm-shop/src/main/webapp/resources/img/icon_red_on.gif b/sm-shop/src/main/webapp/resources/img/icon_red_on.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/icon_red_on.gif and b/sm-shop/src/main/webapp/resources/img/icon_red_on.gif differ
diff --git a/sm-shop/src/main/webapp/resources/img/icon_success.png b/sm-shop/src/main/webapp/resources/img/icon_success.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/icon_success.png and b/sm-shop/src/main/webapp/resources/img/icon_success.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/important-icon.png b/sm-shop/src/main/webapp/resources/img/important-icon.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/important-icon.png and b/sm-shop/src/main/webapp/resources/img/important-icon.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/loading.gif b/sm-shop/src/main/webapp/resources/img/loading.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/loading.gif and b/sm-shop/src/main/webapp/resources/img/loading.gif differ
diff --git a/sm-shop/src/main/webapp/resources/img/loading-bars.gif b/sm-shop/src/main/webapp/resources/img/loading-bars.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/loading-bars.gif and b/sm-shop/src/main/webapp/resources/img/loading-bars.gif differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/authorizenet_logo.gif b/sm-shop/src/main/webapp/resources/img/payment/authorizenet_logo.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/authorizenet_logo.gif and b/sm-shop/src/main/webapp/resources/img/payment/authorizenet_logo.gif differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/beanstream.gif b/sm-shop/src/main/webapp/resources/img/payment/beanstream.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/beanstream.gif and b/sm-shop/src/main/webapp/resources/img/payment/beanstream.gif differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icon-paypal.png b/sm-shop/src/main/webapp/resources/img/payment/icon-paypal.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icon-paypal.png and b/sm-shop/src/main/webapp/resources/img/payment/icon-paypal.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/2checkout-curved-128px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/2checkout-curved-128px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/2checkout-curved-128px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/2checkout-curved-128px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/2checkout-curved-32px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/2checkout-curved-32px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/2checkout-curved-32px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/2checkout-curved-32px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/2checkout-curved-64px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/2checkout-curved-64px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/2checkout-curved-64px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/2checkout-curved-64px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/2checkout-straight-128px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/2checkout-straight-128px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/2checkout-straight-128px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/2checkout-straight-128px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/2checkout-straight-32px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/2checkout-straight-32px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/2checkout-straight-32px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/2checkout-straight-32px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/2checkout-straight-64px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/2checkout-straight-64px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/2checkout-straight-64px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/2checkout-straight-64px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/american-express-curved-128px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/american-express-curved-128px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/american-express-curved-128px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/american-express-curved-128px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/american-express-curved-32px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/american-express-curved-32px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/american-express-curved-32px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/american-express-curved-32px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/american-express-curved-64px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/american-express-curved-64px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/american-express-curved-64px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/american-express-curved-64px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/american-express-straight-128px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/american-express-straight-128px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/american-express-straight-128px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/american-express-straight-128px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/american-express-straight-32px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/american-express-straight-32px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/american-express-straight-32px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/american-express-straight-32px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/american-express-straight-64px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/american-express-straight-64px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/american-express-straight-64px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/american-express-straight-64px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/amex-straight-32px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/amex-straight-32px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/amex-straight-32px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/amex-straight-32px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/cirrus-curved-128px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/cirrus-curved-128px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/cirrus-curved-128px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/cirrus-curved-128px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/cirrus-curved-32px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/cirrus-curved-32px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/cirrus-curved-32px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/cirrus-curved-32px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/cirrus-curved-64px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/cirrus-curved-64px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/cirrus-curved-64px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/cirrus-curved-64px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/cirrus-straight-128px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/cirrus-straight-128px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/cirrus-straight-128px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/cirrus-straight-128px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/cirrus-straight-32px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/cirrus-straight-32px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/cirrus-straight-32px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/cirrus-straight-32px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/cirrus-straight-64px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/cirrus-straight-64px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/cirrus-straight-64px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/cirrus-straight-64px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/delta-curved-128px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/delta-curved-128px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/delta-curved-128px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/delta-curved-128px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/delta-curved-32px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/delta-curved-32px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/delta-curved-32px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/delta-curved-32px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/delta-curved-64px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/delta-curved-64px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/delta-curved-64px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/delta-curved-64px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/delta-straight-128px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/delta-straight-128px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/delta-straight-128px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/delta-straight-128px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/delta-straight-32px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/delta-straight-32px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/delta-straight-32px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/delta-straight-32px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/delta-straight-64px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/delta-straight-64px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/delta-straight-64px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/delta-straight-64px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/direct-debit-curved-128px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/direct-debit-curved-128px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/direct-debit-curved-128px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/direct-debit-curved-128px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/direct-debit-curved-32px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/direct-debit-curved-32px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/direct-debit-curved-32px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/direct-debit-curved-32px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/direct-debit-curved-64px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/direct-debit-curved-64px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/direct-debit-curved-64px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/direct-debit-curved-64px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/direct-debit-straight-128px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/direct-debit-straight-128px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/direct-debit-straight-128px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/direct-debit-straight-128px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/direct-debit-straight-32px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/direct-debit-straight-32px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/direct-debit-straight-32px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/direct-debit-straight-32px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/direct-debit-straight-64px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/direct-debit-straight-64px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/direct-debit-straight-64px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/direct-debit-straight-64px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/discover-curved-128px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/discover-curved-128px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/discover-curved-128px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/discover-curved-128px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/discover-curved-32px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/discover-curved-32px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/discover-curved-32px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/discover-curved-32px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/discover-curved-64px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/discover-curved-64px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/discover-curved-64px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/discover-curved-64px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/discover-straight-128px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/discover-straight-128px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/discover-straight-128px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/discover-straight-128px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/discover-straight-32px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/discover-straight-32px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/discover-straight-32px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/discover-straight-32px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/discover-straight-64px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/discover-straight-64px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/discover-straight-64px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/discover-straight-64px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/ebay-curved-128px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/ebay-curved-128px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/ebay-curved-128px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/ebay-curved-128px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/ebay-curved-32px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/ebay-curved-32px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/ebay-curved-32px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/ebay-curved-32px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/ebay-curved-64px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/ebay-curved-64px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/ebay-curved-64px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/ebay-curved-64px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/ebay-straight-128px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/ebay-straight-128px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/ebay-straight-128px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/ebay-straight-128px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/ebay-straight-32px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/ebay-straight-32px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/ebay-straight-32px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/ebay-straight-32px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/ebay-straight-64px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/ebay-straight-64px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/ebay-straight-64px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/ebay-straight-64px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/google-checkout-curved-128px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/google-checkout-curved-128px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/google-checkout-curved-128px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/google-checkout-curved-128px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/google-checkout-curved-32px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/google-checkout-curved-32px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/google-checkout-curved-32px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/google-checkout-curved-32px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/google-checkout-curved-64px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/google-checkout-curved-64px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/google-checkout-curved-64px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/google-checkout-curved-64px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/google-checkout-straight-128px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/google-checkout-straight-128px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/google-checkout-straight-128px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/google-checkout-straight-128px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/google-checkout-straight-32px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/google-checkout-straight-32px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/google-checkout-straight-32px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/google-checkout-straight-32px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/google-checkout-straight-64px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/google-checkout-straight-64px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/google-checkout-straight-64px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/google-checkout-straight-64px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/maestro-curved-128px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/maestro-curved-128px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/maestro-curved-128px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/maestro-curved-128px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/maestro-curved-32px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/maestro-curved-32px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/maestro-curved-32px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/maestro-curved-32px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/maestro-curved-64px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/maestro-curved-64px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/maestro-curved-64px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/maestro-curved-64px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/maestro-straight-128px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/maestro-straight-128px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/maestro-straight-128px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/maestro-straight-128px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/maestro-straight-32px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/maestro-straight-32px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/maestro-straight-32px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/maestro-straight-32px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/maestro-straight-64px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/maestro-straight-64px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/maestro-straight-64px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/maestro-straight-64px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/mastercard-curved-128px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/mastercard-curved-128px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/mastercard-curved-128px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/mastercard-curved-128px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/mastercard-curved-32px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/mastercard-curved-32px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/mastercard-curved-32px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/mastercard-curved-32px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/mastercard-curved-64px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/mastercard-curved-64px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/mastercard-curved-64px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/mastercard-curved-64px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/mastercard-straight-128px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/mastercard-straight-128px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/mastercard-straight-128px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/mastercard-straight-128px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/mastercard-straight-32px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/mastercard-straight-32px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/mastercard-straight-32px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/mastercard-straight-32px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/mastercard-straight-64px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/mastercard-straight-64px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/mastercard-straight-64px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/mastercard-straight-64px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/moneybookers-curved-128px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/moneybookers-curved-128px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/moneybookers-curved-128px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/moneybookers-curved-128px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/moneybookers-curved-32px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/moneybookers-curved-32px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/moneybookers-curved-32px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/moneybookers-curved-32px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/moneybookers-curved-64px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/moneybookers-curved-64px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/moneybookers-curved-64px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/moneybookers-curved-64px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/moneybookers-straight-128px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/moneybookers-straight-128px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/moneybookers-straight-128px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/moneybookers-straight-128px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/moneybookers-straight-32px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/moneybookers-straight-32px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/moneybookers-straight-32px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/moneybookers-straight-32px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/moneybookers-straight-64px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/moneybookers-straight-64px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/moneybookers-straight-64px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/moneybookers-straight-64px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/paypal-curved-128px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/paypal-curved-128px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/paypal-curved-128px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/paypal-curved-128px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/paypal-curved-32px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/paypal-curved-32px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/paypal-curved-32px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/paypal-curved-32px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/paypal-curved-64px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/paypal-curved-64px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/paypal-curved-64px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/paypal-curved-64px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/paypal-straight-128px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/paypal-straight-128px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/paypal-straight-128px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/paypal-straight-128px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/paypal-straight-32px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/paypal-straight-32px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/paypal-straight-32px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/paypal-straight-32px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/paypal-straight-64px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/paypal-straight-64px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/paypal-straight-64px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/paypal-straight-64px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/sagepay-curved-128px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/sagepay-curved-128px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/sagepay-curved-128px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/sagepay-curved-128px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/sagepay-curved-32px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/sagepay-curved-32px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/sagepay-curved-32px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/sagepay-curved-32px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/sagepay-curved-64px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/sagepay-curved-64px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/sagepay-curved-64px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/sagepay-curved-64px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/sagepay-straight-128px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/sagepay-straight-128px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/sagepay-straight-128px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/sagepay-straight-128px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/sagepay-straight-32px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/sagepay-straight-32px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/sagepay-straight-32px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/sagepay-straight-32px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/sagepay-straight-64px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/sagepay-straight-64px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/sagepay-straight-64px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/sagepay-straight-64px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/solo-curved-128px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/solo-curved-128px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/solo-curved-128px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/solo-curved-128px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/solo-curved-32px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/solo-curved-32px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/solo-curved-32px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/solo-curved-32px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/solo-curved-64px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/solo-curved-64px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/solo-curved-64px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/solo-curved-64px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/solo-straight-128px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/solo-straight-128px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/solo-straight-128px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/solo-straight-128px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/solo-straight-32px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/solo-straight-32px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/solo-straight-32px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/solo-straight-32px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/solo-straight-64px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/solo-straight-64px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/solo-straight-64px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/solo-straight-64px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/switch-curved-128px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/switch-curved-128px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/switch-curved-128px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/switch-curved-128px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/switch-curved-32px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/switch-curved-32px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/switch-curved-32px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/switch-curved-32px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/switch-curved-64px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/switch-curved-64px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/switch-curved-64px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/switch-curved-64px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/switch-straight-128px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/switch-straight-128px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/switch-straight-128px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/switch-straight-128px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/switch-straight-32px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/switch-straight-32px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/switch-straight-32px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/switch-straight-32px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/switch-straight-64px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/switch-straight-64px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/switch-straight-64px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/switch-straight-64px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/visa-curved-128px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/visa-curved-128px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/visa-curved-128px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/visa-curved-128px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/visa-curved-32px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/visa-curved-32px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/visa-curved-32px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/visa-curved-32px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/visa-curved-64px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/visa-curved-64px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/visa-curved-64px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/visa-curved-64px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/visa-electron-curved-128px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/visa-electron-curved-128px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/visa-electron-curved-128px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/visa-electron-curved-128px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/visa-electron-curved-32px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/visa-electron-curved-32px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/visa-electron-curved-32px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/visa-electron-curved-32px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/visa-electron-curved-64px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/visa-electron-curved-64px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/visa-electron-curved-64px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/visa-electron-curved-64px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/visa-electron-straight-128px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/visa-electron-straight-128px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/visa-electron-straight-128px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/visa-electron-straight-128px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/visa-electron-straight-32px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/visa-electron-straight-32px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/visa-electron-straight-32px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/visa-electron-straight-32px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/visa-electron-straight-64px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/visa-electron-straight-64px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/visa-electron-straight-64px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/visa-electron-straight-64px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/visa-straight-128px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/visa-straight-128px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/visa-straight-128px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/visa-straight-128px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/visa-straight-32px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/visa-straight-32px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/visa-straight-32px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/visa-straight-32px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/visa-straight-64px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/visa-straight-64px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/visa-straight-64px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/visa-straight-64px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/western-union-curved-128px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/western-union-curved-128px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/western-union-curved-128px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/western-union-curved-128px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/western-union-curved-32px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/western-union-curved-32px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/western-union-curved-32px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/western-union-curved-32px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/western-union-curved-64px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/western-union-curved-64px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/western-union-curved-64px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/western-union-curved-64px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/western-union-straight-128px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/western-union-straight-128px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/western-union-straight-128px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/western-union-straight-128px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/western-union-straight-32px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/western-union-straight-32px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/western-union-straight-32px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/western-union-straight-32px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/icons/western-union-straight-64px.png b/sm-shop/src/main/webapp/resources/img/payment/icons/western-union-straight-64px.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/icons/western-union-straight-64px.png and b/sm-shop/src/main/webapp/resources/img/payment/icons/western-union-straight-64px.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/moneyorder.gif b/sm-shop/src/main/webapp/resources/img/payment/moneyorder.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/moneyorder.gif and b/sm-shop/src/main/webapp/resources/img/payment/moneyorder.gif differ
diff --git a/sm-shop/src/main/webapp/resources/img/payment/stripe.png b/sm-shop/src/main/webapp/resources/img/payment/stripe.png
index c86ee50..f7dc6ba 100644
Binary files a/sm-shop/src/main/webapp/resources/img/payment/stripe.png and b/sm-shop/src/main/webapp/resources/img/payment/stripe.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/shipping/canadapost.jpg b/sm-shop/src/main/webapp/resources/img/shipping/canadapost.jpg
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/shipping/canadapost.jpg and b/sm-shop/src/main/webapp/resources/img/shipping/canadapost.jpg differ
diff --git a/sm-shop/src/main/webapp/resources/img/shipping/fedEx.gif b/sm-shop/src/main/webapp/resources/img/shipping/fedEx.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/shipping/fedEx.gif and b/sm-shop/src/main/webapp/resources/img/shipping/fedEx.gif differ
diff --git a/sm-shop/src/main/webapp/resources/img/shipping/ups.jpg b/sm-shop/src/main/webapp/resources/img/shipping/ups.jpg
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/shipping/ups.jpg and b/sm-shop/src/main/webapp/resources/img/shipping/ups.jpg differ
diff --git a/sm-shop/src/main/webapp/resources/img/shipping/usps.jpg b/sm-shop/src/main/webapp/resources/img/shipping/usps.jpg
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/shipping/usps.jpg and b/sm-shop/src/main/webapp/resources/img/shipping/usps.jpg differ
diff --git a/sm-shop/src/main/webapp/resources/img/shopizer_resized_transparent.png b/sm-shop/src/main/webapp/resources/img/shopizer_resized_transparent.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/shopizer_resized_transparent.png and b/sm-shop/src/main/webapp/resources/img/shopizer_resized_transparent.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/shopizer_small.jpg b/sm-shop/src/main/webapp/resources/img/shopizer_small.jpg
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/shopizer_small.jpg and b/sm-shop/src/main/webapp/resources/img/shopizer_small.jpg differ
diff --git a/sm-shop/src/main/webapp/resources/img/shopizer_small.png b/sm-shop/src/main/webapp/resources/img/shopizer_small.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/shopizer_small.png and b/sm-shop/src/main/webapp/resources/img/shopizer_small.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/stars/cancel-off.png b/sm-shop/src/main/webapp/resources/img/stars/cancel-off.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/stars/cancel-off.png and b/sm-shop/src/main/webapp/resources/img/stars/cancel-off.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/stars/cancel-on.png b/sm-shop/src/main/webapp/resources/img/stars/cancel-on.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/stars/cancel-on.png and b/sm-shop/src/main/webapp/resources/img/stars/cancel-on.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/stars/star-half.png b/sm-shop/src/main/webapp/resources/img/stars/star-half.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/stars/star-half.png and b/sm-shop/src/main/webapp/resources/img/stars/star-half.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/stars/star-off.png b/sm-shop/src/main/webapp/resources/img/stars/star-off.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/stars/star-off.png and b/sm-shop/src/main/webapp/resources/img/stars/star-off.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/stars/star-on.png b/sm-shop/src/main/webapp/resources/img/stars/star-on.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/stars/star-on.png and b/sm-shop/src/main/webapp/resources/img/stars/star-on.png differ
diff --git a/sm-shop/src/main/webapp/resources/img/twitter-transparent.png b/sm-shop/src/main/webapp/resources/img/twitter-transparent.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/img/twitter-transparent.png and b/sm-shop/src/main/webapp/resources/img/twitter-transparent.png differ
diff --git a/sm-shop/src/main/webapp/resources/js/address.js b/sm-shop/src/main/webapp/resources/js/address.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/adminFunctions.js b/sm-shop/src/main/webapp/resources/js/adminFunctions.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/bootstrap/bootstrap.min.js b/sm-shop/src/main/webapp/resources/js/bootstrap/bootstrap.min.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/bootstrap/bootstrap-alert.js b/sm-shop/src/main/webapp/resources/js/bootstrap/bootstrap-alert.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/bootstrap/bootstrap-button.js b/sm-shop/src/main/webapp/resources/js/bootstrap/bootstrap-button.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/bootstrap/bootstrap-carousel.js b/sm-shop/src/main/webapp/resources/js/bootstrap/bootstrap-carousel.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/bootstrap/bootstrap-collapse.js b/sm-shop/src/main/webapp/resources/js/bootstrap/bootstrap-collapse.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/bootstrap/bootstrap-datepicker.js b/sm-shop/src/main/webapp/resources/js/bootstrap/bootstrap-datepicker.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/bootstrap/bootstrap-dropdown.js b/sm-shop/src/main/webapp/resources/js/bootstrap/bootstrap-dropdown.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/bootstrap/bootstrap-modal.js b/sm-shop/src/main/webapp/resources/js/bootstrap/bootstrap-modal.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/bootstrap/bootstrap-popover.js b/sm-shop/src/main/webapp/resources/js/bootstrap/bootstrap-popover.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/bootstrap/bootstrap-scrollspy.js b/sm-shop/src/main/webapp/resources/js/bootstrap/bootstrap-scrollspy.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/bootstrap/bootstrap-tab.js b/sm-shop/src/main/webapp/resources/js/bootstrap/bootstrap-tab.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/bootstrap/bootstrap-tooltip.js b/sm-shop/src/main/webapp/resources/js/bootstrap/bootstrap-tooltip.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/bootstrap/bootstrap-transition.js b/sm-shop/src/main/webapp/resources/js/bootstrap/bootstrap-transition.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/bootstrap/bootstrap-typeahead.js b/sm-shop/src/main/webapp/resources/js/bootstrap/bootstrap-typeahead.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/bootstrap/jquery.js b/sm-shop/src/main/webapp/resources/js/bootstrap/jquery.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/ckeditor.js b/sm-shop/src/main/webapp/resources/js/ckeditor/ckeditor.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/config.js b/sm-shop/src/main/webapp/resources/js/ckeditor/config.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/images/spacer.gif b/sm-shop/src/main/webapp/resources/js/ckeditor/images/spacer.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/images/spacer.gif and b/sm-shop/src/main/webapp/resources/js/ckeditor/images/spacer.gif differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/lang/_languages.js b/sm-shop/src/main/webapp/resources/js/ckeditor/lang/_languages.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/lang/_translationstatus.txt b/sm-shop/src/main/webapp/resources/js/ckeditor/lang/_translationstatus.txt
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/lang/af.js b/sm-shop/src/main/webapp/resources/js/ckeditor/lang/af.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/lang/ar.js b/sm-shop/src/main/webapp/resources/js/ckeditor/lang/ar.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/lang/bg.js b/sm-shop/src/main/webapp/resources/js/ckeditor/lang/bg.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/lang/bn.js b/sm-shop/src/main/webapp/resources/js/ckeditor/lang/bn.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/lang/bs.js b/sm-shop/src/main/webapp/resources/js/ckeditor/lang/bs.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/lang/ca.js b/sm-shop/src/main/webapp/resources/js/ckeditor/lang/ca.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/lang/cs.js b/sm-shop/src/main/webapp/resources/js/ckeditor/lang/cs.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/lang/cy.js b/sm-shop/src/main/webapp/resources/js/ckeditor/lang/cy.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/lang/da.js b/sm-shop/src/main/webapp/resources/js/ckeditor/lang/da.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/lang/de.js b/sm-shop/src/main/webapp/resources/js/ckeditor/lang/de.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/lang/el.js b/sm-shop/src/main/webapp/resources/js/ckeditor/lang/el.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/lang/en.js b/sm-shop/src/main/webapp/resources/js/ckeditor/lang/en.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/lang/en-au.js b/sm-shop/src/main/webapp/resources/js/ckeditor/lang/en-au.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/lang/en-ca.js b/sm-shop/src/main/webapp/resources/js/ckeditor/lang/en-ca.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/lang/en-gb.js b/sm-shop/src/main/webapp/resources/js/ckeditor/lang/en-gb.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/lang/es.js b/sm-shop/src/main/webapp/resources/js/ckeditor/lang/es.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/lang/et.js b/sm-shop/src/main/webapp/resources/js/ckeditor/lang/et.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/lang/eu.js b/sm-shop/src/main/webapp/resources/js/ckeditor/lang/eu.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/lang/fa.js b/sm-shop/src/main/webapp/resources/js/ckeditor/lang/fa.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/lang/fi.js b/sm-shop/src/main/webapp/resources/js/ckeditor/lang/fi.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/lang/fo.js b/sm-shop/src/main/webapp/resources/js/ckeditor/lang/fo.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/lang/fr.js b/sm-shop/src/main/webapp/resources/js/ckeditor/lang/fr.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/lang/fr-ca.js b/sm-shop/src/main/webapp/resources/js/ckeditor/lang/fr-ca.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/lang/gl.js b/sm-shop/src/main/webapp/resources/js/ckeditor/lang/gl.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/lang/gu.js b/sm-shop/src/main/webapp/resources/js/ckeditor/lang/gu.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/lang/he.js b/sm-shop/src/main/webapp/resources/js/ckeditor/lang/he.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/lang/hi.js b/sm-shop/src/main/webapp/resources/js/ckeditor/lang/hi.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/lang/hr.js b/sm-shop/src/main/webapp/resources/js/ckeditor/lang/hr.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/lang/hu.js b/sm-shop/src/main/webapp/resources/js/ckeditor/lang/hu.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/lang/id.js b/sm-shop/src/main/webapp/resources/js/ckeditor/lang/id.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/lang/is.js b/sm-shop/src/main/webapp/resources/js/ckeditor/lang/is.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/lang/it.js b/sm-shop/src/main/webapp/resources/js/ckeditor/lang/it.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/lang/ja.js b/sm-shop/src/main/webapp/resources/js/ckeditor/lang/ja.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/lang/ka.js b/sm-shop/src/main/webapp/resources/js/ckeditor/lang/ka.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/lang/km.js b/sm-shop/src/main/webapp/resources/js/ckeditor/lang/km.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/lang/ko.js b/sm-shop/src/main/webapp/resources/js/ckeditor/lang/ko.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/lang/lt.js b/sm-shop/src/main/webapp/resources/js/ckeditor/lang/lt.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/lang/lv.js b/sm-shop/src/main/webapp/resources/js/ckeditor/lang/lv.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/lang/mk.js b/sm-shop/src/main/webapp/resources/js/ckeditor/lang/mk.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/lang/mn.js b/sm-shop/src/main/webapp/resources/js/ckeditor/lang/mn.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/lang/ms.js b/sm-shop/src/main/webapp/resources/js/ckeditor/lang/ms.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/lang/nb.js b/sm-shop/src/main/webapp/resources/js/ckeditor/lang/nb.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/lang/nl.js b/sm-shop/src/main/webapp/resources/js/ckeditor/lang/nl.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/lang/no.js b/sm-shop/src/main/webapp/resources/js/ckeditor/lang/no.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/lang/pl.js b/sm-shop/src/main/webapp/resources/js/ckeditor/lang/pl.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/lang/pt.js b/sm-shop/src/main/webapp/resources/js/ckeditor/lang/pt.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/lang/pt-br.js b/sm-shop/src/main/webapp/resources/js/ckeditor/lang/pt-br.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/lang/ro.js b/sm-shop/src/main/webapp/resources/js/ckeditor/lang/ro.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/lang/ru.js b/sm-shop/src/main/webapp/resources/js/ckeditor/lang/ru.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/lang/sk.js b/sm-shop/src/main/webapp/resources/js/ckeditor/lang/sk.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/lang/sl.js b/sm-shop/src/main/webapp/resources/js/ckeditor/lang/sl.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/lang/sr.js b/sm-shop/src/main/webapp/resources/js/ckeditor/lang/sr.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/lang/sr-latn.js b/sm-shop/src/main/webapp/resources/js/ckeditor/lang/sr-latn.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/lang/sv.js b/sm-shop/src/main/webapp/resources/js/ckeditor/lang/sv.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/lang/th.js b/sm-shop/src/main/webapp/resources/js/ckeditor/lang/th.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/lang/tr.js b/sm-shop/src/main/webapp/resources/js/ckeditor/lang/tr.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/lang/ug.js b/sm-shop/src/main/webapp/resources/js/ckeditor/lang/ug.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/lang/uk.js b/sm-shop/src/main/webapp/resources/js/ckeditor/lang/uk.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/lang/vi.js b/sm-shop/src/main/webapp/resources/js/ckeditor/lang/vi.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/lang/zh.js b/sm-shop/src/main/webapp/resources/js/ckeditor/lang/zh.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/lang/zh-cn.js b/sm-shop/src/main/webapp/resources/js/ckeditor/lang/zh-cn.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/a11yhelp/dialogs/a11yhelp.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/a11yhelp/dialogs/a11yhelp.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/a11yhelp/lang/_translationstatus.txt b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/a11yhelp/lang/_translationstatus.txt
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/a11yhelp/lang/cs.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/a11yhelp/lang/cs.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/a11yhelp/lang/cy.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/a11yhelp/lang/cy.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/a11yhelp/lang/da.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/a11yhelp/lang/da.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/a11yhelp/lang/de.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/a11yhelp/lang/de.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/a11yhelp/lang/el.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/a11yhelp/lang/el.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/a11yhelp/lang/en.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/a11yhelp/lang/en.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/a11yhelp/lang/eo.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/a11yhelp/lang/eo.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/a11yhelp/lang/fa.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/a11yhelp/lang/fa.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/a11yhelp/lang/fi.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/a11yhelp/lang/fi.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/a11yhelp/lang/fr.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/a11yhelp/lang/fr.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/a11yhelp/lang/gu.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/a11yhelp/lang/gu.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/a11yhelp/lang/he.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/a11yhelp/lang/he.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/a11yhelp/lang/it.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/a11yhelp/lang/it.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/a11yhelp/lang/mk.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/a11yhelp/lang/mk.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/a11yhelp/lang/nb.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/a11yhelp/lang/nb.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/a11yhelp/lang/nl.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/a11yhelp/lang/nl.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/a11yhelp/lang/no.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/a11yhelp/lang/no.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/a11yhelp/lang/pt-br.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/a11yhelp/lang/pt-br.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/a11yhelp/lang/ro.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/a11yhelp/lang/ro.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/a11yhelp/lang/tr.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/a11yhelp/lang/tr.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/a11yhelp/lang/ug.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/a11yhelp/lang/ug.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/a11yhelp/lang/vi.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/a11yhelp/lang/vi.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/a11yhelp/lang/zh-cn.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/a11yhelp/lang/zh-cn.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/about/dialogs/about.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/about/dialogs/about.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/about/dialogs/logo_ckeditor.png b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/about/dialogs/logo_ckeditor.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/about/dialogs/logo_ckeditor.png and b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/about/dialogs/logo_ckeditor.png differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/adobeair/plugin.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/adobeair/plugin.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/ajax/plugin.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/ajax/plugin.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/autogrow/plugin.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/autogrow/plugin.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/bbcode/plugin.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/bbcode/plugin.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/clipboard/dialogs/paste.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/clipboard/dialogs/paste.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/colordialog/dialogs/colordialog.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/colordialog/dialogs/colordialog.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/devtools/lang/_translationstatus.txt b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/devtools/lang/_translationstatus.txt
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/devtools/lang/bg.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/devtools/lang/bg.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/devtools/lang/cs.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/devtools/lang/cs.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/devtools/lang/cy.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/devtools/lang/cy.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/devtools/lang/da.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/devtools/lang/da.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/devtools/lang/de.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/devtools/lang/de.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/devtools/lang/el.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/devtools/lang/el.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/devtools/lang/en.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/devtools/lang/en.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/devtools/lang/eo.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/devtools/lang/eo.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/devtools/lang/et.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/devtools/lang/et.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/devtools/lang/fa.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/devtools/lang/fa.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/devtools/lang/fi.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/devtools/lang/fi.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/devtools/lang/fr.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/devtools/lang/fr.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/devtools/lang/gu.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/devtools/lang/gu.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/devtools/lang/he.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/devtools/lang/he.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/devtools/lang/hr.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/devtools/lang/hr.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/devtools/lang/it.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/devtools/lang/it.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/devtools/lang/nb.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/devtools/lang/nb.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/devtools/lang/nl.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/devtools/lang/nl.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/devtools/lang/no.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/devtools/lang/no.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/devtools/lang/pl.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/devtools/lang/pl.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/devtools/lang/pt-br.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/devtools/lang/pt-br.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/devtools/lang/tr.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/devtools/lang/tr.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/devtools/lang/ug.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/devtools/lang/ug.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/devtools/lang/uk.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/devtools/lang/uk.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/devtools/lang/vi.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/devtools/lang/vi.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/devtools/lang/zh-cn.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/devtools/lang/zh-cn.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/devtools/plugin.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/devtools/plugin.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/dialog/dialogDefinition.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/dialog/dialogDefinition.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/div/dialogs/div.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/div/dialogs/div.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/docprops/dialogs/docprops.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/docprops/dialogs/docprops.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/docprops/plugin.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/docprops/plugin.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/find/dialogs/find.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/find/dialogs/find.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/flash/dialogs/flash.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/flash/dialogs/flash.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/flash/images/placeholder.png b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/flash/images/placeholder.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/flash/images/placeholder.png and b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/flash/images/placeholder.png differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/forms/dialogs/button.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/forms/dialogs/button.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/forms/dialogs/checkbox.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/forms/dialogs/checkbox.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/forms/dialogs/form.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/forms/dialogs/form.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/forms/dialogs/hiddenfield.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/forms/dialogs/hiddenfield.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/forms/dialogs/radio.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/forms/dialogs/radio.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/forms/dialogs/select.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/forms/dialogs/select.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/forms/dialogs/textarea.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/forms/dialogs/textarea.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/forms/dialogs/textfield.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/forms/dialogs/textfield.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/forms/images/hiddenfield.gif b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/forms/images/hiddenfield.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/forms/images/hiddenfield.gif and b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/forms/images/hiddenfield.gif differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/iframe/dialogs/iframe.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/iframe/dialogs/iframe.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/iframe/images/placeholder.png b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/iframe/images/placeholder.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/iframe/images/placeholder.png and b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/iframe/images/placeholder.png differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/iframedialog/plugin.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/iframedialog/plugin.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/image/dialogs/image.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/image/dialogs/image.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/link/dialogs/anchor.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/link/dialogs/anchor.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/link/dialogs/link.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/link/dialogs/link.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/link/images/anchor.gif b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/link/images/anchor.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/link/images/anchor.gif and b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/link/images/anchor.gif differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/liststyle/dialogs/liststyle.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/liststyle/dialogs/liststyle.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/pagebreak/images/pagebreak.gif b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/pagebreak/images/pagebreak.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/pagebreak/images/pagebreak.gif and b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/pagebreak/images/pagebreak.gif differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/pastefromword/filter/default.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/pastefromword/filter/default.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/pastetext/dialogs/pastetext.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/pastetext/dialogs/pastetext.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/placeholder/dialogs/placeholder.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/placeholder/dialogs/placeholder.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/placeholder/lang/_translationstatus.txt b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/placeholder/lang/_translationstatus.txt
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/placeholder/lang/bg.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/placeholder/lang/bg.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/placeholder/lang/cs.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/placeholder/lang/cs.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/placeholder/lang/cy.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/placeholder/lang/cy.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/placeholder/lang/da.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/placeholder/lang/da.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/placeholder/lang/de.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/placeholder/lang/de.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/placeholder/lang/el.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/placeholder/lang/el.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/placeholder/lang/en.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/placeholder/lang/en.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/placeholder/lang/eo.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/placeholder/lang/eo.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/placeholder/lang/et.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/placeholder/lang/et.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/placeholder/lang/fa.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/placeholder/lang/fa.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/placeholder/lang/fi.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/placeholder/lang/fi.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/placeholder/lang/fr.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/placeholder/lang/fr.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/placeholder/lang/he.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/placeholder/lang/he.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/placeholder/lang/hr.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/placeholder/lang/hr.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/placeholder/lang/it.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/placeholder/lang/it.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/placeholder/lang/nb.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/placeholder/lang/nb.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/placeholder/lang/nl.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/placeholder/lang/nl.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/placeholder/lang/no.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/placeholder/lang/no.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/placeholder/lang/pl.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/placeholder/lang/pl.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/placeholder/lang/pt-br.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/placeholder/lang/pt-br.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/placeholder/lang/tr.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/placeholder/lang/tr.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/placeholder/lang/ug.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/placeholder/lang/ug.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/placeholder/lang/uk.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/placeholder/lang/uk.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/placeholder/lang/vi.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/placeholder/lang/vi.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/placeholder/lang/zh-cn.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/placeholder/lang/zh-cn.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/placeholder/placeholder.gif b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/placeholder/placeholder.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/placeholder/placeholder.gif and b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/placeholder/placeholder.gif differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/placeholder/plugin.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/placeholder/plugin.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/preview/preview.html b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/preview/preview.html
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/scayt/dialogs/options.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/scayt/dialogs/options.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/scayt/dialogs/toolbar.css b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/scayt/dialogs/toolbar.css
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/showblocks/images/block_address.png b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/showblocks/images/block_address.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/showblocks/images/block_address.png and b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/showblocks/images/block_address.png differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/showblocks/images/block_blockquote.png b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/showblocks/images/block_blockquote.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/showblocks/images/block_blockquote.png and b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/showblocks/images/block_blockquote.png differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/showblocks/images/block_div.png b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/showblocks/images/block_div.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/showblocks/images/block_div.png and b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/showblocks/images/block_div.png differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/showblocks/images/block_h1.png b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/showblocks/images/block_h1.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/showblocks/images/block_h1.png and b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/showblocks/images/block_h1.png differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/showblocks/images/block_h2.png b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/showblocks/images/block_h2.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/showblocks/images/block_h2.png and b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/showblocks/images/block_h2.png differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/showblocks/images/block_h3.png b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/showblocks/images/block_h3.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/showblocks/images/block_h3.png and b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/showblocks/images/block_h3.png differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/showblocks/images/block_h4.png b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/showblocks/images/block_h4.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/showblocks/images/block_h4.png and b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/showblocks/images/block_h4.png differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/showblocks/images/block_h5.png b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/showblocks/images/block_h5.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/showblocks/images/block_h5.png and b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/showblocks/images/block_h5.png differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/showblocks/images/block_h6.png b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/showblocks/images/block_h6.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/showblocks/images/block_h6.png and b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/showblocks/images/block_h6.png differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/showblocks/images/block_p.png b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/showblocks/images/block_p.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/showblocks/images/block_p.png and b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/showblocks/images/block_p.png differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/showblocks/images/block_pre.png b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/showblocks/images/block_pre.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/showblocks/images/block_pre.png and b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/showblocks/images/block_pre.png differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/dialogs/smiley.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/dialogs/smiley.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/angel_smile.gif b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/angel_smile.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/angel_smile.gif and b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/angel_smile.gif differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/angry_smile.gif b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/angry_smile.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/angry_smile.gif and b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/angry_smile.gif differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/broken_heart.gif b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/broken_heart.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/broken_heart.gif and b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/broken_heart.gif differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/confused_smile.gif b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/confused_smile.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/confused_smile.gif and b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/confused_smile.gif differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/cry_smile.gif b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/cry_smile.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/cry_smile.gif and b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/cry_smile.gif differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/devil_smile.gif b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/devil_smile.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/devil_smile.gif and b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/devil_smile.gif differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/embaressed_smile.gif b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/embaressed_smile.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/embaressed_smile.gif and b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/embaressed_smile.gif differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/envelope.gif b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/envelope.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/envelope.gif and b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/envelope.gif differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/heart.gif b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/heart.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/heart.gif and b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/heart.gif differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/kiss.gif b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/kiss.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/kiss.gif and b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/kiss.gif differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/lightbulb.gif b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/lightbulb.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/lightbulb.gif and b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/lightbulb.gif differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/omg_smile.gif b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/omg_smile.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/omg_smile.gif and b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/omg_smile.gif differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/regular_smile.gif b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/regular_smile.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/regular_smile.gif and b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/regular_smile.gif differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/sad_smile.gif b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/sad_smile.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/sad_smile.gif and b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/sad_smile.gif differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/shades_smile.gif b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/shades_smile.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/shades_smile.gif and b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/shades_smile.gif differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/teeth_smile.gif b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/teeth_smile.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/teeth_smile.gif and b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/teeth_smile.gif differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/thumbs_down.gif b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/thumbs_down.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/thumbs_down.gif and b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/thumbs_down.gif differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/thumbs_up.gif b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/thumbs_up.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/thumbs_up.gif and b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/thumbs_up.gif differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/tounge_smile.gif b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/tounge_smile.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/tounge_smile.gif and b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/tounge_smile.gif differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.gif b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.gif and b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.gif differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/wink_smile.gif b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/wink_smile.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/wink_smile.gif and b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/smiley/images/wink_smile.gif differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/specialchar/dialogs/specialchar.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/specialchar/dialogs/specialchar.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/specialchar/lang/_translationstatus.txt b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/specialchar/lang/_translationstatus.txt
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/specialchar/lang/cs.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/specialchar/lang/cs.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/specialchar/lang/cy.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/specialchar/lang/cy.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/specialchar/lang/de.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/specialchar/lang/de.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/specialchar/lang/el.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/specialchar/lang/el.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/specialchar/lang/en.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/specialchar/lang/en.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/specialchar/lang/eo.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/specialchar/lang/eo.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/specialchar/lang/et.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/specialchar/lang/et.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/specialchar/lang/fa.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/specialchar/lang/fa.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/specialchar/lang/fi.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/specialchar/lang/fi.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/specialchar/lang/fr.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/specialchar/lang/fr.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/specialchar/lang/he.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/specialchar/lang/he.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/specialchar/lang/hr.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/specialchar/lang/hr.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/specialchar/lang/it.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/specialchar/lang/it.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/specialchar/lang/nb.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/specialchar/lang/nb.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/specialchar/lang/nl.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/specialchar/lang/nl.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/specialchar/lang/no.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/specialchar/lang/no.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/specialchar/lang/pt-br.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/specialchar/lang/pt-br.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/specialchar/lang/tr.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/specialchar/lang/tr.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/specialchar/lang/ug.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/specialchar/lang/ug.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/specialchar/lang/zh-cn.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/specialchar/lang/zh-cn.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/styles/styles/default.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/styles/styles/default.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/stylesheetparser/plugin.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/stylesheetparser/plugin.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/table/dialogs/table.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/table/dialogs/table.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/tableresize/plugin.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/tableresize/plugin.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/tabletools/dialogs/tableCell.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/tabletools/dialogs/tableCell.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/templates/dialogs/templates.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/templates/dialogs/templates.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/templates/templates/default.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/templates/templates/default.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/templates/templates/images/template1.gif b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/templates/templates/images/template1.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/templates/templates/images/template1.gif and b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/templates/templates/images/template1.gif differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/templates/templates/images/template2.gif b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/templates/templates/images/template2.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/templates/templates/images/template2.gif and b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/templates/templates/images/template2.gif differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/templates/templates/images/template3.gif b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/templates/templates/images/template3.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/templates/templates/images/template3.gif and b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/templates/templates/images/template3.gif differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/dialogs/uicolor.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/dialogs/uicolor.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/lang/_translationstatus.txt b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/lang/_translationstatus.txt
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/lang/bg.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/lang/bg.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/lang/cs.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/lang/cs.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/lang/cy.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/lang/cy.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/lang/da.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/lang/da.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/lang/de.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/lang/de.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/lang/el.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/lang/el.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/lang/en.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/lang/en.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/lang/eo.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/lang/eo.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/lang/et.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/lang/et.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/lang/fa.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/lang/fa.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/lang/fi.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/lang/fi.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/lang/fr.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/lang/fr.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/lang/he.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/lang/he.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/lang/hr.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/lang/hr.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/lang/it.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/lang/it.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/lang/mk.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/lang/mk.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/lang/nb.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/lang/nb.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/lang/nl.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/lang/nl.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/lang/no.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/lang/no.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/lang/pl.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/lang/pl.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/lang/pt-br.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/lang/pt-br.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/lang/tr.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/lang/tr.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/lang/ug.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/lang/ug.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/lang/uk.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/lang/uk.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/lang/vi.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/lang/vi.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/lang/zh-cn.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/lang/zh-cn.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/plugin.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/plugin.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/uicolor.gif b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/uicolor.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/uicolor.gif and b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/uicolor.gif differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/yui/assets/hue_bg.png b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/yui/assets/hue_bg.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/yui/assets/hue_bg.png and b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/yui/assets/hue_bg.png differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/yui/assets/hue_thumb.png b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/yui/assets/hue_thumb.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/yui/assets/hue_thumb.png and b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/yui/assets/hue_thumb.png differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/yui/assets/picker_mask.png b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/yui/assets/picker_mask.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/yui/assets/picker_mask.png and b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/yui/assets/picker_mask.png differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/yui/assets/picker_thumb.png b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/yui/assets/picker_thumb.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/yui/assets/picker_thumb.png and b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/yui/assets/picker_thumb.png differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/yui/assets/yui.css b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/yui/assets/yui.css
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/yui/yui.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/uicolor/yui/yui.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/wsc/dialogs/ciframe.html b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/wsc/dialogs/ciframe.html
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/wsc/dialogs/tmpFrameset.html b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/wsc/dialogs/tmpFrameset.html
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/wsc/dialogs/wsc.css b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/wsc/dialogs/wsc.css
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/wsc/dialogs/wsc.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/wsc/dialogs/wsc.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/xml/plugin.js b/sm-shop/src/main/webapp/resources/js/ckeditor/plugins/xml/plugin.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/skins/kama/dialog.css b/sm-shop/src/main/webapp/resources/js/ckeditor/skins/kama/dialog.css
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/skins/kama/editor.css b/sm-shop/src/main/webapp/resources/js/ckeditor/skins/kama/editor.css
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/skins/kama/icons.png b/sm-shop/src/main/webapp/resources/js/ckeditor/skins/kama/icons.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/skins/kama/icons.png and b/sm-shop/src/main/webapp/resources/js/ckeditor/skins/kama/icons.png differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/skins/kama/icons_rtl.png b/sm-shop/src/main/webapp/resources/js/ckeditor/skins/kama/icons_rtl.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/skins/kama/icons_rtl.png and b/sm-shop/src/main/webapp/resources/js/ckeditor/skins/kama/icons_rtl.png differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/skins/kama/images/dialog_sides.gif b/sm-shop/src/main/webapp/resources/js/ckeditor/skins/kama/images/dialog_sides.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/skins/kama/images/dialog_sides.gif and b/sm-shop/src/main/webapp/resources/js/ckeditor/skins/kama/images/dialog_sides.gif differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/skins/kama/images/dialog_sides.png b/sm-shop/src/main/webapp/resources/js/ckeditor/skins/kama/images/dialog_sides.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/skins/kama/images/dialog_sides.png and b/sm-shop/src/main/webapp/resources/js/ckeditor/skins/kama/images/dialog_sides.png differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/skins/kama/images/dialog_sides_rtl.png b/sm-shop/src/main/webapp/resources/js/ckeditor/skins/kama/images/dialog_sides_rtl.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/skins/kama/images/dialog_sides_rtl.png and b/sm-shop/src/main/webapp/resources/js/ckeditor/skins/kama/images/dialog_sides_rtl.png differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/skins/kama/images/mini.gif b/sm-shop/src/main/webapp/resources/js/ckeditor/skins/kama/images/mini.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/skins/kama/images/mini.gif and b/sm-shop/src/main/webapp/resources/js/ckeditor/skins/kama/images/mini.gif differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/skins/kama/images/noimage.png b/sm-shop/src/main/webapp/resources/js/ckeditor/skins/kama/images/noimage.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/skins/kama/images/noimage.png and b/sm-shop/src/main/webapp/resources/js/ckeditor/skins/kama/images/noimage.png differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/skins/kama/images/sprites.png b/sm-shop/src/main/webapp/resources/js/ckeditor/skins/kama/images/sprites.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/skins/kama/images/sprites.png and b/sm-shop/src/main/webapp/resources/js/ckeditor/skins/kama/images/sprites.png differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/skins/kama/images/sprites_ie6.png b/sm-shop/src/main/webapp/resources/js/ckeditor/skins/kama/images/sprites_ie6.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/skins/kama/images/sprites_ie6.png and b/sm-shop/src/main/webapp/resources/js/ckeditor/skins/kama/images/sprites_ie6.png differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/skins/kama/images/toolbar_start.gif b/sm-shop/src/main/webapp/resources/js/ckeditor/skins/kama/images/toolbar_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/skins/kama/images/toolbar_start.gif and b/sm-shop/src/main/webapp/resources/js/ckeditor/skins/kama/images/toolbar_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/skins/kama/skin.js b/sm-shop/src/main/webapp/resources/js/ckeditor/skins/kama/skin.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/skins/kama/templates.css b/sm-shop/src/main/webapp/resources/js/ckeditor/skins/kama/templates.css
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/skins/office2003/dialog.css b/sm-shop/src/main/webapp/resources/js/ckeditor/skins/office2003/dialog.css
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/skins/office2003/editor.css b/sm-shop/src/main/webapp/resources/js/ckeditor/skins/office2003/editor.css
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/skins/office2003/icons.png b/sm-shop/src/main/webapp/resources/js/ckeditor/skins/office2003/icons.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/skins/office2003/icons.png and b/sm-shop/src/main/webapp/resources/js/ckeditor/skins/office2003/icons.png differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/skins/office2003/icons_rtl.png b/sm-shop/src/main/webapp/resources/js/ckeditor/skins/office2003/icons_rtl.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/skins/office2003/icons_rtl.png and b/sm-shop/src/main/webapp/resources/js/ckeditor/skins/office2003/icons_rtl.png differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/skins/office2003/images/dialog_sides.gif b/sm-shop/src/main/webapp/resources/js/ckeditor/skins/office2003/images/dialog_sides.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/skins/office2003/images/dialog_sides.gif and b/sm-shop/src/main/webapp/resources/js/ckeditor/skins/office2003/images/dialog_sides.gif differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/skins/office2003/images/dialog_sides.png b/sm-shop/src/main/webapp/resources/js/ckeditor/skins/office2003/images/dialog_sides.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/skins/office2003/images/dialog_sides.png and b/sm-shop/src/main/webapp/resources/js/ckeditor/skins/office2003/images/dialog_sides.png differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/skins/office2003/images/dialog_sides_rtl.png b/sm-shop/src/main/webapp/resources/js/ckeditor/skins/office2003/images/dialog_sides_rtl.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/skins/office2003/images/dialog_sides_rtl.png and b/sm-shop/src/main/webapp/resources/js/ckeditor/skins/office2003/images/dialog_sides_rtl.png differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/skins/office2003/images/mini.gif b/sm-shop/src/main/webapp/resources/js/ckeditor/skins/office2003/images/mini.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/skins/office2003/images/mini.gif and b/sm-shop/src/main/webapp/resources/js/ckeditor/skins/office2003/images/mini.gif differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/skins/office2003/images/noimage.png b/sm-shop/src/main/webapp/resources/js/ckeditor/skins/office2003/images/noimage.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/skins/office2003/images/noimage.png and b/sm-shop/src/main/webapp/resources/js/ckeditor/skins/office2003/images/noimage.png differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/skins/office2003/images/sprites.png b/sm-shop/src/main/webapp/resources/js/ckeditor/skins/office2003/images/sprites.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/skins/office2003/images/sprites.png and b/sm-shop/src/main/webapp/resources/js/ckeditor/skins/office2003/images/sprites.png differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/skins/office2003/images/sprites_ie6.png b/sm-shop/src/main/webapp/resources/js/ckeditor/skins/office2003/images/sprites_ie6.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/skins/office2003/images/sprites_ie6.png and b/sm-shop/src/main/webapp/resources/js/ckeditor/skins/office2003/images/sprites_ie6.png differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/skins/office2003/skin.js b/sm-shop/src/main/webapp/resources/js/ckeditor/skins/office2003/skin.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/skins/office2003/templates.css b/sm-shop/src/main/webapp/resources/js/ckeditor/skins/office2003/templates.css
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/skins/v2/dialog.css b/sm-shop/src/main/webapp/resources/js/ckeditor/skins/v2/dialog.css
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/skins/v2/editor.css b/sm-shop/src/main/webapp/resources/js/ckeditor/skins/v2/editor.css
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/skins/v2/icons.png b/sm-shop/src/main/webapp/resources/js/ckeditor/skins/v2/icons.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/skins/v2/icons.png and b/sm-shop/src/main/webapp/resources/js/ckeditor/skins/v2/icons.png differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/skins/v2/icons_rtl.png b/sm-shop/src/main/webapp/resources/js/ckeditor/skins/v2/icons_rtl.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/skins/v2/icons_rtl.png and b/sm-shop/src/main/webapp/resources/js/ckeditor/skins/v2/icons_rtl.png differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/skins/v2/images/dialog_sides.gif b/sm-shop/src/main/webapp/resources/js/ckeditor/skins/v2/images/dialog_sides.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/skins/v2/images/dialog_sides.gif and b/sm-shop/src/main/webapp/resources/js/ckeditor/skins/v2/images/dialog_sides.gif differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/skins/v2/images/dialog_sides.png b/sm-shop/src/main/webapp/resources/js/ckeditor/skins/v2/images/dialog_sides.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/skins/v2/images/dialog_sides.png and b/sm-shop/src/main/webapp/resources/js/ckeditor/skins/v2/images/dialog_sides.png differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/skins/v2/images/dialog_sides_rtl.png b/sm-shop/src/main/webapp/resources/js/ckeditor/skins/v2/images/dialog_sides_rtl.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/skins/v2/images/dialog_sides_rtl.png and b/sm-shop/src/main/webapp/resources/js/ckeditor/skins/v2/images/dialog_sides_rtl.png differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/skins/v2/images/mini.gif b/sm-shop/src/main/webapp/resources/js/ckeditor/skins/v2/images/mini.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/skins/v2/images/mini.gif and b/sm-shop/src/main/webapp/resources/js/ckeditor/skins/v2/images/mini.gif differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/skins/v2/images/noimage.png b/sm-shop/src/main/webapp/resources/js/ckeditor/skins/v2/images/noimage.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/skins/v2/images/noimage.png and b/sm-shop/src/main/webapp/resources/js/ckeditor/skins/v2/images/noimage.png differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/skins/v2/images/sprites.png b/sm-shop/src/main/webapp/resources/js/ckeditor/skins/v2/images/sprites.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/skins/v2/images/sprites.png and b/sm-shop/src/main/webapp/resources/js/ckeditor/skins/v2/images/sprites.png differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/skins/v2/images/sprites_ie6.png b/sm-shop/src/main/webapp/resources/js/ckeditor/skins/v2/images/sprites_ie6.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/skins/v2/images/sprites_ie6.png and b/sm-shop/src/main/webapp/resources/js/ckeditor/skins/v2/images/sprites_ie6.png differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/skins/v2/images/toolbar_start.gif b/sm-shop/src/main/webapp/resources/js/ckeditor/skins/v2/images/toolbar_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/js/ckeditor/skins/v2/images/toolbar_start.gif and b/sm-shop/src/main/webapp/resources/js/ckeditor/skins/v2/images/toolbar_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/skins/v2/skin.js b/sm-shop/src/main/webapp/resources/js/ckeditor/skins/v2/skin.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/skins/v2/templates.css b/sm-shop/src/main/webapp/resources/js/ckeditor/skins/v2/templates.css
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/ckeditor/themes/default/theme.js b/sm-shop/src/main/webapp/resources/js/ckeditor/themes/default/theme.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/functions.jsp b/sm-shop/src/main/webapp/resources/js/functions.jsp
old mode 100755
new mode 100644
index 40ce0a7..a623e66
--- a/sm-shop/src/main/webapp/resources/js/functions.jsp
+++ b/sm-shop/src/main/webapp/resources/js/functions.jsp
@@ -87,6 +87,46 @@ function cartSubTotal(cart) {
}
+function getOrderValidationMessage(messageKey) {
+
+ //stripe messages
+ var invalid_number = '<s:message code="messages.error.creditcard.number" text="invalid_number"/>';
+ var invalid_expiry_month = '<s:message code="messages.error.creditcard.dateformat" text="invalid_expiry_month"/>';
+ var invalid_expiry_year = '<s:message code="messages.error.creditcard.dateformat" text="invalid_expiry_year"/>';
+ var invalid_cvc = '<s:message code="messages.error.creditcard.cvc" text="invalid_cvc"/>';
+ var incorrect_number = '<s:message code="messages.error.creditcard.number" text="invalid_expiry_month"/>';
+ var expired_card = '<s:message code="message.payment.declined" text="expired_card"/>';
+ var incorrect_cvc = '<s:message code="messages.error.creditcard.cvc" text="incorrect_cvc"/>';
+ var card_declined = '<s:message code="message.payment.declined" text="card_declined"/>';
+ var processing_error = '<s:message code="message.payment.error" text="processing_error"/>';
+ var rate_limit = '<s:message code="message.payment.error" text="rate_limit"/>';
+
+ var map = new Object(); // or var map = {};
+ map['invalid_number'] = invalid_number;
+ map['invalid_expiry_month'] = invalid_expiry_month;
+ map['invalid_expiry_year'] = invalid_expiry_year;
+ map['invalid_cvc'] = invalid_cvc;
+ map['incorrect_number'] = incorrect_number;
+ map['expired_card'] = expired_card;
+ map['incorrect_cvc'] = incorrect_cvc;
+ map['card_declined'] = card_declined;
+ map['processing_error'] = processing_error;
+ map['rate_limit'] = rate_limit;
+
+ //log('Got message key ' + messageKey);
+
+ var message = map[messageKey];
+
+ if(message==null) {
+ message = messageKey;
+ }
+
+ return message;
+
+
+}
+
+
</script>
\ No newline at end of file
diff --git a/sm-shop/src/main/webapp/resources/js/hogan.js b/sm-shop/src/main/webapp/resources/js/hogan.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/jquery.alphanumeric.pack.js b/sm-shop/src/main/webapp/resources/js/jquery.alphanumeric.pack.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/jquery.creditCardValidator.js b/sm-shop/src/main/webapp/resources/js/jquery.creditCardValidator.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/jquery.easing.1.3.js b/sm-shop/src/main/webapp/resources/js/jquery.easing.1.3.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/jquery.elevateZoom-3.0.8.min.js b/sm-shop/src/main/webapp/resources/js/jquery.elevateZoom-3.0.8.min.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/jquery.formatCurrency-1.4.0.js b/sm-shop/src/main/webapp/resources/js/jquery.formatCurrency-1.4.0.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/jquery.friendurl.min.js b/sm-shop/src/main/webapp/resources/js/jquery.friendurl.min.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/jquery.maskedinput.min.js b/sm-shop/src/main/webapp/resources/js/jquery.maskedinput.min.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/jquery.quicksand.js b/sm-shop/src/main/webapp/resources/js/jquery.quicksand.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/jquery.raty.min.js b/sm-shop/src/main/webapp/resources/js/jquery.raty.min.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/jquery.showLoading.min.js b/sm-shop/src/main/webapp/resources/js/jquery.showLoading.min.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/jquery-1.10.2.min.js b/sm-shop/src/main/webapp/resources/js/jquery-1.10.2.min.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/jquery-cookie.js b/sm-shop/src/main/webapp/resources/js/jquery-cookie.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/jquery-sort-filter-plugin.js b/sm-shop/src/main/webapp/resources/js/jquery-sort-filter-plugin.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/json2.js b/sm-shop/src/main/webapp/resources/js/json2.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/login.js b/sm-shop/src/main/webapp/resources/js/login.js
old mode 100755
new mode 100644
index 0e5b749..c232242
--- a/sm-shop/src/main/webapp/resources/js/login.js
+++ b/sm-shop/src/main/webapp/resources/js/login.js
@@ -1,7 +1,7 @@
$(function() {
$("#signinDrop").click(function(e){
- log('Signin drop down');
+ //log('Signin drop down');
$("#loginError").hide();
e.preventDefault();
});
@@ -18,7 +18,7 @@
});
$("#login-button").click(function(e) {
- log('Calling login');
+ //log('Calling login');
e.preventDefault();
e.stopPropagation();
login();
@@ -40,7 +40,7 @@
return;
}
- log('Before showLoading');
+ //log('Before showLoading');
//Need to have the logon table id signinPane
$('#signinPane').showLoading();
@@ -56,12 +56,12 @@
dataType:'json',
'success': function(response) {
$('#signinPane').hideLoading();
- log(response);
+ //log(response);
if (response.response.status==0) {//success
//SHOPPING_CART
- log(response.response.SHOPPING_CART);
+ //log(response.response.SHOPPING_CART);
if(response.response.SHOPPING_CART!=null && response.response.SHOPPING_CART != ""){
- log('saving cart ' + response.response.SHOPPING_CART);
+ //log('saving cart ' + response.response.SHOPPING_CART);
/** save cart in cookie **/
var cartCode = buildCartCode(response.response.SHOPPING_CART);
$.cookie('cart',cartCode, { expires: 1024, path:'/' });
diff --git a/sm-shop/src/main/webapp/resources/js/product.js b/sm-shop/src/main/webapp/resources/js/product.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/registration.js b/sm-shop/src/main/webapp/resources/js/registration.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/shop-account.js b/sm-shop/src/main/webapp/resources/js/shop-account.js
old mode 100755
new mode 100644
index 45a9095..f77864d
--- a/sm-shop/src/main/webapp/resources/js/shop-account.js
+++ b/sm-shop/src/main/webapp/resources/js/shop-account.js
@@ -12,15 +12,7 @@
}
initUserAccount();
}
-
- //init bindings
- //$("#switchLanguageButton").click(function(e) {
- // log('Switch Language');
- //go to home page and set the new language
- // location.href = getContextPath() + '/shop?locale=fr';
- //});
-
-
+
});
function initUserAccount() {
diff --git a/sm-shop/src/main/webapp/resources/js/shop-customer.js b/sm-shop/src/main/webapp/resources/js/shop-customer.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/shop-functions.js b/sm-shop/src/main/webapp/resources/js/shop-functions.js
old mode 100755
new mode 100644
index 044ce97..338ec43
--- a/sm-shop/src/main/webapp/resources/js/shop-functions.js
+++ b/sm-shop/src/main/webapp/resources/js/shop-functions.js
@@ -48,7 +48,9 @@ function loadProducts(url,divProductsContainer) {
function searchProducts(url,divProductsContainer,q,filter) {
- $(divProductsContainer).showLoading();
+ log(q);
+
+
if(q==null || q=='') {
return;
@@ -59,7 +61,10 @@ function searchProducts(url,divProductsContainer,q,filter) {
var highlights = null;
var queryStart = '{';
- var query = '\"query\":{\"query_string\" : {\"fields\" : [\"name^3\", \"description\", \"tags\"], \"query\" : \"*' + q + '*", \"use_dis_max\" : true }}';
+ //curl -XGET 'http://localhost:9200/product_en_default/_search' -d '{"query":{"multi_match":{"query": "buddha","fields": [ "name^3", "description", "tags" ]}},"facets" : { "categories" : { "terms" : {"field" : "categories"}}}}'
+
+ //var query = '\"query\":{\"query_string\" : {\"fields\" : [\"name^3\", \"description\", \"tags\"], \"query\" : \"*' + q + '*", \"use_dis_max\" : true }}';
+ var query = '\"query\":{\"multi_match\" : {\"fields\" : [\"name^3\", \"description\", \"tags\"], \"query\" : \"*' + q + '*"}}';
if(filter!=null && filter!='') {
//query = '\"query\":{\"filtered\":{\"query\":{\"text\":{\"_all\":\"' + q + '\"}},' + filter + '}}';
query = query + ',' + filter + '}}';
@@ -82,7 +87,6 @@ function searchProducts(url,divProductsContainer,q,filter) {
contentType:"application/json;charset=UTF-8",
success: function(productList) {
- buildProductsList(productList,divProductsContainer, null);
callBackSearchProducts(productList);
diff --git a/sm-shop/src/main/webapp/resources/js/shop-minicart.js b/sm-shop/src/main/webapp/resources/js/shop-minicart.js
old mode 100755
new mode 100644
index e96121f..85fbd96
--- a/sm-shop/src/main/webapp/resources/js/shop-minicart.js
+++ b/sm-shop/src/main/webapp/resources/js/shop-minicart.js
@@ -10,7 +10,7 @@
function initMiniCart() {
var cartCode = getCartCode();
- log('Check for cart code ' + cartCode);
+ //log('Check for cart code ' + cartCode);
if(cartCode!=null) {
miniCart(cartCode);
} else {
@@ -321,7 +321,7 @@ function fullCart(cart) {
var miniCartTemplate = Hogan.compile(document.getElementById("miniCartTemplate").innerHTML);
var miniCartRendered = miniCartTemplate.render(cart);
- console.log(miniCartRendered);
+ //log(miniCartRendered);
$('#miniCartDetails').html(miniCartRendered);
}
diff --git a/sm-shop/src/main/webapp/resources/js/shopping-cart.js b/sm-shop/src/main/webapp/resources/js/shopping-cart.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/js/typeahead.min.js b/sm-shop/src/main/webapp/resources/js/typeahead.min.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/messages/error.png b/sm-shop/src/main/webapp/resources/messages/error.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/messages/error.png and b/sm-shop/src/main/webapp/resources/messages/error.png differ
diff --git a/sm-shop/src/main/webapp/resources/messages/info.png b/sm-shop/src/main/webapp/resources/messages/info.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/messages/info.png and b/sm-shop/src/main/webapp/resources/messages/info.png differ
diff --git a/sm-shop/src/main/webapp/resources/messages/messages.css b/sm-shop/src/main/webapp/resources/messages/messages.css
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/messages/success.png b/sm-shop/src/main/webapp/resources/messages/success.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/messages/success.png and b/sm-shop/src/main/webapp/resources/messages/success.png differ
diff --git a/sm-shop/src/main/webapp/resources/messages/warning.png b/sm-shop/src/main/webapp/resources/messages/warning.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/messages/warning.png and b/sm-shop/src/main/webapp/resources/messages/warning.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/backButton.html b/sm-shop/src/main/webapp/resources/smart-client/components/components/backButton.html
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/button_selection.html b/sm-shop/src/main/webapp/resources/smart-client/components/components/button_selection.html
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/canvas_clip_scroll.html b/sm-shop/src/main/webapp/resources/smart-client/components/components/canvas_clip_scroll.html
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/detailViewer_init.html b/sm-shop/src/main/webapp/resources/smart-client/components/components/detailViewer_init.html
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/dialog_globals.html b/sm-shop/src/main/webapp/resources/smart-client/components/components/dialog_globals.html
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/dynamicForm_annotations.html b/sm-shop/src/main/webapp/resources/smart-client/components/components/dynamicForm_annotations.html
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/dynamicForm_init.html b/sm-shop/src/main/webapp/resources/smart-client/components/components/dynamicForm_init.html
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/dynamicForm_item_types.html b/sm-shop/src/main/webapp/resources/smart-client/components/components/dynamicForm_item_types.html
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/dynamicForm_layout.html b/sm-shop/src/main/webapp/resources/smart-client/components/components/dynamicForm_layout.html
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/dynamicForm_validators.html b/sm-shop/src/main/webapp/resources/smart-client/components/components/dynamicForm_validators.html
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/editableListGrid_init.html b/sm-shop/src/main/webapp/resources/smart-client/components/components/editableListGrid_init.html
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/event_details.html b/sm-shop/src/main/webapp/resources/smart-client/components/components/event_details.html
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/event_logger.html b/sm-shop/src/main/webapp/resources/smart-client/components/components/event_logger.html
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/event_propagation.html b/sm-shop/src/main/webapp/resources/smart-client/components/components/event_propagation.html
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/blank.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/blank.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/blank.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/blank.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/greenlight.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/greenlight.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/greenlight.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/greenlight.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/imgButton/button.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/imgButton/button.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/imgButton/button.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/imgButton/button.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/imgButton/button_Disabled.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/imgButton/button_Disabled.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/imgButton/button_Disabled.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/imgButton/button_Disabled.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/imgButton/button_Down.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/imgButton/button_Down.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/imgButton/button_Down.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/imgButton/button_Down.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/imgButton/button_Over.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/imgButton/button_Over.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/imgButton/button_Over.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/imgButton/button_Over.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/imgButton/button_Selected.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/imgButton/button_Selected.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/imgButton/button_Selected.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/imgButton/button_Selected.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/imgButton/button_Selected_Disabled.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/imgButton/button_Selected_Disabled.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/imgButton/button_Selected_Disabled.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/imgButton/button_Selected_Disabled.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/imgButton/button_Selected_Down.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/imgButton/button_Selected_Down.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/imgButton/button_Selected_Down.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/imgButton/button_Selected_Down.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/imgButton/button_Selected_Over.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/imgButton/button_Selected_Over.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/imgButton/button_Selected_Over.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/imgButton/button_Selected_Over.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hscroll_corner.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hscroll_corner.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hscroll_corner.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hscroll_corner.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hscroll_Disabled_corner.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hscroll_Disabled_corner.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hscroll_Disabled_corner.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hscroll_Disabled_corner.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hscroll_Disabled_end.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hscroll_Disabled_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hscroll_Disabled_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hscroll_Disabled_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hscroll_Disabled_start.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hscroll_Disabled_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hscroll_Disabled_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hscroll_Disabled_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hscroll_Disabled_track.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hscroll_Disabled_track.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hscroll_Disabled_track.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hscroll_Disabled_track.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hscroll_Down_corner.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hscroll_Down_corner.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hscroll_Down_corner.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hscroll_Down_corner.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hscroll_Down_end.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hscroll_Down_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hscroll_Down_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hscroll_Down_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hscroll_Down_start.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hscroll_Down_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hscroll_Down_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hscroll_Down_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hscroll_Down_track.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hscroll_Down_track.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hscroll_Down_track.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hscroll_Down_track.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hscroll_end.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hscroll_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hscroll_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hscroll_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hscroll_start.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hscroll_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hscroll_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hscroll_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hscroll_track.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hscroll_track.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hscroll_track.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hscroll_track.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hthumb_Disabled_end.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hthumb_Disabled_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hthumb_Disabled_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hthumb_Disabled_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hthumb_Disabled_start.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hthumb_Disabled_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hthumb_Disabled_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hthumb_Disabled_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hthumb_Disabled_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hthumb_Disabled_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hthumb_Disabled_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hthumb_Disabled_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hthumb_Down_end.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hthumb_Down_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hthumb_Down_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hthumb_Down_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hthumb_Down_start.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hthumb_Down_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hthumb_Down_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hthumb_Down_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hthumb_Down_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hthumb_Down_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hthumb_Down_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hthumb_Down_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hthumb_end.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hthumb_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hthumb_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hthumb_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hthumb_start.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hthumb_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hthumb_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hthumb_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hthumb_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hthumb_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hthumb_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/hthumb_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vscroll_corner.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vscroll_corner.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vscroll_corner.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vscroll_corner.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vscroll_Disabled_corner.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vscroll_Disabled_corner.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vscroll_Disabled_corner.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vscroll_Disabled_corner.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vscroll_Disabled_end.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vscroll_Disabled_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vscroll_Disabled_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vscroll_Disabled_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vscroll_Disabled_start.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vscroll_Disabled_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vscroll_Disabled_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vscroll_Disabled_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vscroll_Disabled_track.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vscroll_Disabled_track.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vscroll_Disabled_track.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vscroll_Disabled_track.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vscroll_Down_corner.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vscroll_Down_corner.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vscroll_Down_corner.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vscroll_Down_corner.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vscroll_Down_end.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vscroll_Down_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vscroll_Down_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vscroll_Down_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vscroll_Down_start.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vscroll_Down_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vscroll_Down_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vscroll_Down_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vscroll_Down_track.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vscroll_Down_track.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vscroll_Down_track.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vscroll_Down_track.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vscroll_end.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vscroll_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vscroll_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vscroll_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vscroll_start.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vscroll_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vscroll_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vscroll_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vscroll_track.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vscroll_track.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vscroll_track.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vscroll_track.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vthumb_Disabled_end.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vthumb_Disabled_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vthumb_Disabled_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vthumb_Disabled_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vthumb_Disabled_start.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vthumb_Disabled_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vthumb_Disabled_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vthumb_Disabled_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vthumb_Disabled_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vthumb_Disabled_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vthumb_Disabled_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vthumb_Disabled_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vthumb_Down_end.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vthumb_Down_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vthumb_Down_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vthumb_Down_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vthumb_Down_start.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vthumb_Down_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vthumb_Down_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vthumb_Down_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vthumb_Down_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vthumb_Down_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vthumb_Down_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vthumb_Down_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vthumb_end.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vthumb_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vthumb_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vthumb_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vthumb_start.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vthumb_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vthumb_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vthumb_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vthumb_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vthumb_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vthumb_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/MacScrollbars/vthumb_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/redlight.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/redlight.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/redlight.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/redlight.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Disabled_end.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Disabled_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Disabled_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Disabled_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Disabled_start.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Disabled_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Disabled_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Disabled_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Disabled_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Disabled_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Disabled_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Disabled_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Down_end.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Down_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Down_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Down_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Down_start.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Down_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Down_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Down_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Down_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Down_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Down_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Down_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_end.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Over_end.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Over_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Over_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Over_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Over_start.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Over_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Over_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Over_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Over_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Over_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Over_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Over_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Selected_Disabled_end.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Selected_Disabled_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Selected_Disabled_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Selected_Disabled_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Selected_Disabled_start.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Selected_Disabled_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Selected_Disabled_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Selected_Disabled_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Selected_Disabled_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Selected_Disabled_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Selected_Disabled_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Selected_Disabled_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Selected_Down_end.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Selected_Down_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Selected_Down_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Selected_Down_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Selected_Down_start.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Selected_Down_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Selected_Down_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Selected_Down_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Selected_Down_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Selected_Down_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Selected_Down_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Selected_Down_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Selected_end.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Selected_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Selected_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Selected_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Selected_Over_end.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Selected_Over_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Selected_Over_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Selected_Over_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Selected_Over_start.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Selected_Over_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Selected_Over_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Selected_Over_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Selected_Over_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Selected_Over_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Selected_Over_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Selected_Over_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Selected_start.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Selected_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Selected_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Selected_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Selected_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Selected_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Selected_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_Selected_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_start.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/stretchImgButton/button_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/yinyang.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/yinyang.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/yinyang.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/yinyang.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/yinyang_icon.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/yinyang_icon.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/yinyang_icon.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/yinyang_icon.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/yinyang_inverted.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/yinyang_inverted.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/yinyang_inverted.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/yinyang_inverted.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/yinyang_small.gif b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/yinyang_small.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/components/components/images/yinyang_small.gif and b/sm-shop/src/main/webapp/resources/smart-client/components/components/images/yinyang_small.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/img_rollover.html b/sm-shop/src/main/webapp/resources/smart-client/components/components/img_rollover.html
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/imgButton_selection.html b/sm-shop/src/main/webapp/resources/smart-client/components/components/imgButton_selection.html
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/index.html b/sm-shop/src/main/webapp/resources/smart-client/components/components/index.html
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/keypress_handling.html b/sm-shop/src/main/webapp/resources/smart-client/components/components/keypress_handling.html
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/label.html b/sm-shop/src/main/webapp/resources/smart-client/components/components/label.html
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/listGrid_drag.html b/sm-shop/src/main/webapp/resources/smart-client/components/components/listGrid_drag.html
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/listGrid_init.html b/sm-shop/src/main/webapp/resources/smart-client/components/components/listGrid_init.html
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/menu_features.html b/sm-shop/src/main/webapp/resources/smart-client/components/components/menu_features.html
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/menu_init.html b/sm-shop/src/main/webapp/resources/smart-client/components/components/menu_init.html
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/menubar_features.html b/sm-shop/src/main/webapp/resources/smart-client/components/components/menubar_features.html
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/progressbar.html b/sm-shop/src/main/webapp/resources/smart-client/components/components/progressbar.html
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/refresh_response.html b/sm-shop/src/main/webapp/resources/smart-client/components/components/refresh_response.html
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/refreshFromServer.html b/sm-shop/src/main/webapp/resources/smart-client/components/components/refreshFromServer.html
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/replace_response.html b/sm-shop/src/main/webapp/resources/smart-client/components/components/replace_response.html
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/replaceFromServer.html b/sm-shop/src/main/webapp/resources/smart-client/components/components/replaceFromServer.html
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/scrollBar_custom.html b/sm-shop/src/main/webapp/resources/smart-client/components/components/scrollBar_custom.html
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/skin_custom.html b/sm-shop/src/main/webapp/resources/smart-client/components/components/skin_custom.html
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/slider_colormixer.html b/sm-shop/src/main/webapp/resources/smart-client/components/components/slider_colormixer.html
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/stretchImgButton_selection.html b/sm-shop/src/main/webapp/resources/smart-client/components/components/stretchImgButton_selection.html
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/tabSet_init.html b/sm-shop/src/main/webapp/resources/smart-client/components/components/tabSet_init.html
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/toolbar_features.html b/sm-shop/src/main/webapp/resources/smart-client/components/components/toolbar_features.html
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/treeGrid_init.html b/sm-shop/src/main/webapp/resources/smart-client/components/components/treeGrid_init.html
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/treeGrid_init_connectors.html b/sm-shop/src/main/webapp/resources/smart-client/components/components/treeGrid_init_connectors.html
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/widget_attachment.html b/sm-shop/src/main/webapp/resources/smart-client/components/components/widget_attachment.html
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/widget_drag_appearance.html b/sm-shop/src/main/webapp/resources/smart-client/components/components/widget_drag_appearance.html
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/widget_drag_resize.html b/sm-shop/src/main/webapp/resources/smart-client/components/components/widget_drag_resize.html
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/widget_layering.html b/sm-shop/src/main/webapp/resources/smart-client/components/components/widget_layering.html
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/widget_position_size.html b/sm-shop/src/main/webapp/resources/smart-client/components/components/widget_position_size.html
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/components/components/window_init.html b/sm-shop/src/main/webapp/resources/smart-client/components/components/window_init.html
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/accept.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/accept.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/accept.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/accept.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/add.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/add.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/add.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/add.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/add_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/add_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/add_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/add_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/approve.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/approve.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/approve.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/approve.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/back.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/back.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/back.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/back.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/back_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/back_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/back_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/back_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/close.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/close.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/close.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/close.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/close_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/close_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/close_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/close_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/close_Down.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/close_Down.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/close_Down.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/close_Down.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/close_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/close_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/close_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/close_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/color_swatch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/color_swatch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/color_swatch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/color_swatch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/column_preferences.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/column_preferences.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/column_preferences.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/column_preferences.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/configure.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/configure.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/configure.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/configure.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/download.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/download.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/download.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/download.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/edit.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/edit.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/edit.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/edit.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/edit_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/edit_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/edit_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/edit_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/exclamation.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/exclamation.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/exclamation.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/exclamation.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/filter.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/filter.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/filter.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/filter.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/first.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/first.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/first.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/first.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/forward.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/forward.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/forward.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/forward.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/forward_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/forward_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/forward_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/forward_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/freezeLeft.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/freezeLeft.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/freezeLeft.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/freezeLeft.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/freezeRight.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/freezeRight.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/freezeRight.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/freezeRight.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/groupby.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/groupby.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/groupby.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/groupby.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/help.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/help.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/help.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/help.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/last.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/last.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/last.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/last.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/next.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/next.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/next.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/next.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/ok.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/ok.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/ok.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/ok.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/plus.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/plus.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/plus.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/plus.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/plus_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/plus_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/plus_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/plus_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/prev.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/prev.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/prev.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/prev.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/print.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/print.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/print.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/print.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/redo.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/redo.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/redo.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/redo.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/refresh.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/refresh.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/refresh.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/refresh.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/remove.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/remove.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/remove.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/remove.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/remove_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/remove_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/remove_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/remove_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/save.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/save.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/save.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/save.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/search.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/search.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/search.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/search.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/sort_ascending.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/sort_ascending.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/sort_ascending.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/sort_ascending.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/sort_descending.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/sort_descending.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/sort_descending.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/sort_descending.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/text_linespacing.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/text_linespacing.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/text_linespacing.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/text_linespacing.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/undo.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/undo.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/undo.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/undo.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/unfreeze.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/unfreeze.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/unfreeze.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/unfreeze.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/ungroup.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/ungroup.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/ungroup.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/ungroup.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/view.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/view.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/view.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/actions/view.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/black.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/black.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/black.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/black.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/blank.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/blank.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/blank.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/blank.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Disabled_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Disabled_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Disabled_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Disabled_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Disabled_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Disabled_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Disabled_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Disabled_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Disabled_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Disabled_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Disabled_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Disabled_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Down_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Down_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Down_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Down_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Down_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Down_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Down_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Down_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Down_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Down_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Down_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Down_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Over_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Over_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Over_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Over_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Over_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Over_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Over_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Over_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Over_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Over_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Over_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Over_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Selected_Disabled_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Selected_Disabled_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Selected_Disabled_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Selected_Disabled_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Selected_Disabled_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Selected_Disabled_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Selected_Disabled_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Selected_Disabled_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Selected_Disabled_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Selected_Disabled_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Selected_Disabled_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Selected_Disabled_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Selected_Down_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Selected_Down_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Selected_Down_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Selected_Down_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Selected_Down_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Selected_Down_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Selected_Down_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Selected_Down_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Selected_Down_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Selected_Down_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Selected_Down_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Selected_Down_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Selected_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Selected_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Selected_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Selected_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Selected_Over_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Selected_Over_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Selected_Over_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Selected_Over_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Selected_Over_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Selected_Over_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Selected_Over_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Selected_Over_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Selected_Over_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Selected_Over_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Selected_Over_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Selected_Over_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Selected_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Selected_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Selected_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Selected_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Selected_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Selected_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Selected_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_Selected_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/button/button_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ColorPicker/crosshair.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ColorPicker/crosshair.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ColorPicker/crosshair.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ColorPicker/crosshair.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ColorPicker/spectrum.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ColorPicker/spectrum.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ColorPicker/spectrum.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ColorPicker/spectrum.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/cssButton/button_Disabled_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/cssButton/button_Disabled_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/cssButton/button_Disabled_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/cssButton/button_Disabled_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/cssButton/button_Down_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/cssButton/button_Down_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/cssButton/button_Down_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/cssButton/button_Down_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/cssButton/button_Over_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/cssButton/button_Over_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/cssButton/button_Over_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/cssButton/button_Over_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/cssButton/button_Selected_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/cssButton/button_Selected_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/cssButton/button_Selected_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/cssButton/button_Selected_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/cssButton/button_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/cssButton/button_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/cssButton/button_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/cssButton/button_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/arrow_closed.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/arrow_closed.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/arrow_closed.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/arrow_closed.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/arrow_closed_down.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/arrow_closed_down.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/arrow_closed_down.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/arrow_closed_down.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/arrow_closed_left.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/arrow_closed_left.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/arrow_closed_left.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/arrow_closed_left.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/arrow_closed_right.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/arrow_closed_right.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/arrow_closed_right.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/arrow_closed_right.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/arrow_open.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/arrow_open.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/arrow_open.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/arrow_open.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/arrow_open_down.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/arrow_open_down.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/arrow_open_down.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/arrow_open_down.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/arrow_open_left.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/arrow_open_left.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/arrow_open_left.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/arrow_open_left.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/arrow_open_right.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/arrow_open_right.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/arrow_open_right.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/arrow_open_right.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/arrow_open_up.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/arrow_open_up.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/arrow_open_up.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/arrow_open_up.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/arrow_opening.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/arrow_opening.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/arrow_opening.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/arrow_opening.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/close.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/close.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/close.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/close.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/close_over.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/close_over.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/close_over.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/close_over.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/colHeader.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/colHeader.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/colHeader.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/colHeader.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/colHeaderDisabled.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/colHeaderDisabled.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/colHeaderDisabled.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/colHeaderDisabled.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/colHeaderLabel.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/colHeaderLabel.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/colHeaderLabel.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/colHeaderLabel.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/colHeaderLabelDown.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/colHeaderLabelDown.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/colHeaderLabelDown.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/colHeaderLabelDown.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/colHeaderOver.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/colHeaderOver.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/colHeaderOver.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/colHeaderOver.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/colHeaderSelected.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/colHeaderSelected.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/colHeaderSelected.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/colHeaderSelected.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/colHeaderSelectedOver.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/colHeaderSelectedOver.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/colHeaderSelectedOver.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/colHeaderSelectedOver.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/header_handle.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/header_handle.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/header_handle.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/header_handle.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/header_handle_over.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/header_handle_over.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/header_handle_over.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/header_handle_over.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/innerHeader.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/innerHeader.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/innerHeader.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/innerHeader.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/innerHeaderDown.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/innerHeaderDown.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/innerHeaderDown.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/innerHeaderDown.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/innerHeaderSelected.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/innerHeaderSelected.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/innerHeaderSelected.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/innerHeaderSelected.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/innerHeaderSelectedOver.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/innerHeaderSelectedOver.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/innerHeaderSelectedOver.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/innerHeaderSelectedOver.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/maximize.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/maximize.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/maximize.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/maximize.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/maximize_over.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/maximize_over.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/maximize_over.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/maximize_over.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/minimize.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/minimize.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/minimize.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/minimize.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/minimize_over.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/minimize_over.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/minimize_over.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/minimize_over.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/rowHeader.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/rowHeader.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/rowHeader.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/rowHeader.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/rowHeaderDisabled.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/rowHeaderDisabled.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/rowHeaderDisabled.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/rowHeaderDisabled.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/rowHeaderLabel.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/rowHeaderLabel.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/rowHeaderLabel.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/rowHeaderLabel.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/rowHeaderLabelDown.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/rowHeaderLabelDown.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/rowHeaderLabelDown.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/rowHeaderLabelDown.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/rowHeaderLabelSelected.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/rowHeaderLabelSelected.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/rowHeaderLabelSelected.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/rowHeaderLabelSelected.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/rowHeaderOver.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/rowHeaderOver.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/rowHeaderOver.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/rowHeaderOver.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/rowHeaderSelected.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/rowHeaderSelected.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/rowHeaderSelected.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/rowHeaderSelected.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/rowHeaderSelectedOver.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/rowHeaderSelectedOver.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/rowHeaderSelectedOver.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/rowHeaderSelectedOver.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/sort_down.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/sort_down.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/sort_down.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/sort_down.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/sort_down_over.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/sort_down_over.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/sort_down_over.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/sort_down_over.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/sort_down_selected.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/sort_down_selected.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/sort_down_selected.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/sort_down_selected.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/sort_down_selected_over.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/sort_down_selected_over.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/sort_down_selected_over.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/sort_down_selected_over.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/sort_up.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/sort_up.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/sort_up.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/sort_up.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/sort_up_over.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/sort_up_over.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/sort_up_over.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/sort_up_over.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/sort_up_selected.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/sort_up_selected.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/sort_up_selected.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/sort_up_selected.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/sort_up_selected_over.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/sort_up_selected_over.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/sort_up_selected_over.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/CubeGrid/sort_up_selected_over.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DatabaseBrowser/column.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DatabaseBrowser/column.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DatabaseBrowser/column.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DatabaseBrowser/column.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DatabaseBrowser/data.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DatabaseBrowser/data.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DatabaseBrowser/data.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DatabaseBrowser/data.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DateChooser/arrow_left.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DateChooser/arrow_left.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DateChooser/arrow_left.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DateChooser/arrow_left.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DateChooser/arrow_right.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DateChooser/arrow_right.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DateChooser/arrow_right.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DateChooser/arrow_right.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DateChooser/doubleArrow_left.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DateChooser/doubleArrow_left.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DateChooser/doubleArrow_left.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DateChooser/doubleArrow_left.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DateChooser/doubleArrow_right.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DateChooser/doubleArrow_right.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DateChooser/doubleArrow_right.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DateChooser/doubleArrow_right.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Dialog/ask.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Dialog/ask.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Dialog/ask.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Dialog/ask.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Dialog/confirm.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Dialog/confirm.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Dialog/confirm.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Dialog/confirm.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Dialog/error.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Dialog/error.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Dialog/error.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Dialog/error.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Dialog/notify.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Dialog/notify.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Dialog/notify.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Dialog/notify.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Dialog/say.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Dialog/say.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Dialog/say.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Dialog/say.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Dialog/stop.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Dialog/stop.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Dialog/stop.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Dialog/stop.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Dialog/warn copy.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Dialog/warn copy.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Dialog/warn copy.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Dialog/warn copy.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Dialog/warn.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Dialog/warn.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Dialog/warn.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Dialog/warn.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/checked.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/checked.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/checked.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/checked.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/checked_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/checked_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/checked_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/checked_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/checked_Down.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/checked_Down.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/checked_Down.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/checked_Down.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/ColorPicker_icon.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/ColorPicker_icon.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/ColorPicker_icon.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/ColorPicker_icon.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/ColorPicker_icon_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/ColorPicker_icon_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/ColorPicker_icon_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/ColorPicker_icon_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/date_control.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/date_control.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/date_control.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/date_control.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/date_control_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/date_control_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/date_control_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/date_control_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/default_formItem_icon.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/default_formItem_icon.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/default_formItem_icon.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/default_formItem_icon.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/default_formItem_icon_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/default_formItem_icon_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/default_formItem_icon_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/default_formItem_icon_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/default_formItem_icon_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/default_formItem_icon_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/default_formItem_icon_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/default_formItem_icon_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/partialcheck.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/partialcheck.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/partialcheck.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/partialcheck.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/PopUpTextAreaEditor_icon.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/PopUpTextAreaEditor_icon.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/PopUpTextAreaEditor_icon.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/PopUpTextAreaEditor_icon.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/PropSheet_ColorPicker_icon.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/PropSheet_ColorPicker_icon.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/PropSheet_ColorPicker_icon.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/PropSheet_ColorPicker_icon.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/PropSheet_pickbutton.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/PropSheet_pickbutton.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/PropSheet_pickbutton.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/PropSheet_pickbutton.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/PropSheet_pickbutton_Disabled.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/PropSheet_pickbutton_Disabled.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/PropSheet_pickbutton_Disabled.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/PropSheet_pickbutton_Disabled.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/Remove_icon.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/Remove_icon.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/Remove_icon.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/Remove_icon.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/Remove_icon_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/Remove_icon_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/Remove_icon_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/Remove_icon_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/Remove_icon_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/Remove_icon_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/Remove_icon_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/Remove_icon_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/spinner_control_decrease.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/spinner_control_decrease.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/spinner_control_decrease.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/spinner_control_decrease.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/spinner_control_decrease_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/spinner_control_decrease_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/spinner_control_decrease_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/spinner_control_decrease_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/spinner_control_decrease_Focused.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/spinner_control_decrease_Focused.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/spinner_control_decrease_Focused.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/spinner_control_decrease_Focused.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/spinner_control_increase.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/spinner_control_increase.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/spinner_control_increase.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/spinner_control_increase.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/spinner_control_increase_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/spinner_control_increase_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/spinner_control_increase_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/spinner_control_increase_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/spinner_control_increase_Focused.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/spinner_control_increase_Focused.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/spinner_control_increase_Focused.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/spinner_control_increase_Focused.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/text_control.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/text_control.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/text_control.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/text_control.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/text_control_Disabled.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/text_control_Disabled.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/text_control_Disabled.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/text_control_Disabled.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/text_control_Over.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/text_control_Over.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/text_control_Over.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/text_control_Over.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/unchecked.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/unchecked.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/unchecked.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/unchecked.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/unchecked_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/unchecked_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/unchecked_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/unchecked_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/unchecked_Down.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/unchecked_Down.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/unchecked_Down.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/unchecked_Down.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/unsetcheck.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/unsetcheck.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/unsetcheck.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/unsetcheck.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/unsetcheck_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/unsetcheck_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/unsetcheck_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/unsetcheck_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/unsetcheck_Down.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/unsetcheck_Down.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/unsetcheck_Down.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/unsetcheck_Down.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/unsetcheck_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/unsetcheck_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/unsetcheck_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/DynamicForm/unsetcheck_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/edges/edge_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/edges/edge_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/edges/edge_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/edges/edge_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/edges/edge_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/edges/edge_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/edges/edge_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/edges/edge_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/edges/edge_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/edges/edge_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/edges/edge_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/edges/edge_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/edges/edge_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/edges/edge_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/edges/edge_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/edges/edge_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/edges/edge_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/edges/edge_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/edges/edge_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/edges/edge_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/edges/edge_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/edges/edge_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/edges/edge_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/edges/edge_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/edges/edge_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/edges/edge_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/edges/edge_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/edges/edge_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/edges/edge_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/edges/edge_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/edges/edge_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/edges/edge_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/FileBrowser/createNewFolder.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/FileBrowser/createNewFolder.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/FileBrowser/createNewFolder.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/FileBrowser/createNewFolder.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/FileBrowser/file.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/FileBrowser/file.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/FileBrowser/file.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/FileBrowser/file.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/FileBrowser/folder.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/FileBrowser/folder.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/FileBrowser/folder.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/FileBrowser/folder.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/FileBrowser/previousFolder.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/FileBrowser/previousFolder.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/FileBrowser/previousFolder.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/FileBrowser/previousFolder.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/FileBrowser/refresh.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/FileBrowser/refresh.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/FileBrowser/refresh.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/FileBrowser/refresh.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/FileBrowser/upOneLevel.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/FileBrowser/upOneLevel.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/FileBrowser/upOneLevel.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/FileBrowser/upOneLevel.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/arrow_down.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/arrow_down.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/arrow_down.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/arrow_down.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/arrow_down_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/arrow_down_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/arrow_down_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/arrow_down_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/arrow_down_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/arrow_down_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/arrow_down_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/arrow_down_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/arrow_left.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/arrow_left.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/arrow_left.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/arrow_left.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/arrow_left_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/arrow_left_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/arrow_left_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/arrow_left_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/arrow_left_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/arrow_left_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/arrow_left_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/arrow_left_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/arrow_right.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/arrow_right.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/arrow_right.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/arrow_right.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/arrow_right_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/arrow_right_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/arrow_right_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/arrow_right_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/arrow_right_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/arrow_right_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/arrow_right_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/arrow_right_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/arrow_up.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/arrow_up.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/arrow_up.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/arrow_up.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/arrow_up_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/arrow_up_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/arrow_up_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/arrow_up_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/arrow_up_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/arrow_up_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/arrow_up_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/arrow_up_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/calculator.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/calculator.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/calculator.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/calculator.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/calculator_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/calculator_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/calculator_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/calculator_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/calculator_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/calculator_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/calculator_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/calculator_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/cart.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/cart.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/cart.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/cart.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/cart_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/cart_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/cart_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/cart_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/cart_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/cart_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/cart_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/cart_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/cascade.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/cascade.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/cascade.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/cascade.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/cascade_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/cascade_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/cascade_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/cascade_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/cascade_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/cascade_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/cascade_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/cascade_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/clipboard.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/clipboard.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/clipboard.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/clipboard.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/clipboard_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/clipboard_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/clipboard_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/clipboard_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/clipboard_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/clipboard_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/clipboard_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/clipboard_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/clock.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/clock.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/clock.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/clock.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/clock_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/clock_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/clock_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/clock_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/clock_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/clock_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/clock_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/clock_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/close.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/close.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/close.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/close.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/close_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/close_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/close_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/close_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/close_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/close_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/close_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/close_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/comment.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/comment.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/comment.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/comment.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/comment_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/comment_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/comment_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/comment_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/comment_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/comment_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/comment_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/comment_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/document.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/document.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/document.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/document.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/document_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/document_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/document_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/document_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/double_arrow_down.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/double_arrow_down.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/double_arrow_down.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/double_arrow_down.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/double_arrow_down_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/double_arrow_down_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/double_arrow_down_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/double_arrow_down_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/double_arrow_down_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/double_arrow_down_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/double_arrow_down_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/double_arrow_down_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/double_arrow_left.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/double_arrow_left.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/double_arrow_left.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/double_arrow_left.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/double_arrow_left_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/double_arrow_left_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/double_arrow_left_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/double_arrow_left_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/double_arrow_left_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/double_arrow_left_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/double_arrow_left_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/double_arrow_left_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/double_arrow_right.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/double_arrow_right.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/double_arrow_right.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/double_arrow_right.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/double_arrow_right_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/double_arrow_right_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/double_arrow_right_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/double_arrow_right_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/double_arrow_right_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/double_arrow_right_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/double_arrow_right_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/double_arrow_right_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/double_arrow_up.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/double_arrow_up.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/double_arrow_up.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/double_arrow_up.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/double_arrow_up_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/double_arrow_up_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/double_arrow_up_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/double_arrow_up_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/double_arrow_up_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/double_arrow_up_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/double_arrow_up_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/double_arrow_up_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/favourite.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/favourite.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/favourite.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/favourite.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/favourite_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/favourite_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/favourite_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/favourite_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/favourite_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/favourite_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/favourite_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/favourite_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/find.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/find.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/find.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/find.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/find_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/find_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/find_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/find_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/find_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/find_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/find_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/find_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/help.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/help.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/help.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/help.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/help_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/help_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/help_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/help_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/help_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/help_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/help_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/help_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/home.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/home.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/home.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/home.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/home_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/home_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/home_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/home_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/home_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/home_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/home_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/home_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/mail.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/mail.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/mail.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/mail.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/mail_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/mail_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/mail_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/mail_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/mail_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/mail_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/mail_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/mail_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/maximize.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/maximize.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/maximize.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/maximize.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/maximize_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/maximize_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/maximize_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/maximize_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/maximize_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/maximize_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/maximize_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/maximize_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/minimize.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/minimize.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/minimize.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/minimize.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/minimize_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/minimize_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/minimize_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/minimize_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/minimize_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/minimize_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/minimize_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/minimize_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/minus.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/minus.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/minus.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/minus.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/minus_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/minus_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/minus_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/minus_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/minus_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/minus_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/minus_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/minus_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/person.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/person.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/person.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/person.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/person_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/person_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/person_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/person_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/person_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/person_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/person_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/person_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/pin_down.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/pin_down.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/pin_down.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/pin_down.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/pin_down_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/pin_down_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/pin_down_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/pin_down_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/pin_down_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/pin_down_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/pin_down_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/pin_down_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/pin_left.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/pin_left.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/pin_left.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/pin_left.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/pin_left_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/pin_left_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/pin_left_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/pin_left_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/pin_left_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/pin_left_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/pin_left_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/pin_left_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/plus.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/plus.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/plus.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/plus.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/plus_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/plus_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/plus_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/plus_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/plus_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/plus_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/plus_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/plus_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/print.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/print.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/print.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/print.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/print_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/print_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/print_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/print_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/print_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/print_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/print_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/print_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/refresh.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/refresh.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/refresh.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/refresh.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/refresh_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/refresh_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/refresh_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/refresh_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/refresh_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/refresh_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/refresh_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/refresh_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/refresh_thin.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/refresh_thin.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/refresh_thin.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/refresh_thin.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/refresh_thin_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/refresh_thin_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/refresh_thin_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/refresh_thin_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/refresh_thin_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/refresh_thin_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/refresh_thin_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/refresh_thin_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/save.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/save.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/save.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/save.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/save_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/save_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/save_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/save_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/save_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/save_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/save_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/save_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/settings.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/settings.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/settings.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/settings.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/settings_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/settings_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/settings_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/settings_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/settings_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/settings_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/settings_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/settings_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/transfer.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/transfer.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/transfer.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/transfer.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/transfer_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/transfer_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/transfer_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/transfer_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/transfer_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/transfer_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/transfer_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/transfer_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/trash.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/trash.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/trash.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/trash.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/trash_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/trash_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/trash_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/trash_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/trash_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/trash_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/trash_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/trash_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/zoom.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/zoom.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/zoom.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/zoom.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/zoom_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/zoom_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/zoom_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/zoom_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/zoom_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/zoom_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/zoom_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/headerIcons/zoom_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ImgButton/button.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ImgButton/button.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ImgButton/button.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ImgButton/button.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ImgButton/button_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ImgButton/button_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ImgButton/button_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ImgButton/button_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ImgButton/button_Down.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ImgButton/button_Down.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ImgButton/button_Down.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ImgButton/button_Down.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ImgButton/button_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ImgButton/button_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ImgButton/button_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ImgButton/button_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/expander_closed.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/expander_closed.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/expander_closed.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/expander_closed.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/expander_opened.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/expander_opened.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/expander_opened.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/expander_opened.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/formula_menuItem.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/formula_menuItem.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/formula_menuItem.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/formula_menuItem.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/group_closed.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/group_closed.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/group_closed.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/group_closed.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/group_opened.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/group_opened.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/group_opened.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/group_opened.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/header.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/header.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/header.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/header.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/header_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/header_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/header_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/header_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/header_Down.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/header_Down.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/header_Down.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/header_Down.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/header_menu.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/header_menu.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/header_menu.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/header_menu.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/header_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/header_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/header_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/header_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/header_Selected.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/header_Selected.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/header_Selected.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/header_Selected.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/header_Selected_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/header_Selected_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/header_Selected_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/header_Selected_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/header_Selected_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/header_Selected_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/header_Selected_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/header_Selected_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/headerSprite.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/headerSprite.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/headerSprite.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/headerSprite.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/row.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/row.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/row.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/row.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/row_collapsed.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/row_collapsed.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/row_collapsed.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/row_collapsed.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/row_expanded.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/row_expanded.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/row_expanded.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/row_expanded.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/row_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/row_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/row_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/row_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/row_Over_Selected.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/row_Over_Selected.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/row_Over_Selected.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/row_Over_Selected.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/row_Selected.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/row_Selected.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/row_Selected.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/row_Selected.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/sort_ascending.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/sort_ascending.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/sort_ascending.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/sort_ascending.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/sort_descending.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/sort_descending.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/sort_descending.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ListGrid/sort_descending.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/loading.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/loading.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/loading.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/loading.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/loadingSmall.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/loadingSmall.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/loadingSmall.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/loadingSmall.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/check.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/check.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/check.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/check.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/check_disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/check_disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/check_disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/check_disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/menu_background.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/menu_background.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/menu_background.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/menu_background.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/menu_button.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/menu_button.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/menu_button.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/menu_button.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/menu_button_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/menu_button_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/menu_button_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/menu_button_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/menu_button_up.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/menu_button_up.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/menu_button_up.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/menu_button_up.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/menu_button_up_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/menu_button_up_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/menu_button_up_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/menu_button_up_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/menu_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/menu_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/menu_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/menu_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/menu_right.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/menu_right.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/menu_right.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/menu_right.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/menu_rollover.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/menu_rollover.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/menu_rollover.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/menu_rollover.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/menu_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/menu_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/menu_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/menu_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/menu_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/menu_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/menu_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/menu_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/submenu.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/submenu.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/submenu.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/submenu.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/submenu_disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/submenu_disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/submenu_disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/submenu_disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/submenu_disabled_left.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/submenu_disabled_left.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/submenu_disabled_left.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/submenu_disabled_left.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/submenu_down.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/submenu_down.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/submenu_down.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/submenu_down.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/submenu_left.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/submenu_left.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/submenu_left.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Menu/submenu_left.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/MultiUploadItem/icon_add_files.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/MultiUploadItem/icon_add_files.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/MultiUploadItem/icon_add_files.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/MultiUploadItem/icon_add_files.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/MultiUploadItem/icon_add_files_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/MultiUploadItem/icon_add_files_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/MultiUploadItem/icon_add_files_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/MultiUploadItem/icon_add_files_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/MultiUploadItem/icon_remove_files.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/MultiUploadItem/icon_remove_files.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/MultiUploadItem/icon_remove_files.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/MultiUploadItem/icon_remove_files.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/MultiUploadItem/icon_remove_files_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/MultiUploadItem/icon_remove_files_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/MultiUploadItem/icon_remove_files_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/MultiUploadItem/icon_remove_files_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/opacity.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/opacity.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/opacity.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/opacity.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Panel/panel_header.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Panel/panel_header.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Panel/panel_header.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Panel/panel_header.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/clear_picker.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/clear_picker.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/clear_picker.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/clear_picker.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/clear_picker_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/clear_picker_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/clear_picker_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/clear_picker_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/clear_picker_Down.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/clear_picker_Down.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/clear_picker_Down.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/clear_picker_Down.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/clear_picker_Normal.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/clear_picker_Normal.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/clear_picker_Normal.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/clear_picker_Normal.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/clear_picker_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/clear_picker_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/clear_picker_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/clear_picker_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/comboBoxPicker.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/comboBoxPicker.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/comboBoxPicker.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/comboBoxPicker.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/comboBoxPicker_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/comboBoxPicker_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/comboBoxPicker_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/comboBoxPicker_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/comboBoxPicker_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/comboBoxPicker_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/comboBoxPicker_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/comboBoxPicker_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/date_picker.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/date_picker.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/date_picker.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/date_picker.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/date_picker_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/date_picker_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/date_picker_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/date_picker_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/date_picker_Down.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/date_picker_Down.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/date_picker_Down.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/date_picker_Down.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/date_picker_Normal.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/date_picker_Normal.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/date_picker_Normal.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/date_picker_Normal.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/date_picker_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/date_picker_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/date_picker_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/date_picker_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/refresh_picker.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/refresh_picker.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/refresh_picker.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/refresh_picker.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/refresh_picker_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/refresh_picker_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/refresh_picker_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/refresh_picker_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/refresh_picker_Down.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/refresh_picker_Down.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/refresh_picker_Down.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/refresh_picker_Down.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/refresh_picker_Normal.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/refresh_picker_Normal.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/refresh_picker_Normal.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/refresh_picker_Normal.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/refresh_picker_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/refresh_picker_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/refresh_picker_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/refresh_picker_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/search_picker.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/search_picker.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/search_picker.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/search_picker.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/search_picker_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/search_picker_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/search_picker_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/search_picker_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/search_picker_Down.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/search_picker_Down.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/search_picker_Down.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/search_picker_Down.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/search_picker_Normal.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/search_picker_Normal.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/search_picker_Normal.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/search_picker_Normal.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/search_picker_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/search_picker_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/search_picker_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/pickers/search_picker_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_Disabled_h_empty_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_Disabled_h_empty_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_Disabled_h_empty_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_Disabled_h_empty_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_Disabled_h_empty_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_Disabled_h_empty_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_Disabled_h_empty_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_Disabled_h_empty_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_Disabled_h_empty_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_Disabled_h_empty_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_Disabled_h_empty_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_Disabled_h_empty_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_Disabled_h_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_Disabled_h_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_Disabled_h_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_Disabled_h_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_Disabled_h_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_Disabled_h_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_Disabled_h_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_Disabled_h_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_Disabled_h_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_Disabled_h_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_Disabled_h_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_Disabled_h_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_Disabled_v_empty_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_Disabled_v_empty_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_Disabled_v_empty_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_Disabled_v_empty_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_Disabled_v_empty_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_Disabled_v_empty_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_Disabled_v_empty_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_Disabled_v_empty_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_Disabled_v_empty_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_Disabled_v_empty_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_Disabled_v_empty_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_Disabled_v_empty_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_Disabled_v_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_Disabled_v_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_Disabled_v_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_Disabled_v_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_Disabled_v_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_Disabled_v_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_Disabled_v_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_Disabled_v_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_Disabled_v_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_Disabled_v_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_Disabled_v_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_Disabled_v_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_h_empty_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_h_empty_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_h_empty_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_h_empty_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_h_empty_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_h_empty_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_h_empty_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_h_empty_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_h_empty_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_h_empty_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_h_empty_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_h_empty_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_h_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_h_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_h_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_h_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_h_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_h_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_h_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_h_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_h_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_h_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_h_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_h_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_v_empty_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_v_empty_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_v_empty_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_v_empty_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_v_empty_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_v_empty_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_v_empty_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_v_empty_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_v_empty_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_v_empty_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_v_empty_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_v_empty_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_v_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_v_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_v_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_v_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_v_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_v_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_v_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_v_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_v_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_v_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_v_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Progressbar/progressbar_v_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/readme.txt b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/readme.txt
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RecordEditor/add.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RecordEditor/add.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RecordEditor/add.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RecordEditor/add.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RecordEditor/add_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RecordEditor/add_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RecordEditor/add_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RecordEditor/add_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RecordEditor/add_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RecordEditor/add_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RecordEditor/add_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RecordEditor/add_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RecordEditor/check.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RecordEditor/check.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RecordEditor/check.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RecordEditor/check.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RecordEditor/filter.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RecordEditor/filter.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RecordEditor/filter.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RecordEditor/filter.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RecordEditor/filter_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RecordEditor/filter_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RecordEditor/filter_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RecordEditor/filter_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RecordEditor/filter_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RecordEditor/filter_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RecordEditor/filter_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RecordEditor/filter_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RecordEditor/query.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RecordEditor/query.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RecordEditor/query.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RecordEditor/query.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/background_color.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/background_color.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/background_color.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/background_color.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/background_color_Disabled.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/background_color_Disabled.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/background_color_Disabled.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/background_color_Disabled.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/copy.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/copy.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/copy.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/copy.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/copy_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/copy_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/copy_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/copy_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/cut.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/cut.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/cut.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/cut.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/cut_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/cut_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/cut_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/cut_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/indent.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/indent.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/indent.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/indent.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/indent_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/indent_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/indent_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/indent_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/link_new.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/link_new.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/link_new.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/link_new.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/outdent.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/outdent.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/outdent.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/outdent.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/outdent_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/outdent_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/outdent_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/outdent_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/paste.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/paste.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/paste.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/paste.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/paste_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/paste_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/paste_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/paste_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/separator.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/separator.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/separator.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/separator.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/separator_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/separator_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/separator_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/separator_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/text_align_center.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/text_align_center.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/text_align_center.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/text_align_center.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/text_align_center_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/text_align_center_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/text_align_center_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/text_align_center_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/text_align_justified.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/text_align_justified.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/text_align_justified.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/text_align_justified.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/text_align_justified_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/text_align_justified_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/text_align_justified_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/text_align_justified_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/text_align_left.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/text_align_left.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/text_align_left.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/text_align_left.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/text_align_left_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/text_align_left_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/text_align_left_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/text_align_left_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/text_align_right.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/text_align_right.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/text_align_right.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/text_align_right.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/text_align_right_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/text_align_right_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/text_align_right_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/text_align_right_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/text_bold.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/text_bold.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/text_bold.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/text_bold.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/text_color.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/text_color.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/text_color.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/text_color.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/text_color_Disabled.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/text_color_Disabled.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/text_color_Disabled.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/text_color_Disabled.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/text_italic.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/text_italic.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/text_italic.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/text_italic.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/text_underline.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/text_underline.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/text_underline.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/RichTextEditor/text_underline.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SchemaViewer/complexType.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SchemaViewer/complexType.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SchemaViewer/complexType.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SchemaViewer/complexType.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SchemaViewer/operation.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SchemaViewer/operation.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SchemaViewer/operation.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SchemaViewer/operation.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SchemaViewer/simpleType.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SchemaViewer/simpleType.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SchemaViewer/simpleType.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SchemaViewer/simpleType.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_corner.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_corner.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_corner.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_corner.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_Disabled_corner.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_Disabled_corner.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_Disabled_corner.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_Disabled_corner.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_Disabled_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_Disabled_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_Disabled_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_Disabled_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_Disabled_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_Disabled_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_Disabled_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_Disabled_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_Disabled_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_Disabled_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_Disabled_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_Disabled_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_Disabled_track.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_Disabled_track.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_Disabled_track.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_Disabled_track.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_Down_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_Down_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_Down_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_Down_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_Down_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_Down_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_Down_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_Down_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_Down_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_Down_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_Down_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_Down_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_Down_track.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_Down_track.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_Down_track.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_Down_track.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_Over_corner.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_Over_corner.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_Over_corner.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_Over_corner.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_Over_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_Over_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_Over_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_Over_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_Over_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_Over_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_Over_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_Over_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_Over_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_Over_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_Over_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_Over_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_Over_track.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_Over_track.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_Over_track.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_Over_track.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_track.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_track.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_track.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hscroll_track.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_Disabled_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_Disabled_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_Disabled_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_Disabled_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_Disabled_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_Disabled_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_Disabled_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_Disabled_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_Disabled_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_Disabled_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_Disabled_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_Disabled_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_Down_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_Down_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_Down_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_Down_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_Down_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_Down_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_Down_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_Down_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_Down_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_Down_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_Down_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_Down_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_grip.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_grip.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_grip.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_grip.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_grip_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_grip_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_grip_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_grip_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_grip_Down.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_grip_Down.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_grip_Down.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_grip_Down.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_Over_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_Over_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_Over_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_Over_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_Over_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_Over_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_Over_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_Over_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_Over_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_Over_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_Over_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_Over_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/hthumb_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_corner.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_corner.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_corner.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_corner.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_Disabled_corner.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_Disabled_corner.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_Disabled_corner.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_Disabled_corner.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_Disabled_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_Disabled_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_Disabled_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_Disabled_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_Disabled_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_Disabled_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_Disabled_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_Disabled_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_Disabled_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_Disabled_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_Disabled_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_Disabled_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_Disabled_track.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_Disabled_track.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_Disabled_track.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_Disabled_track.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_Down_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_Down_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_Down_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_Down_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_Down_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_Down_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_Down_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_Down_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_Down_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_Down_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_Down_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_Down_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_Down_track.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_Down_track.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_Down_track.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_Down_track.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_Over_corner.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_Over_corner.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_Over_corner.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_Over_corner.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_Over_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_Over_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_Over_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_Over_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_Over_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_Over_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_Over_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_Over_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_Over_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_Over_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_Over_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_Over_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_Over_track.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_Over_track.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_Over_track.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_Over_track.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_track.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_track.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_track.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vscroll_track.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_Disabled_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_Disabled_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_Disabled_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_Disabled_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_Disabled_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_Disabled_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_Disabled_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_Disabled_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_Disabled_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_Disabled_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_Disabled_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_Disabled_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_Down_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_Down_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_Down_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_Down_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_Down_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_Down_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_Down_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_Down_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_Down_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_Down_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_Down_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_Down_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_grip.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_grip.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_grip.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_grip.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_grip_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_grip_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_grip_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_grip_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_grip_Down.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_grip_Down.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_grip_Down.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_grip_Down.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_Over_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_Over_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_Over_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_Over_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_Over_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_Over_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_Over_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_Over_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_Over_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_Over_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_Over_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_Over_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Scrollbar/vthumb_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_closed_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_closed_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_closed_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_closed_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_closed_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_closed_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_closed_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_closed_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_closed_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_closed_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_closed_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_closed_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_Disabled_closed_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_Disabled_closed_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_Disabled_closed_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_Disabled_closed_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_Disabled_closed_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_Disabled_closed_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_Disabled_closed_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_Disabled_closed_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_Disabled_closed_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_Disabled_closed_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_Disabled_closed_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_Disabled_closed_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_Disabled_opened_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_Disabled_opened_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_Disabled_opened_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_Disabled_opened_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_Disabled_opened_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_Disabled_opened_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_Disabled_opened_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_Disabled_opened_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_Disabled_opened_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_Disabled_opened_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_Disabled_opened_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_Disabled_opened_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_opened_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_opened_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_opened_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_opened_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_opened_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_opened_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_opened_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_opened_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_opened_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_opened_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_opened_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_opened_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_Over_closed_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_Over_closed_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_Over_closed_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_Over_closed_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_Over_closed_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_Over_closed_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_Over_closed_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_Over_closed_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_Over_closed_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_Over_closed_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_Over_closed_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_Over_closed_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_Over_opened_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_Over_opened_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_Over_opened_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_Over_opened_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_Over_opened_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_Over_opened_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_Over_opened_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_Over_opened_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_Over_opened_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_Over_opened_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_Over_opened_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/header_Over_opened_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/opener_closed.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/opener_closed.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/opener_closed.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/opener_closed.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/opener_opened.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/opener_opened.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/opener_opened.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/opener_opened.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/opener_opened_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/opener_opened_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/opener_opened_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/opener_opened_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/opener_opened_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/opener_opened_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/opener_opened_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/opener_opened_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/opener_opened_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/opener_opened_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/opener_opened_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/SectionHeader/opener_opened_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/background.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/background.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/background.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/background.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/progressCursorTracker.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/progressCursorTracker.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/progressCursorTracker.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/progressCursorTracker.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds_center.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds_center.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds_center.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds_center.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds1_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds1_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds1_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds1_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds1_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds1_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds1_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds1_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds1_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds1_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds1_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds1_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds1_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds1_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds1_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds1_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds1_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds1_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds1_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds1_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds1_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds1_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds1_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds1_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds1_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds1_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds1_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds1_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds1_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds1_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds1_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds1_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds10_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds10_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds10_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds10_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds10_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds10_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds10_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds10_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds10_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds10_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds10_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds10_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds10_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds10_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds10_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds10_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds10_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds10_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds10_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds10_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds10_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds10_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds10_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds10_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds10_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds10_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds10_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds10_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds10_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds10_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds10_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds10_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds2_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds2_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds2_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds2_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds2_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds2_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds2_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds2_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds2_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds2_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds2_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds2_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds2_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds2_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds2_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds2_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds2_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds2_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds2_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds2_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds2_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds2_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds2_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds2_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds2_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds2_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds2_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds2_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds2_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds2_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds2_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds2_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds3_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds3_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds3_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds3_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds3_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds3_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds3_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds3_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds3_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds3_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds3_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds3_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds3_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds3_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds3_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds3_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds3_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds3_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds3_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds3_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds3_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds3_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds3_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds3_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds3_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds3_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds3_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds3_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds3_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds3_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds3_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds3_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds4_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds4_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds4_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds4_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds4_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds4_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds4_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds4_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds4_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds4_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds4_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds4_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds4_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds4_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds4_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds4_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds4_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds4_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds4_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds4_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds4_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds4_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds4_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds4_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds4_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds4_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds4_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds4_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds4_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds4_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds4_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds4_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds5_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds5_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds5_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds5_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds5_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds5_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds5_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds5_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds5_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds5_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds5_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds5_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds5_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds5_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds5_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds5_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds5_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds5_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds5_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds5_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds5_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds5_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds5_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds5_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds5_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds5_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds5_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds5_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds5_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds5_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds5_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds5_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds6_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds6_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds6_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds6_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds6_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds6_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds6_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds6_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds6_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds6_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds6_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds6_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds6_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds6_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds6_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds6_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds6_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds6_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds6_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds6_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds6_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds6_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds6_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds6_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds6_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds6_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds6_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds6_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds6_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds6_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds6_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds6_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds7_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds7_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds7_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds7_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds7_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds7_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds7_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds7_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds7_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds7_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds7_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds7_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds7_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds7_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds7_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds7_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds7_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds7_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds7_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds7_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds7_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds7_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds7_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds7_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds7_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds7_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds7_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds7_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds7_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds7_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds7_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds7_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds8_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds8_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds8_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds8_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds8_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds8_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds8_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds8_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds8_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds8_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds8_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds8_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds8_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds8_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds8_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds8_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds8_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds8_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds8_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds8_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds8_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds8_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds8_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds8_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds8_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds8_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds8_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds8_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds8_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds8_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds8_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds8_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds9_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds9_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds9_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds9_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds9_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds9_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds9_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds9_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds9_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds9_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds9_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds9_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds9_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds9_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds9_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds9_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds9_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds9_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds9_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds9_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds9_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds9_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds9_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds9_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds9_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds9_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds9_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds9_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds9_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds9_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds9_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/shared/shadows/ds9_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/hthumb.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/hthumb.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/hthumb.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/hthumb.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/hthumb_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/hthumb_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/hthumb_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/hthumb_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/hthumb_down.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/hthumb_down.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/hthumb_down.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/hthumb_down.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/htrack_Disabled_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/htrack_Disabled_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/htrack_Disabled_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/htrack_Disabled_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/htrack_Disabled_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/htrack_Disabled_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/htrack_Disabled_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/htrack_Disabled_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/htrack_Disabled_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/htrack_Disabled_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/htrack_Disabled_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/htrack_Disabled_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/htrack_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/htrack_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/htrack_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/htrack_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/htrack_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/htrack_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/htrack_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/htrack_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/htrack_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/htrack_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/htrack_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/htrack_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/vthumb.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/vthumb.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/vthumb.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/vthumb.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/vthumb_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/vthumb_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/vthumb_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/vthumb_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/vthumb_down.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/vthumb_down.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/vthumb_down.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/vthumb_down.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/vtrack_Disabled_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/vtrack_Disabled_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/vtrack_Disabled_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/vtrack_Disabled_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/vtrack_Disabled_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/vtrack_Disabled_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/vtrack_Disabled_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/vtrack_Disabled_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/vtrack_Disabled_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/vtrack_Disabled_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/vtrack_Disabled_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/vtrack_Disabled_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/vtrack_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/vtrack_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/vtrack_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/vtrack_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/vtrack_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/vtrack_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/vtrack_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/vtrack_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/vtrack_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/vtrack_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/vtrack_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Slider/vtrack_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Splitbar/hsplit_bg.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Splitbar/hsplit_bg.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Splitbar/hsplit_bg.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Splitbar/hsplit_bg.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Splitbar/hsplit_Disabled_bg.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Splitbar/hsplit_Disabled_bg.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Splitbar/hsplit_Disabled_bg.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Splitbar/hsplit_Disabled_bg.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Splitbar/hsplit_snap.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Splitbar/hsplit_snap.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Splitbar/hsplit_snap.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Splitbar/hsplit_snap.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Splitbar/hsplit_snap_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Splitbar/hsplit_snap_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Splitbar/hsplit_snap_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Splitbar/hsplit_snap_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Splitbar/vsplit_bg.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Splitbar/vsplit_bg.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Splitbar/vsplit_bg.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Splitbar/vsplit_bg.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Splitbar/vsplit_Disabled_bg.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Splitbar/vsplit_Disabled_bg.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Splitbar/vsplit_Disabled_bg.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Splitbar/vsplit_Disabled_bg.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Splitbar/vsplit_snap.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Splitbar/vsplit_snap.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Splitbar/vsplit_snap.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Splitbar/vsplit_snap.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Splitbar/vsplit_snap_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Splitbar/vsplit_snap_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Splitbar/vsplit_snap_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Splitbar/vsplit_snap_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/baseline_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/baseline_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/baseline_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/baseline_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/baseline_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/baseline_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/baseline_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/baseline_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/baseline_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/baseline_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/baseline_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/baseline_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Disabled_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Disabled_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Disabled_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Disabled_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Disabled_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Disabled_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Disabled_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Disabled_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Disabled_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Disabled_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Disabled_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Disabled_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Over_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Over_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Over_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Over_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Over_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Over_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Over_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Over_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Over_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Over_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Over_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Over_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Selected_Disabled_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Selected_Disabled_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Selected_Disabled_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Selected_Disabled_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Selected_Disabled_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Selected_Disabled_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Selected_Disabled_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Selected_Disabled_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Selected_Disabled_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Selected_Disabled_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Selected_Disabled_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Selected_Disabled_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Selected_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Selected_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Selected_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Selected_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Selected_Over_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Selected_Over_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Selected_Over_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Selected_Over_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Selected_Over_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Selected_Over_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Selected_Over_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Selected_Over_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Selected_Over_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Selected_Over_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Selected_Over_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Selected_Over_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Selected_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Selected_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Selected_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Selected_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Selected_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Selected_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Selected_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_Selected_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/bottom/tab_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/close.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/close.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/close.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/close.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/close_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/close_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/close_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/close_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Disabled_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Disabled_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Disabled_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Disabled_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Disabled_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Disabled_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Disabled_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Disabled_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Disabled_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Disabled_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Disabled_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Disabled_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Over_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Over_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Over_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Over_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Over_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Over_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Over_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Over_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Over_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Over_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Over_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Over_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Selected_Disabled_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Selected_Disabled_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Selected_Disabled_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Selected_Disabled_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Selected_Disabled_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Selected_Disabled_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Selected_Disabled_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Selected_Disabled_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Selected_Disabled_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Selected_Disabled_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Selected_Disabled_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Selected_Disabled_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Selected_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Selected_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Selected_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Selected_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Selected_Over_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Selected_Over_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Selected_Over_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Selected_Over_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Selected_Over_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Selected_Over_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Selected_Over_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Selected_Over_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Selected_Over_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Selected_Over_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Selected_Over_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Selected_Over_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Selected_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Selected_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Selected_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Selected_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Selected_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Selected_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Selected_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_Selected_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/left/tab_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/baseline_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/baseline_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/baseline_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/baseline_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/baseline_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/baseline_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/baseline_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/baseline_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/baseline_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/baseline_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/baseline_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/baseline_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/close.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/close.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/close.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/close.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/close_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/close_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/close_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/close_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Disabled_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Disabled_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Disabled_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Disabled_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Disabled_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Disabled_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Disabled_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Disabled_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Disabled_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Disabled_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Disabled_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Disabled_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Over_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Over_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Over_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Over_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Over_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Over_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Over_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Over_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Over_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Over_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Over_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Over_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Selected_Disabled_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Selected_Disabled_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Selected_Disabled_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Selected_Disabled_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Selected_Disabled_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Selected_Disabled_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Selected_Disabled_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Selected_Disabled_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Selected_Disabled_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Selected_Disabled_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Selected_Disabled_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Selected_Disabled_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Selected_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Selected_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Selected_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Selected_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Selected_Over_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Selected_Over_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Selected_Over_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Selected_Over_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Selected_Over_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Selected_Over_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Selected_Over_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Selected_Over_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Selected_Over_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Selected_Over_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Selected_Over_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Selected_Over_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Selected_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Selected_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Selected_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Selected_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Selected_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Selected_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Selected_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_Selected_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/right/tab_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/baseline_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/baseline_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/baseline_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/baseline_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/baseline_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/baseline_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/baseline_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/baseline_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/baseline_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/baseline_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/baseline_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/baseline_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/close.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/close.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/close.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/close.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/close_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/close_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/close_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/close_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Disabled_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Disabled_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Disabled_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Disabled_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Disabled_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Disabled_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Disabled_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Disabled_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Disabled_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Disabled_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Disabled_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Disabled_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Over_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Over_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Over_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Over_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Over_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Over_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Over_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Over_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Over_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Over_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Over_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Over_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Selected_Disabled_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Selected_Disabled_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Selected_Disabled_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Selected_Disabled_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Selected_Disabled_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Selected_Disabled_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Selected_Disabled_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Selected_Disabled_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Selected_Disabled_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Selected_Disabled_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Selected_Disabled_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Selected_Disabled_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Selected_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Selected_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Selected_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Selected_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Selected_Over_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Selected_Over_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Selected_Over_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Selected_Over_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Selected_Over_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Selected_Over_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Selected_Over_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Selected_Over_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Selected_Over_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Selected_Over_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Selected_Over_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Selected_Over_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Selected_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Selected_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Selected_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Selected_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Selected_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Selected_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Selected_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_Selected_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Tab/top/tab_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/close.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/close.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/close.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/close.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/close_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/close_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/close_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/close_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/picker_bottom.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/picker_bottom.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/picker_bottom.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/picker_bottom.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/picker_Disabled_bottom.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/picker_Disabled_bottom.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/picker_Disabled_bottom.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/picker_Disabled_bottom.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/picker_Disabled_left.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/picker_Disabled_left.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/picker_Disabled_left.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/picker_Disabled_left.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/picker_Disabled_right.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/picker_Disabled_right.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/picker_Disabled_right.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/picker_Disabled_right.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/picker_Disabled_top.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/picker_Disabled_top.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/picker_Disabled_top.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/picker_Disabled_top.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/picker_Down_bottom.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/picker_Down_bottom.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/picker_Down_bottom.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/picker_Down_bottom.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/picker_Down_left.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/picker_Down_left.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/picker_Down_left.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/picker_Down_left.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/picker_Down_right.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/picker_Down_right.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/picker_Down_right.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/picker_Down_right.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/picker_Down_top.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/picker_Down_top.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/picker_Down_top.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/picker_Down_top.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/picker_left.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/picker_left.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/picker_left.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/picker_left.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/picker_right.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/picker_right.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/picker_right.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/picker_right.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/picker_top.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/picker_top.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/picker_top.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/picker_top.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_bottom_back.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_bottom_back.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_bottom_back.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_bottom_back.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_bottom_forward.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_bottom_forward.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_bottom_forward.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_bottom_forward.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Disabled_bottom_back.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Disabled_bottom_back.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Disabled_bottom_back.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Disabled_bottom_back.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Disabled_bottom_forward.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Disabled_bottom_forward.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Disabled_bottom_forward.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Disabled_bottom_forward.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Disabled_left_back.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Disabled_left_back.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Disabled_left_back.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Disabled_left_back.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Disabled_left_forward.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Disabled_left_forward.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Disabled_left_forward.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Disabled_left_forward.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Disabled_right_back.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Disabled_right_back.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Disabled_right_back.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Disabled_right_back.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Disabled_right_forward.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Disabled_right_forward.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Disabled_right_forward.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Disabled_right_forward.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Disabled_top_back.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Disabled_top_back.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Disabled_top_back.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Disabled_top_back.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Disabled_top_forward.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Disabled_top_forward.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Disabled_top_forward.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Disabled_top_forward.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Down_bottom_back.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Down_bottom_back.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Down_bottom_back.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Down_bottom_back.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Down_bottom_forward.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Down_bottom_forward.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Down_bottom_forward.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Down_bottom_forward.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Down_left_back.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Down_left_back.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Down_left_back.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Down_left_back.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Down_left_forward.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Down_left_forward.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Down_left_forward.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Down_left_forward.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Down_right_back.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Down_right_back.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Down_right_back.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Down_right_back.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Down_right_forward.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Down_right_forward.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Down_right_forward.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Down_right_forward.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Down_top_back.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Down_top_back.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Down_top_back.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Down_top_back.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Down_top_forward.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Down_top_forward.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Down_top_forward.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_Down_top_forward.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_left_back.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_left_back.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_left_back.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_left_back.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_left_forward.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_left_forward.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_left_forward.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_left_forward.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_right_back.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_right_back.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_right_back.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_right_back.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_right_forward.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_right_forward.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_right_forward.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_right_forward.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_top_back.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_top_back.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_top_back.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_top_back.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_top_forward.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_top_forward.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_top_forward.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TabSet/scroll_top_forward.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TileGrid/tileOver.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TileGrid/tileOver.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TileGrid/tileOver.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TileGrid/tileOver.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/background.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/background.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/background.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/background.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/background_vertical.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/background_vertical.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/background_vertical.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/background_vertical.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Disabled_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Disabled_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Disabled_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Disabled_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Disabled_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Disabled_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Disabled_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Disabled_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Disabled_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Disabled_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Disabled_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Disabled_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Down_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Down_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Down_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Down_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Down_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Down_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Down_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Down_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Down_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Down_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Down_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Down_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Over_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Over_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Over_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Over_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Over_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Over_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Over_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Over_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Over_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Over_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Over_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Over_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Selected_Disabled_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Selected_Disabled_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Selected_Disabled_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Selected_Disabled_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Selected_Disabled_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Selected_Disabled_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Selected_Disabled_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Selected_Disabled_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Selected_Disabled_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Selected_Disabled_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Selected_Disabled_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Selected_Disabled_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Selected_Down_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Selected_Down_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Selected_Down_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Selected_Down_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Selected_Down_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Selected_Down_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Selected_Down_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Selected_Down_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Selected_Down_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Selected_Down_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Selected_Down_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Selected_Down_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Selected_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Selected_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Selected_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Selected_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Selected_Over_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Selected_Over_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Selected_Over_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Selected_Over_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Selected_Over_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Selected_Over_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Selected_Over_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Selected_Over_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Selected_Over_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Selected_Over_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Selected_Over_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Selected_Over_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Selected_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Selected_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Selected_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Selected_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Selected_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Selected_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Selected_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_Selected_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/button/button_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/hresizer.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/hresizer.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/hresizer.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/hresizer.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/hresizer_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/hresizer_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/hresizer_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/hresizer_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/hseparator.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/hseparator.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/hseparator.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/hseparator.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/hseparator_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/hseparator_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/hseparator_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/hseparator_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/resizer.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/resizer.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/resizer.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/resizer.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/resizer_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/resizer_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/resizer_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/resizer_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/separator.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/separator.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/separator.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/separator.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/separator_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/separator_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/separator_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/ToolStrip/separator_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/delete.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/delete.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/delete.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/delete.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/delete_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/delete_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/delete_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/delete_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/delete_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/delete_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/delete_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/delete_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/down.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/down.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/down.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/down.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/down_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/down_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/down_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/down_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/down_last.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/down_last.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/down_last.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/down_last.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/down_last_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/down_last_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/down_last_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/down_last_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/down_last_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/down_last_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/down_last_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/down_last_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/down_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/down_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/down_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/down_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/left.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/left.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/left.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/left.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/left_all.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/left_all.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/left_all.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/left_all.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/left_all_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/left_all_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/left_all_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/left_all_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/left_all_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/left_all_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/left_all_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/left_all_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/left_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/left_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/left_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/left_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/left_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/left_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/left_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/left_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/right.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/right.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/right.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/right.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/right_all.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/right_all.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/right_all.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/right_all.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/right_all_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/right_all_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/right_all_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/right_all_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/right_all_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/right_all_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/right_all_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/right_all_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/right_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/right_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/right_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/right_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/right_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/right_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/right_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/right_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/up.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/up.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/up.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/up.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/up_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/up_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/up_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/up_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/up_first.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/up_first.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/up_first.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/up_first.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/up_first_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/up_first_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/up_first_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/up_first_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/up_first_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/up_first_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/up_first_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/up_first_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/up_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/up_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/up_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TransferIcons/up_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/connector_ancestor.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/connector_ancestor.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/connector_ancestor.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/connector_ancestor.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/connector_closed_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/connector_closed_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/connector_closed_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/connector_closed_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/connector_closed_middle.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/connector_closed_middle.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/connector_closed_middle.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/connector_closed_middle.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/connector_closed_single.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/connector_closed_single.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/connector_closed_single.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/connector_closed_single.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/connector_closed_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/connector_closed_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/connector_closed_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/connector_closed_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/connector_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/connector_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/connector_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/connector_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/connector_middle.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/connector_middle.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/connector_middle.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/connector_middle.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/connector_opened_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/connector_opened_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/connector_opened_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/connector_opened_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/connector_opened_middle.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/connector_opened_middle.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/connector_opened_middle.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/connector_opened_middle.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/connector_opened_single.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/connector_opened_single.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/connector_opened_single.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/connector_opened_single.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/connector_opened_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/connector_opened_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/connector_opened_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/connector_opened_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/connector_single.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/connector_single.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/connector_single.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/connector_single.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/connector_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/connector_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/connector_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/connector_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/file.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/file.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/file.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/file.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/folder_closed.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/folder_closed.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/folder_closed.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/folder_closed.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/folder_drop.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/folder_drop.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/folder_drop.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/folder_drop.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/folder_file.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/folder_file.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/folder_file.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/folder_file.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/folder_open.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/folder_open.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/folder_open.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/folder_open.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/folder_opened.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/folder_opened.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/folder_opened.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/folder_opened.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/opener_closed.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/opener_closed.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/opener_closed.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/opener_closed.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/opener_opened.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/opener_opened.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/opener_opened.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/TreeGrid/opener_opened.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Window/headerIcon.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Window/headerIcon.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Window/headerIcon.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Window/headerIcon.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Window/resizer.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Window/resizer.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Window/resizer.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Window/resizer.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Window/resizer_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Window/resizer_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Window/resizer_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Window/resizer_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Window/window_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Window/window_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Window/window_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Window/window_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Window/window_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Window/window_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Window/window_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Window/window_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Window/window_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Window/window_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Window/window_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Window/window_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Window/window_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Window/window_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Window/window_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Window/window_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Window/window_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Window/window_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Window/window_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Window/window_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Window/window_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Window/window_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Window/window_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Window/window_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Window/window_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Window/window_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Window/window_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Window/window_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Window/window_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Window/window_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Window/window_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/images/Window/window_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/load_skin.js b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/load_skin.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/load_skin.js.gz b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/load_skin.js.gz
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/load_skin.js.gz and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/load_skin.js.gz differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/skin_styles.css b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/skin_styles.css
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/skin_styles.css.gz b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/skin_styles.css.gz
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/skin_styles.css.gz and b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/skin_styles.css.gz differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/unsupported_browser.html b/sm-shop/src/main/webapp/resources/smart-client/skins/Enterprise/unsupported_browser.html
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/accept.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/accept.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/accept.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/accept.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/add.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/add.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/add.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/add.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/add_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/add_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/add_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/add_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/approve.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/approve.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/approve.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/approve.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/back.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/back.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/back.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/back.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/back_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/back_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/back_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/back_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/close.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/close.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/close.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/close.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/close_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/close_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/close_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/close_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/close_Down.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/close_Down.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/close_Down.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/close_Down.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/close_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/close_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/close_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/close_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/color_swatch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/color_swatch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/color_swatch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/color_swatch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/column_preferences.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/column_preferences.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/column_preferences.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/column_preferences.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/configure.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/configure.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/configure.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/configure.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/download.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/download.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/download.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/download.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/edit.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/edit.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/edit.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/edit.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/edit_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/edit_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/edit_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/edit_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/exclamation.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/exclamation.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/exclamation.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/exclamation.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/filter.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/filter.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/filter.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/filter.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/first.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/first.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/first.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/first.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/forward.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/forward.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/forward.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/forward.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/forward_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/forward_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/forward_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/forward_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/freezeLeft.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/freezeLeft.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/freezeLeft.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/freezeLeft.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/freezeRight.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/freezeRight.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/freezeRight.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/freezeRight.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/groupby.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/groupby.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/groupby.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/groupby.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/help.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/help.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/help.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/help.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/last.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/last.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/last.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/last.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/next.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/next.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/next.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/next.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/ok.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/ok.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/ok.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/ok.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/plus.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/plus.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/plus.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/plus.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/plus_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/plus_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/plus_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/plus_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/prev.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/prev.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/prev.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/prev.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/print.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/print.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/print.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/print.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/redo.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/redo.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/redo.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/redo.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/refresh.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/refresh.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/refresh.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/refresh.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/remove.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/remove.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/remove.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/remove.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/remove_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/remove_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/remove_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/remove_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/save.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/save.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/save.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/save.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/search.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/search.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/search.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/search.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/sort_ascending.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/sort_ascending.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/sort_ascending.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/sort_ascending.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/sort_descending.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/sort_descending.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/sort_descending.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/sort_descending.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/text_linespacing.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/text_linespacing.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/text_linespacing.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/text_linespacing.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/undo.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/undo.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/undo.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/undo.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/unfreeze.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/unfreeze.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/unfreeze.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/unfreeze.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/ungroup.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/ungroup.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/ungroup.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/ungroup.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/view.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/view.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/view.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/actions/view.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/black.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/black.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/black.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/black.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/blank.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/blank.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/blank.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/blank.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Disabled_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Disabled_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Disabled_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Disabled_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Disabled_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Disabled_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Disabled_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Disabled_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Disabled_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Disabled_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Disabled_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Disabled_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Down_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Down_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Down_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Down_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Down_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Down_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Down_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Down_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Down_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Down_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Down_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Down_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Over_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Over_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Over_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Over_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Over_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Over_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Over_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Over_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Over_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Over_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Over_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Over_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Selected_Disabled_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Selected_Disabled_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Selected_Disabled_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Selected_Disabled_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Selected_Disabled_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Selected_Disabled_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Selected_Disabled_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Selected_Disabled_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Selected_Disabled_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Selected_Disabled_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Selected_Disabled_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Selected_Disabled_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Selected_Down_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Selected_Down_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Selected_Down_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Selected_Down_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Selected_Down_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Selected_Down_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Selected_Down_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Selected_Down_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Selected_Down_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Selected_Down_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Selected_Down_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Selected_Down_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Selected_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Selected_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Selected_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Selected_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Selected_Over_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Selected_Over_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Selected_Over_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Selected_Over_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Selected_Over_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Selected_Over_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Selected_Over_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Selected_Over_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Selected_Over_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Selected_Over_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Selected_Over_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Selected_Over_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Selected_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Selected_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Selected_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Selected_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Selected_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Selected_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Selected_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_Selected_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/button/button_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ColorPicker/crosshair.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ColorPicker/crosshair.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ColorPicker/crosshair.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ColorPicker/crosshair.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ColorPicker/spectrum.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ColorPicker/spectrum.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ColorPicker/spectrum.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ColorPicker/spectrum.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/cssButton/button_Disabled_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/cssButton/button_Disabled_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/cssButton/button_Disabled_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/cssButton/button_Disabled_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/cssButton/button_Down_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/cssButton/button_Down_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/cssButton/button_Down_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/cssButton/button_Down_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/cssButton/button_Over_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/cssButton/button_Over_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/cssButton/button_Over_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/cssButton/button_Over_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/cssButton/button_Selected_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/cssButton/button_Selected_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/cssButton/button_Selected_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/cssButton/button_Selected_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/cssButton/button_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/cssButton/button_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/cssButton/button_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/cssButton/button_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/arrow_closed.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/arrow_closed.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/arrow_closed.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/arrow_closed.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/arrow_closed_down.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/arrow_closed_down.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/arrow_closed_down.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/arrow_closed_down.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/arrow_closed_left.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/arrow_closed_left.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/arrow_closed_left.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/arrow_closed_left.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/arrow_closed_right.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/arrow_closed_right.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/arrow_closed_right.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/arrow_closed_right.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/arrow_open.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/arrow_open.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/arrow_open.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/arrow_open.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/arrow_open_down.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/arrow_open_down.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/arrow_open_down.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/arrow_open_down.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/arrow_open_left.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/arrow_open_left.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/arrow_open_left.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/arrow_open_left.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/arrow_open_right.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/arrow_open_right.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/arrow_open_right.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/arrow_open_right.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/arrow_open_up.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/arrow_open_up.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/arrow_open_up.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/arrow_open_up.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/arrow_opening.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/arrow_opening.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/arrow_opening.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/arrow_opening.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/close.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/close.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/close.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/close.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/close_over.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/close_over.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/close_over.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/close_over.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/colHeader.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/colHeader.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/colHeader.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/colHeader.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/colHeaderDisabled.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/colHeaderDisabled.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/colHeaderDisabled.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/colHeaderDisabled.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/colHeaderLabel.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/colHeaderLabel.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/colHeaderLabel.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/colHeaderLabel.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/colHeaderLabelDown.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/colHeaderLabelDown.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/colHeaderLabelDown.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/colHeaderLabelDown.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/colHeaderOver.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/colHeaderOver.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/colHeaderOver.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/colHeaderOver.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/colHeaderSelected.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/colHeaderSelected.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/colHeaderSelected.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/colHeaderSelected.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/colHeaderSelectedOver.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/colHeaderSelectedOver.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/colHeaderSelectedOver.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/colHeaderSelectedOver.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/header_handle.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/header_handle.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/header_handle.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/header_handle.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/header_handle_over.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/header_handle_over.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/header_handle_over.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/header_handle_over.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/innerHeader.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/innerHeader.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/innerHeader.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/innerHeader.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/innerHeaderDown.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/innerHeaderDown.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/innerHeaderDown.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/innerHeaderDown.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/innerHeaderSelected.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/innerHeaderSelected.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/innerHeaderSelected.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/innerHeaderSelected.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/innerHeaderSelectedOver.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/innerHeaderSelectedOver.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/innerHeaderSelectedOver.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/innerHeaderSelectedOver.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/maximize.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/maximize.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/maximize.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/maximize.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/maximize_over.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/maximize_over.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/maximize_over.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/maximize_over.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/minimize.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/minimize.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/minimize.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/minimize.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/minimize_over.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/minimize_over.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/minimize_over.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/minimize_over.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/rowHeader.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/rowHeader.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/rowHeader.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/rowHeader.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/rowHeaderDisabled.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/rowHeaderDisabled.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/rowHeaderDisabled.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/rowHeaderDisabled.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/rowHeaderLabel.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/rowHeaderLabel.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/rowHeaderLabel.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/rowHeaderLabel.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/rowHeaderLabelDown.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/rowHeaderLabelDown.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/rowHeaderLabelDown.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/rowHeaderLabelDown.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/rowHeaderLabelSelected.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/rowHeaderLabelSelected.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/rowHeaderLabelSelected.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/rowHeaderLabelSelected.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/rowHeaderOver.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/rowHeaderOver.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/rowHeaderOver.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/rowHeaderOver.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/rowHeaderSelected.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/rowHeaderSelected.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/rowHeaderSelected.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/rowHeaderSelected.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/rowHeaderSelectedOver.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/rowHeaderSelectedOver.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/rowHeaderSelectedOver.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/rowHeaderSelectedOver.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/sort_down.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/sort_down.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/sort_down.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/sort_down.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/sort_down_over.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/sort_down_over.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/sort_down_over.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/sort_down_over.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/sort_down_selected.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/sort_down_selected.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/sort_down_selected.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/sort_down_selected.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/sort_down_selected_over.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/sort_down_selected_over.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/sort_down_selected_over.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/sort_down_selected_over.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/sort_up.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/sort_up.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/sort_up.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/sort_up.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/sort_up_over.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/sort_up_over.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/sort_up_over.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/sort_up_over.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/sort_up_selected.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/sort_up_selected.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/sort_up_selected.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/sort_up_selected.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/sort_up_selected_over.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/sort_up_selected_over.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/sort_up_selected_over.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/CubeGrid/sort_up_selected_over.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DatabaseBrowser/column.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DatabaseBrowser/column.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DatabaseBrowser/column.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DatabaseBrowser/column.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DatabaseBrowser/data.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DatabaseBrowser/data.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DatabaseBrowser/data.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DatabaseBrowser/data.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DateChooser/arrow_left.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DateChooser/arrow_left.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DateChooser/arrow_left.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DateChooser/arrow_left.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DateChooser/arrow_right.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DateChooser/arrow_right.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DateChooser/arrow_right.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DateChooser/arrow_right.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DateChooser/doubleArrow_left.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DateChooser/doubleArrow_left.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DateChooser/doubleArrow_left.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DateChooser/doubleArrow_left.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DateChooser/doubleArrow_right.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DateChooser/doubleArrow_right.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DateChooser/doubleArrow_right.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DateChooser/doubleArrow_right.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Dialog/ask.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Dialog/ask.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Dialog/ask.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Dialog/ask.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Dialog/confirm.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Dialog/confirm.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Dialog/confirm.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Dialog/confirm.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Dialog/error.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Dialog/error.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Dialog/error.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Dialog/error.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Dialog/notify.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Dialog/notify.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Dialog/notify.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Dialog/notify.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Dialog/say.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Dialog/say.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Dialog/say.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Dialog/say.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Dialog/stop.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Dialog/stop.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Dialog/stop.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Dialog/stop.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Dialog/warn.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Dialog/warn.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Dialog/warn.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Dialog/warn.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/checked.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/checked.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/checked.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/checked.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/checked_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/checked_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/checked_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/checked_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/checked_Down.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/checked_Down.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/checked_Down.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/checked_Down.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/ColorPicker_icon.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/ColorPicker_icon.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/ColorPicker_icon.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/ColorPicker_icon.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/ColorPicker_icon_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/ColorPicker_icon_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/ColorPicker_icon_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/ColorPicker_icon_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/date_control.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/date_control.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/date_control.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/date_control.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/date_control_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/date_control_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/date_control_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/date_control_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/default_formItem_icon.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/default_formItem_icon.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/default_formItem_icon.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/default_formItem_icon.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/default_formItem_icon_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/default_formItem_icon_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/default_formItem_icon_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/default_formItem_icon_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/default_formItem_icon_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/default_formItem_icon_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/default_formItem_icon_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/default_formItem_icon_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/partialcheck.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/partialcheck.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/partialcheck.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/partialcheck.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/PopUpTextAreaEditor_icon.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/PopUpTextAreaEditor_icon.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/PopUpTextAreaEditor_icon.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/PopUpTextAreaEditor_icon.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/PropSheet_ColorPicker_icon.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/PropSheet_ColorPicker_icon.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/PropSheet_ColorPicker_icon.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/PropSheet_ColorPicker_icon.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/PropSheet_pickbutton.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/PropSheet_pickbutton.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/PropSheet_pickbutton.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/PropSheet_pickbutton.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/PropSheet_pickbutton_Disabled.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/PropSheet_pickbutton_Disabled.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/PropSheet_pickbutton_Disabled.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/PropSheet_pickbutton_Disabled.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/Remove_icon.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/Remove_icon.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/Remove_icon.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/Remove_icon.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/Remove_icon_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/Remove_icon_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/Remove_icon_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/Remove_icon_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/Remove_icon_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/Remove_icon_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/Remove_icon_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/Remove_icon_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/spinner_control_decrease.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/spinner_control_decrease.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/spinner_control_decrease.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/spinner_control_decrease.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/spinner_control_decrease_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/spinner_control_decrease_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/spinner_control_decrease_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/spinner_control_decrease_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/spinner_control_decrease_Focused.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/spinner_control_decrease_Focused.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/spinner_control_decrease_Focused.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/spinner_control_decrease_Focused.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/spinner_control_increase.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/spinner_control_increase.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/spinner_control_increase.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/spinner_control_increase.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/spinner_control_increase_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/spinner_control_increase_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/spinner_control_increase_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/spinner_control_increase_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/spinner_control_increase_Focused.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/spinner_control_increase_Focused.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/spinner_control_increase_Focused.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/spinner_control_increase_Focused.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/text_control.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/text_control.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/text_control.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/text_control.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/text_control_Disabled.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/text_control_Disabled.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/text_control_Disabled.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/text_control_Disabled.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/text_control_Over.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/text_control_Over.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/text_control_Over.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/text_control_Over.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/unchecked.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/unchecked.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/unchecked.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/unchecked.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/unchecked_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/unchecked_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/unchecked_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/unchecked_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/unchecked_Down.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/unchecked_Down.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/unchecked_Down.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/unchecked_Down.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/unsetcheck.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/unsetcheck.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/unsetcheck.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/unsetcheck.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/unsetcheck_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/unsetcheck_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/unsetcheck_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/unsetcheck_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/unsetcheck_Down.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/unsetcheck_Down.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/unsetcheck_Down.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/unsetcheck_Down.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/unsetcheck_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/unsetcheck_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/unsetcheck_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/DynamicForm/unsetcheck_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/edges/edge_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/edges/edge_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/edges/edge_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/edges/edge_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/edges/edge_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/edges/edge_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/edges/edge_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/edges/edge_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/edges/edge_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/edges/edge_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/edges/edge_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/edges/edge_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/edges/edge_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/edges/edge_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/edges/edge_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/edges/edge_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/edges/edge_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/edges/edge_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/edges/edge_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/edges/edge_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/edges/edge_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/edges/edge_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/edges/edge_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/edges/edge_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/edges/edge_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/edges/edge_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/edges/edge_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/edges/edge_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/edges/edge_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/edges/edge_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/edges/edge_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/edges/edge_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/FileBrowser/createNewFolder.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/FileBrowser/createNewFolder.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/FileBrowser/createNewFolder.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/FileBrowser/createNewFolder.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/FileBrowser/file.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/FileBrowser/file.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/FileBrowser/file.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/FileBrowser/file.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/FileBrowser/folder.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/FileBrowser/folder.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/FileBrowser/folder.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/FileBrowser/folder.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/FileBrowser/previousFolder.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/FileBrowser/previousFolder.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/FileBrowser/previousFolder.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/FileBrowser/previousFolder.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/FileBrowser/refresh.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/FileBrowser/refresh.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/FileBrowser/refresh.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/FileBrowser/refresh.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/FileBrowser/upOneLevel.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/FileBrowser/upOneLevel.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/FileBrowser/upOneLevel.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/FileBrowser/upOneLevel.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/arrow_down.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/arrow_down.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/arrow_down.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/arrow_down.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/arrow_down_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/arrow_down_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/arrow_down_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/arrow_down_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/arrow_down_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/arrow_down_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/arrow_down_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/arrow_down_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/arrow_left.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/arrow_left.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/arrow_left.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/arrow_left.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/arrow_left_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/arrow_left_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/arrow_left_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/arrow_left_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/arrow_left_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/arrow_left_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/arrow_left_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/arrow_left_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/arrow_right.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/arrow_right.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/arrow_right.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/arrow_right.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/arrow_right_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/arrow_right_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/arrow_right_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/arrow_right_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/arrow_right_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/arrow_right_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/arrow_right_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/arrow_right_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/arrow_up.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/arrow_up.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/arrow_up.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/arrow_up.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/arrow_up_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/arrow_up_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/arrow_up_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/arrow_up_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/arrow_up_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/arrow_up_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/arrow_up_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/arrow_up_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/calculator.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/calculator.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/calculator.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/calculator.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/calculator_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/calculator_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/calculator_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/calculator_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/calculator_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/calculator_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/calculator_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/calculator_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/cart.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/cart.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/cart.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/cart.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/cart_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/cart_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/cart_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/cart_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/cart_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/cart_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/cart_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/cart_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/cascade.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/cascade.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/cascade.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/cascade.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/cascade_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/cascade_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/cascade_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/cascade_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/cascade_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/cascade_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/cascade_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/cascade_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/clipboard.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/clipboard.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/clipboard.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/clipboard.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/clipboard_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/clipboard_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/clipboard_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/clipboard_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/clipboard_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/clipboard_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/clipboard_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/clipboard_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/clock.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/clock.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/clock.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/clock.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/clock_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/clock_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/clock_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/clock_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/clock_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/clock_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/clock_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/clock_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/close.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/close.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/close.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/close.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/close_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/close_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/close_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/close_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/close_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/close_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/close_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/close_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/comment.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/comment.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/comment.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/comment.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/comment_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/comment_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/comment_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/comment_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/comment_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/comment_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/comment_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/comment_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/document.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/document.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/document.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/document.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/document_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/document_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/document_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/document_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/double_arrow_down.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/double_arrow_down.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/double_arrow_down.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/double_arrow_down.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/double_arrow_down_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/double_arrow_down_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/double_arrow_down_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/double_arrow_down_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/double_arrow_down_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/double_arrow_down_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/double_arrow_down_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/double_arrow_down_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/double_arrow_left.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/double_arrow_left.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/double_arrow_left.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/double_arrow_left.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/double_arrow_left_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/double_arrow_left_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/double_arrow_left_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/double_arrow_left_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/double_arrow_left_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/double_arrow_left_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/double_arrow_left_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/double_arrow_left_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/double_arrow_right.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/double_arrow_right.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/double_arrow_right.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/double_arrow_right.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/double_arrow_right_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/double_arrow_right_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/double_arrow_right_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/double_arrow_right_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/double_arrow_right_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/double_arrow_right_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/double_arrow_right_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/double_arrow_right_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/double_arrow_up.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/double_arrow_up.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/double_arrow_up.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/double_arrow_up.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/double_arrow_up_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/double_arrow_up_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/double_arrow_up_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/double_arrow_up_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/double_arrow_up_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/double_arrow_up_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/double_arrow_up_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/double_arrow_up_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/favourite.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/favourite.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/favourite.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/favourite.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/favourite_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/favourite_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/favourite_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/favourite_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/favourite_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/favourite_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/favourite_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/favourite_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/find.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/find.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/find.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/find.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/find_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/find_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/find_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/find_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/find_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/find_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/find_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/find_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/help.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/help.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/help.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/help.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/help_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/help_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/help_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/help_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/help_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/help_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/help_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/help_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/home.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/home.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/home.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/home.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/home_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/home_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/home_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/home_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/home_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/home_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/home_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/home_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/mail.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/mail.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/mail.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/mail.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/mail_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/mail_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/mail_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/mail_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/mail_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/mail_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/mail_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/mail_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/maximize.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/maximize.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/maximize.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/maximize.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/maximize_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/maximize_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/maximize_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/maximize_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/maximize_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/maximize_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/maximize_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/maximize_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/minimize.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/minimize.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/minimize.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/minimize.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/minimize_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/minimize_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/minimize_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/minimize_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/minimize_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/minimize_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/minimize_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/minimize_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/minus.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/minus.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/minus.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/minus.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/minus_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/minus_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/minus_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/minus_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/minus_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/minus_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/minus_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/minus_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/person.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/person.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/person.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/person.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/person_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/person_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/person_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/person_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/person_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/person_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/person_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/person_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/pin_down.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/pin_down.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/pin_down.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/pin_down.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/pin_down_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/pin_down_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/pin_down_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/pin_down_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/pin_down_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/pin_down_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/pin_down_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/pin_down_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/pin_left.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/pin_left.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/pin_left.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/pin_left.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/pin_left_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/pin_left_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/pin_left_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/pin_left_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/pin_left_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/pin_left_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/pin_left_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/pin_left_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/plus.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/plus.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/plus.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/plus.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/plus_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/plus_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/plus_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/plus_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/plus_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/plus_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/plus_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/plus_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/print.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/print.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/print.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/print.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/print_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/print_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/print_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/print_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/print_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/print_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/print_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/print_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/refresh.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/refresh.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/refresh.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/refresh.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/refresh_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/refresh_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/refresh_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/refresh_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/refresh_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/refresh_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/refresh_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/refresh_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/refresh_thin.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/refresh_thin.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/refresh_thin.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/refresh_thin.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/refresh_thin_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/refresh_thin_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/refresh_thin_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/refresh_thin_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/refresh_thin_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/refresh_thin_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/refresh_thin_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/refresh_thin_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/save.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/save.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/save.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/save.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/save_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/save_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/save_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/save_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/save_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/save_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/save_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/save_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/settings.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/settings.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/settings.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/settings.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/settings_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/settings_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/settings_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/settings_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/settings_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/settings_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/settings_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/settings_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/transfer.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/transfer.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/transfer.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/transfer.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/transfer_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/transfer_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/transfer_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/transfer_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/transfer_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/transfer_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/transfer_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/transfer_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/trash.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/trash.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/trash.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/trash.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/trash_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/trash_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/trash_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/trash_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/trash_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/trash_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/trash_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/trash_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/zoom.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/zoom.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/zoom.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/zoom.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/zoom_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/zoom_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/zoom_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/zoom_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/zoom_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/zoom_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/zoom_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/headerIcons/zoom_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ImgButton/button.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ImgButton/button.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ImgButton/button.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ImgButton/button.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ImgButton/button_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ImgButton/button_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ImgButton/button_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ImgButton/button_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ImgButton/button_Down.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ImgButton/button_Down.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ImgButton/button_Down.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ImgButton/button_Down.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ImgButton/button_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ImgButton/button_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ImgButton/button_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ImgButton/button_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/expander_closed.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/expander_closed.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/expander_closed.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/expander_closed.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/expander_opened.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/expander_opened.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/expander_opened.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/expander_opened.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/formula_menuItem.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/formula_menuItem.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/formula_menuItem.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/formula_menuItem.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/group_closed.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/group_closed.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/group_closed.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/group_closed.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/group_opened.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/group_opened.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/group_opened.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/group_opened.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/header.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/header.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/header.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/header.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/header_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/header_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/header_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/header_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/header_Down.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/header_Down.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/header_Down.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/header_Down.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/header_menu.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/header_menu.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/header_menu.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/header_menu.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/header_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/header_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/header_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/header_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/header_Selected.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/header_Selected.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/header_Selected.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/header_Selected.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/header_Selected_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/header_Selected_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/header_Selected_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/header_Selected_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/header_Selected_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/header_Selected_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/header_Selected_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/header_Selected_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/row.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/row.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/row.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/row.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/row_collapsed.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/row_collapsed.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/row_collapsed.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/row_collapsed.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/row_expanded.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/row_expanded.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/row_expanded.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/row_expanded.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/row_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/row_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/row_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/row_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/row_Over_Selected.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/row_Over_Selected.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/row_Over_Selected.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/row_Over_Selected.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/row_Selected.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/row_Selected.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/row_Selected.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/row_Selected.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/row_Selected_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/row_Selected_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/row_Selected_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/row_Selected_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/sort_ascending.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/sort_ascending.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/sort_ascending.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/sort_ascending.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/sort_descending.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/sort_descending.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/sort_descending.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ListGrid/sort_descending.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/loading.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/loading.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/loading.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/loading.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/loadingSmall.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/loadingSmall.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/loadingSmall.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/loadingSmall.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/check.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/check.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/check.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/check.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/check_disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/check_disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/check_disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/check_disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/menu_background.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/menu_background.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/menu_background.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/menu_background.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/menu_button.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/menu_button.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/menu_button.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/menu_button.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/menu_button_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/menu_button_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/menu_button_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/menu_button_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/menu_button_up.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/menu_button_up.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/menu_button_up.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/menu_button_up.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/menu_button_up_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/menu_button_up_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/menu_button_up_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/menu_button_up_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/menu_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/menu_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/menu_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/menu_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/menu_right.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/menu_right.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/menu_right.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/menu_right.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/menu_rollover.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/menu_rollover.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/menu_rollover.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/menu_rollover.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/menu_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/menu_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/menu_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/menu_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/menu_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/menu_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/menu_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/menu_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/submenu.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/submenu.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/submenu.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/submenu.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/submenu_disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/submenu_disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/submenu_disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/submenu_disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/submenu_disabled_left.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/submenu_disabled_left.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/submenu_disabled_left.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/submenu_disabled_left.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/submenu_down.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/submenu_down.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/submenu_down.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/submenu_down.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/submenu_left.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/submenu_left.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/submenu_left.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Menu/submenu_left.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/MultiUploadItem/icon_add_files.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/MultiUploadItem/icon_add_files.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/MultiUploadItem/icon_add_files.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/MultiUploadItem/icon_add_files.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/MultiUploadItem/icon_add_files_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/MultiUploadItem/icon_add_files_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/MultiUploadItem/icon_add_files_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/MultiUploadItem/icon_add_files_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/MultiUploadItem/icon_remove_files.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/MultiUploadItem/icon_remove_files.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/MultiUploadItem/icon_remove_files.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/MultiUploadItem/icon_remove_files.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/MultiUploadItem/icon_remove_files_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/MultiUploadItem/icon_remove_files_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/MultiUploadItem/icon_remove_files_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/MultiUploadItem/icon_remove_files_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/opacity.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/opacity.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/opacity.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/opacity.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Panel/panel_header.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Panel/panel_header.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Panel/panel_header.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Panel/panel_header.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/clear_picker.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/clear_picker.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/clear_picker.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/clear_picker.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/clear_picker_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/clear_picker_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/clear_picker_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/clear_picker_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/clear_picker_Down.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/clear_picker_Down.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/clear_picker_Down.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/clear_picker_Down.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/clear_picker_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/clear_picker_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/clear_picker_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/clear_picker_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/comboBoxPicker.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/comboBoxPicker.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/comboBoxPicker.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/comboBoxPicker.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/comboBoxPicker_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/comboBoxPicker_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/comboBoxPicker_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/comboBoxPicker_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/comboBoxPicker_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/comboBoxPicker_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/comboBoxPicker_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/comboBoxPicker_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/date_picker.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/date_picker.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/date_picker.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/date_picker.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/date_picker_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/date_picker_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/date_picker_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/date_picker_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/date_picker_Down.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/date_picker_Down.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/date_picker_Down.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/date_picker_Down.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/date_picker_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/date_picker_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/date_picker_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/date_picker_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/refresh_picker.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/refresh_picker.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/refresh_picker.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/refresh_picker.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/refresh_picker_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/refresh_picker_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/refresh_picker_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/refresh_picker_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/refresh_picker_Down.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/refresh_picker_Down.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/refresh_picker_Down.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/refresh_picker_Down.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/refresh_picker_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/refresh_picker_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/refresh_picker_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/refresh_picker_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/search_picker.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/search_picker.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/search_picker.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/search_picker.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/search_picker_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/search_picker_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/search_picker_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/search_picker_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/search_picker_Down.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/search_picker_Down.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/search_picker_Down.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/search_picker_Down.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/search_picker_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/search_picker_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/search_picker_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/pickers/search_picker_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_Disabled_h_empty_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_Disabled_h_empty_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_Disabled_h_empty_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_Disabled_h_empty_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_Disabled_h_empty_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_Disabled_h_empty_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_Disabled_h_empty_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_Disabled_h_empty_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_Disabled_h_empty_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_Disabled_h_empty_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_Disabled_h_empty_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_Disabled_h_empty_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_Disabled_h_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_Disabled_h_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_Disabled_h_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_Disabled_h_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_Disabled_h_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_Disabled_h_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_Disabled_h_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_Disabled_h_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_Disabled_h_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_Disabled_h_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_Disabled_h_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_Disabled_h_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_Disabled_v_empty_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_Disabled_v_empty_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_Disabled_v_empty_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_Disabled_v_empty_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_Disabled_v_empty_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_Disabled_v_empty_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_Disabled_v_empty_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_Disabled_v_empty_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_Disabled_v_empty_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_Disabled_v_empty_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_Disabled_v_empty_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_Disabled_v_empty_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_Disabled_v_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_Disabled_v_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_Disabled_v_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_Disabled_v_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_Disabled_v_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_Disabled_v_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_Disabled_v_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_Disabled_v_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_Disabled_v_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_Disabled_v_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_Disabled_v_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_Disabled_v_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_h_empty_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_h_empty_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_h_empty_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_h_empty_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_h_empty_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_h_empty_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_h_empty_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_h_empty_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_h_empty_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_h_empty_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_h_empty_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_h_empty_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_h_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_h_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_h_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_h_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_h_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_h_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_h_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_h_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_h_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_h_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_h_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_h_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_v_empty_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_v_empty_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_v_empty_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_v_empty_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_v_empty_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_v_empty_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_v_empty_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_v_empty_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_v_empty_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_v_empty_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_v_empty_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_v_empty_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_v_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_v_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_v_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_v_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_v_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_v_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_v_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_v_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_v_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_v_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_v_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Progressbar/progressbar_v_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/readme.txt b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/readme.txt
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RecordEditor/add.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RecordEditor/add.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RecordEditor/add.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RecordEditor/add.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RecordEditor/add_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RecordEditor/add_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RecordEditor/add_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RecordEditor/add_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RecordEditor/add_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RecordEditor/add_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RecordEditor/add_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RecordEditor/add_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RecordEditor/check.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RecordEditor/check.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RecordEditor/check.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RecordEditor/check.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RecordEditor/filter.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RecordEditor/filter.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RecordEditor/filter.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RecordEditor/filter.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RecordEditor/filter_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RecordEditor/filter_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RecordEditor/filter_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RecordEditor/filter_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RecordEditor/filter_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RecordEditor/filter_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RecordEditor/filter_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RecordEditor/filter_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RecordEditor/query.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RecordEditor/query.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RecordEditor/query.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RecordEditor/query.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/background_color.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/background_color.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/background_color.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/background_color.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/background_color_Disabled.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/background_color_Disabled.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/background_color_Disabled.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/background_color_Disabled.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/copy.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/copy.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/copy.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/copy.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/copy_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/copy_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/copy_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/copy_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/cut.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/cut.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/cut.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/cut.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/cut_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/cut_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/cut_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/cut_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/indent.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/indent.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/indent.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/indent.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/indent_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/indent_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/indent_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/indent_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/link_new.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/link_new.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/link_new.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/link_new.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/outdent.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/outdent.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/outdent.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/outdent.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/outdent_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/outdent_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/outdent_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/outdent_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/paste.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/paste.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/paste.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/paste.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/paste_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/paste_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/paste_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/paste_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/separator.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/separator.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/separator.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/separator.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/separator_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/separator_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/separator_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/separator_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/text_align_center.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/text_align_center.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/text_align_center.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/text_align_center.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/text_align_center_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/text_align_center_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/text_align_center_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/text_align_center_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/text_align_justified.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/text_align_justified.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/text_align_justified.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/text_align_justified.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/text_align_justified_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/text_align_justified_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/text_align_justified_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/text_align_justified_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/text_align_left.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/text_align_left.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/text_align_left.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/text_align_left.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/text_align_left_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/text_align_left_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/text_align_left_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/text_align_left_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/text_align_right.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/text_align_right.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/text_align_right.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/text_align_right.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/text_align_right_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/text_align_right_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/text_align_right_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/text_align_right_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/text_bold.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/text_bold.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/text_bold.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/text_bold.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/text_color.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/text_color.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/text_color.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/text_color.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/text_color_Disabled.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/text_color_Disabled.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/text_color_Disabled.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/text_color_Disabled.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/text_italic.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/text_italic.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/text_italic.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/text_italic.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/text_underline.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/text_underline.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/text_underline.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/RichTextEditor/text_underline.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SchemaViewer/complexType.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SchemaViewer/complexType.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SchemaViewer/complexType.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SchemaViewer/complexType.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SchemaViewer/operation.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SchemaViewer/operation.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SchemaViewer/operation.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SchemaViewer/operation.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SchemaViewer/simpleType.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SchemaViewer/simpleType.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SchemaViewer/simpleType.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SchemaViewer/simpleType.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_corner.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_corner.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_corner.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_corner.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_Disabled_corner.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_Disabled_corner.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_Disabled_corner.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_Disabled_corner.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_Disabled_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_Disabled_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_Disabled_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_Disabled_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_Disabled_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_Disabled_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_Disabled_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_Disabled_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_Disabled_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_Disabled_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_Disabled_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_Disabled_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_Disabled_track.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_Disabled_track.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_Disabled_track.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_Disabled_track.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_Down_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_Down_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_Down_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_Down_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_Down_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_Down_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_Down_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_Down_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_Down_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_Down_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_Down_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_Down_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_Down_track.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_Down_track.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_Down_track.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_Down_track.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_Over_corner.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_Over_corner.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_Over_corner.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_Over_corner.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_Over_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_Over_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_Over_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_Over_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_Over_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_Over_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_Over_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_Over_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_Over_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_Over_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_Over_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_Over_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_Over_track.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_Over_track.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_Over_track.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_Over_track.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_track.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_track.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_track.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hscroll_track.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hthumb_Disabled_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hthumb_Disabled_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hthumb_Disabled_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hthumb_Disabled_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hthumb_Disabled_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hthumb_Disabled_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hthumb_Disabled_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hthumb_Disabled_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hthumb_Disabled_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hthumb_Disabled_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hthumb_Disabled_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hthumb_Disabled_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hthumb_Down_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hthumb_Down_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hthumb_Down_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hthumb_Down_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hthumb_Down_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hthumb_Down_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hthumb_Down_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hthumb_Down_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hthumb_Down_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hthumb_Down_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hthumb_Down_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hthumb_Down_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hthumb_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hthumb_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hthumb_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hthumb_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hthumb_grip.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hthumb_grip.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hthumb_grip.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hthumb_grip.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hthumb_grip_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hthumb_grip_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hthumb_grip_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hthumb_grip_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hthumb_Over_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hthumb_Over_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hthumb_Over_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hthumb_Over_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hthumb_Over_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hthumb_Over_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hthumb_Over_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hthumb_Over_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hthumb_Over_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hthumb_Over_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hthumb_Over_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hthumb_Over_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hthumb_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hthumb_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hthumb_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hthumb_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hthumb_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hthumb_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hthumb_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/hthumb_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_corner.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_corner.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_corner.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_corner.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_Disabled_corner.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_Disabled_corner.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_Disabled_corner.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_Disabled_corner.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_Disabled_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_Disabled_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_Disabled_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_Disabled_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_Disabled_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_Disabled_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_Disabled_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_Disabled_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_Disabled_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_Disabled_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_Disabled_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_Disabled_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_Disabled_track.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_Disabled_track.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_Disabled_track.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_Disabled_track.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_Down_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_Down_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_Down_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_Down_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_Down_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_Down_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_Down_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_Down_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_Down_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_Down_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_Down_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_Down_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_Down_track.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_Down_track.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_Down_track.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_Down_track.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_Over_corner.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_Over_corner.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_Over_corner.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_Over_corner.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_Over_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_Over_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_Over_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_Over_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_Over_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_Over_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_Over_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_Over_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_Over_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_Over_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_Over_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_Over_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_Over_track.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_Over_track.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_Over_track.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_Over_track.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_track.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_track.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_track.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vscroll_track.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vthumb_Disabled_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vthumb_Disabled_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vthumb_Disabled_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vthumb_Disabled_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vthumb_Disabled_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vthumb_Disabled_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vthumb_Disabled_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vthumb_Disabled_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vthumb_Disabled_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vthumb_Disabled_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vthumb_Disabled_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vthumb_Disabled_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vthumb_Down_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vthumb_Down_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vthumb_Down_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vthumb_Down_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vthumb_Down_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vthumb_Down_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vthumb_Down_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vthumb_Down_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vthumb_Down_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vthumb_Down_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vthumb_Down_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vthumb_Down_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vthumb_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vthumb_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vthumb_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vthumb_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vthumb_grip.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vthumb_grip.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vthumb_grip.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vthumb_grip.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vthumb_grip_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vthumb_grip_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vthumb_grip_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vthumb_grip_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vthumb_Over_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vthumb_Over_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vthumb_Over_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vthumb_Over_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vthumb_Over_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vthumb_Over_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vthumb_Over_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vthumb_Over_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vthumb_Over_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vthumb_Over_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vthumb_Over_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vthumb_Over_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vthumb_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vthumb_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vthumb_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vthumb_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vthumb_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vthumb_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vthumb_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Scrollbar/vthumb_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_closed_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_closed_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_closed_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_closed_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_closed_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_closed_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_closed_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_closed_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_closed_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_closed_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_closed_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_closed_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_Disabled_closed_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_Disabled_closed_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_Disabled_closed_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_Disabled_closed_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_Disabled_closed_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_Disabled_closed_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_Disabled_closed_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_Disabled_closed_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_Disabled_closed_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_Disabled_closed_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_Disabled_closed_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_Disabled_closed_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_Disabled_opened_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_Disabled_opened_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_Disabled_opened_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_Disabled_opened_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_Disabled_opened_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_Disabled_opened_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_Disabled_opened_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_Disabled_opened_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_Disabled_opened_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_Disabled_opened_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_Disabled_opened_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_Disabled_opened_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_opened_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_opened_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_opened_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_opened_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_opened_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_opened_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_opened_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_opened_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_opened_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_opened_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_opened_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_opened_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_Over_closed_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_Over_closed_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_Over_closed_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_Over_closed_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_Over_closed_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_Over_closed_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_Over_closed_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_Over_closed_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_Over_closed_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_Over_closed_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_Over_closed_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_Over_closed_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_Over_opened_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_Over_opened_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_Over_opened_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_Over_opened_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_Over_opened_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_Over_opened_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_Over_opened_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_Over_opened_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_Over_opened_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_Over_opened_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_Over_opened_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/header_Over_opened_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/opener_closed.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/opener_closed.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/opener_closed.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/opener_closed.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/opener_opened.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/opener_opened.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/opener_opened.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/opener_opened.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/opener_opened_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/opener_opened_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/opener_opened_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/opener_opened_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/opener_opened_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/opener_opened_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/opener_opened_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/opener_opened_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/opener_opened_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/opener_opened_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/opener_opened_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/SectionHeader/opener_opened_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/background.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/background.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/background.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/background.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/progressCursorTracker.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/progressCursorTracker.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/progressCursorTracker.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/progressCursorTracker.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds_center.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds_center.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds_center.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds_center.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds1_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds1_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds1_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds1_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds1_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds1_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds1_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds1_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds1_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds1_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds1_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds1_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds1_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds1_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds1_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds1_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds1_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds1_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds1_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds1_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds1_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds1_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds1_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds1_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds1_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds1_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds1_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds1_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds1_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds1_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds1_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds1_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds10_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds10_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds10_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds10_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds10_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds10_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds10_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds10_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds10_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds10_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds10_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds10_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds10_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds10_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds10_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds10_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds10_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds10_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds10_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds10_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds10_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds10_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds10_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds10_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds10_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds10_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds10_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds10_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds10_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds10_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds10_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds10_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds2_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds2_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds2_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds2_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds2_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds2_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds2_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds2_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds2_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds2_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds2_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds2_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds2_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds2_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds2_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds2_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds2_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds2_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds2_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds2_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds2_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds2_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds2_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds2_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds2_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds2_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds2_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds2_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds2_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds2_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds2_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds2_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds3_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds3_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds3_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds3_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds3_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds3_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds3_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds3_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds3_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds3_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds3_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds3_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds3_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds3_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds3_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds3_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds3_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds3_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds3_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds3_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds3_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds3_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds3_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds3_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds3_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds3_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds3_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds3_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds3_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds3_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds3_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds3_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds4_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds4_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds4_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds4_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds4_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds4_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds4_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds4_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds4_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds4_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds4_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds4_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds4_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds4_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds4_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds4_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds4_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds4_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds4_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds4_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds4_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds4_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds4_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds4_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds4_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds4_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds4_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds4_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds4_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds4_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds4_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds4_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds5_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds5_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds5_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds5_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds5_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds5_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds5_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds5_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds5_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds5_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds5_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds5_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds5_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds5_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds5_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds5_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds5_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds5_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds5_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds5_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds5_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds5_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds5_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds5_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds5_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds5_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds5_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds5_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds5_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds5_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds5_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds5_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds6_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds6_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds6_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds6_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds6_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds6_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds6_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds6_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds6_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds6_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds6_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds6_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds6_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds6_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds6_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds6_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds6_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds6_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds6_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds6_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds6_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds6_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds6_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds6_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds6_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds6_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds6_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds6_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds6_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds6_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds6_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds6_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds7_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds7_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds7_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds7_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds7_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds7_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds7_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds7_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds7_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds7_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds7_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds7_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds7_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds7_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds7_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds7_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds7_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds7_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds7_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds7_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds7_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds7_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds7_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds7_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds7_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds7_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds7_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds7_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds7_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds7_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds7_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds7_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds8_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds8_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds8_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds8_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds8_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds8_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds8_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds8_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds8_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds8_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds8_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds8_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds8_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds8_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds8_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds8_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds8_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds8_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds8_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds8_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds8_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds8_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds8_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds8_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds8_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds8_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds8_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds8_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds8_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds8_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds8_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds8_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds9_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds9_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds9_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds9_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds9_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds9_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds9_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds9_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds9_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds9_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds9_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds9_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds9_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds9_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds9_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds9_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds9_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds9_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds9_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds9_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds9_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds9_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds9_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds9_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds9_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds9_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds9_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds9_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds9_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds9_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds9_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/shared/shadows/ds9_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/hthumb.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/hthumb.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/hthumb.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/hthumb.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/hthumb_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/hthumb_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/hthumb_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/hthumb_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/hthumb_down.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/hthumb_down.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/hthumb_down.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/hthumb_down.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/htrack_Disabled_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/htrack_Disabled_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/htrack_Disabled_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/htrack_Disabled_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/htrack_Disabled_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/htrack_Disabled_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/htrack_Disabled_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/htrack_Disabled_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/htrack_Disabled_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/htrack_Disabled_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/htrack_Disabled_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/htrack_Disabled_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/htrack_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/htrack_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/htrack_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/htrack_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/htrack_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/htrack_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/htrack_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/htrack_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/htrack_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/htrack_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/htrack_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/htrack_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/vthumb.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/vthumb.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/vthumb.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/vthumb.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/vthumb_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/vthumb_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/vthumb_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/vthumb_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/vthumb_down.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/vthumb_down.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/vthumb_down.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/vthumb_down.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/vtrack_Disabled_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/vtrack_Disabled_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/vtrack_Disabled_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/vtrack_Disabled_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/vtrack_Disabled_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/vtrack_Disabled_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/vtrack_Disabled_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/vtrack_Disabled_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/vtrack_Disabled_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/vtrack_Disabled_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/vtrack_Disabled_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/vtrack_Disabled_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/vtrack_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/vtrack_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/vtrack_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/vtrack_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/vtrack_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/vtrack_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/vtrack_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/vtrack_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/vtrack_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/vtrack_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/vtrack_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Slider/vtrack_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Splitbar/hsplit_bg.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Splitbar/hsplit_bg.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Splitbar/hsplit_bg.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Splitbar/hsplit_bg.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Splitbar/hsplit_Disabled_bg.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Splitbar/hsplit_Disabled_bg.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Splitbar/hsplit_Disabled_bg.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Splitbar/hsplit_Disabled_bg.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Splitbar/hsplit_snap.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Splitbar/hsplit_snap.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Splitbar/hsplit_snap.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Splitbar/hsplit_snap.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Splitbar/hsplit_snap_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Splitbar/hsplit_snap_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Splitbar/hsplit_snap_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Splitbar/hsplit_snap_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Splitbar/vsplit_bg.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Splitbar/vsplit_bg.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Splitbar/vsplit_bg.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Splitbar/vsplit_bg.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Splitbar/vsplit_Disabled_bg.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Splitbar/vsplit_Disabled_bg.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Splitbar/vsplit_Disabled_bg.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Splitbar/vsplit_Disabled_bg.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Splitbar/vsplit_snap.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Splitbar/vsplit_snap.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Splitbar/vsplit_snap.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Splitbar/vsplit_snap.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Splitbar/vsplit_snap_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Splitbar/vsplit_snap_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Splitbar/vsplit_snap_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Splitbar/vsplit_snap_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/baseline_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/baseline_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/baseline_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/baseline_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/baseline_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/baseline_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/baseline_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/baseline_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/baseline_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/baseline_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/baseline_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/baseline_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Disabled_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Disabled_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Disabled_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Disabled_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Disabled_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Disabled_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Disabled_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Disabled_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Disabled_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Disabled_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Disabled_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Disabled_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Over_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Over_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Over_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Over_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Over_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Over_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Over_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Over_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Over_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Over_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Over_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Over_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Selected_Disabled_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Selected_Disabled_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Selected_Disabled_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Selected_Disabled_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Selected_Disabled_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Selected_Disabled_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Selected_Disabled_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Selected_Disabled_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Selected_Disabled_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Selected_Disabled_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Selected_Disabled_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Selected_Disabled_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Selected_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Selected_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Selected_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Selected_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Selected_Over_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Selected_Over_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Selected_Over_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Selected_Over_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Selected_Over_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Selected_Over_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Selected_Over_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Selected_Over_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Selected_Over_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Selected_Over_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Selected_Over_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Selected_Over_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Selected_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Selected_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Selected_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Selected_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Selected_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Selected_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Selected_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_Selected_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/bottom/tab_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/close.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/close.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/close.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/close.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/close_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/close_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/close_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/close_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Disabled_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Disabled_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Disabled_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Disabled_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Disabled_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Disabled_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Disabled_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Disabled_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Disabled_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Disabled_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Disabled_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Disabled_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Over_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Over_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Over_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Over_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Over_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Over_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Over_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Over_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Over_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Over_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Over_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Over_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Selected_Disabled_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Selected_Disabled_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Selected_Disabled_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Selected_Disabled_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Selected_Disabled_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Selected_Disabled_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Selected_Disabled_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Selected_Disabled_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Selected_Disabled_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Selected_Disabled_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Selected_Disabled_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Selected_Disabled_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Selected_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Selected_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Selected_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Selected_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Selected_Over_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Selected_Over_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Selected_Over_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Selected_Over_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Selected_Over_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Selected_Over_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Selected_Over_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Selected_Over_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Selected_Over_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Selected_Over_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Selected_Over_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Selected_Over_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Selected_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Selected_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Selected_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Selected_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Selected_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Selected_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Selected_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_Selected_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/left/tab_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/baseline_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/baseline_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/baseline_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/baseline_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/baseline_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/baseline_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/baseline_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/baseline_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/baseline_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/baseline_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/baseline_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/baseline_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/close.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/close.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/close.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/close.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/close_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/close_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/close_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/close_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Disabled_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Disabled_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Disabled_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Disabled_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Disabled_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Disabled_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Disabled_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Disabled_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Disabled_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Disabled_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Disabled_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Disabled_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Over_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Over_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Over_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Over_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Over_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Over_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Over_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Over_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Over_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Over_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Over_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Over_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Selected_Disabled_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Selected_Disabled_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Selected_Disabled_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Selected_Disabled_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Selected_Disabled_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Selected_Disabled_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Selected_Disabled_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Selected_Disabled_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Selected_Disabled_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Selected_Disabled_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Selected_Disabled_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Selected_Disabled_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Selected_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Selected_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Selected_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Selected_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Selected_Over_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Selected_Over_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Selected_Over_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Selected_Over_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Selected_Over_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Selected_Over_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Selected_Over_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Selected_Over_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Selected_Over_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Selected_Over_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Selected_Over_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Selected_Over_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Selected_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Selected_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Selected_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Selected_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Selected_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Selected_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Selected_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_Selected_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/right/tab_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/baseline_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/baseline_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/baseline_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/baseline_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/baseline_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/baseline_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/baseline_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/baseline_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/baseline_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/baseline_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/baseline_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/baseline_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/close.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/close.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/close.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/close.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/close_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/close_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/close_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/close_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Disabled_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Disabled_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Disabled_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Disabled_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Disabled_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Disabled_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Disabled_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Disabled_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Disabled_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Disabled_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Disabled_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Disabled_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Over_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Over_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Over_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Over_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Over_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Over_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Over_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Over_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Over_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Over_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Over_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Over_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Selected_Disabled_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Selected_Disabled_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Selected_Disabled_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Selected_Disabled_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Selected_Disabled_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Selected_Disabled_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Selected_Disabled_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Selected_Disabled_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Selected_Disabled_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Selected_Disabled_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Selected_Disabled_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Selected_Disabled_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Selected_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Selected_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Selected_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Selected_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Selected_Over_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Selected_Over_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Selected_Over_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Selected_Over_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Selected_Over_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Selected_Over_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Selected_Over_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Selected_Over_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Selected_Over_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Selected_Over_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Selected_Over_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Selected_Over_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Selected_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Selected_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Selected_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Selected_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Selected_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Selected_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Selected_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_Selected_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Tab/top/tab_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/close.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/close.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/close.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/close.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/close_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/close_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/close_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/close_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/picker_bottom.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/picker_bottom.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/picker_bottom.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/picker_bottom.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/picker_Disabled_bottom.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/picker_Disabled_bottom.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/picker_Disabled_bottom.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/picker_Disabled_bottom.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/picker_Disabled_left.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/picker_Disabled_left.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/picker_Disabled_left.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/picker_Disabled_left.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/picker_Disabled_right.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/picker_Disabled_right.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/picker_Disabled_right.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/picker_Disabled_right.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/picker_Disabled_top.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/picker_Disabled_top.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/picker_Disabled_top.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/picker_Disabled_top.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/picker_Down_bottom.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/picker_Down_bottom.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/picker_Down_bottom.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/picker_Down_bottom.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/picker_Down_left.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/picker_Down_left.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/picker_Down_left.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/picker_Down_left.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/picker_Down_right.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/picker_Down_right.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/picker_Down_right.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/picker_Down_right.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/picker_Down_top.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/picker_Down_top.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/picker_Down_top.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/picker_Down_top.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/picker_left.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/picker_left.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/picker_left.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/picker_left.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/picker_right.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/picker_right.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/picker_right.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/picker_right.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/picker_top.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/picker_top.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/picker_top.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/picker_top.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_bottom_back.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_bottom_back.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_bottom_back.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_bottom_back.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_bottom_forward.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_bottom_forward.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_bottom_forward.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_bottom_forward.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Disabled_bottom_back.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Disabled_bottom_back.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Disabled_bottom_back.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Disabled_bottom_back.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Disabled_bottom_forward.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Disabled_bottom_forward.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Disabled_bottom_forward.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Disabled_bottom_forward.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Disabled_left_back.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Disabled_left_back.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Disabled_left_back.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Disabled_left_back.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Disabled_left_forward.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Disabled_left_forward.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Disabled_left_forward.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Disabled_left_forward.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Disabled_right_back.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Disabled_right_back.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Disabled_right_back.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Disabled_right_back.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Disabled_right_forward.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Disabled_right_forward.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Disabled_right_forward.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Disabled_right_forward.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Disabled_top_back.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Disabled_top_back.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Disabled_top_back.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Disabled_top_back.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Disabled_top_forward.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Disabled_top_forward.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Disabled_top_forward.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Disabled_top_forward.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Down_bottom_back.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Down_bottom_back.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Down_bottom_back.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Down_bottom_back.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Down_bottom_forward.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Down_bottom_forward.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Down_bottom_forward.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Down_bottom_forward.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Down_left_back.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Down_left_back.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Down_left_back.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Down_left_back.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Down_left_forward.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Down_left_forward.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Down_left_forward.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Down_left_forward.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Down_right_back.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Down_right_back.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Down_right_back.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Down_right_back.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Down_right_forward.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Down_right_forward.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Down_right_forward.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Down_right_forward.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Down_top_back.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Down_top_back.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Down_top_back.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Down_top_back.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Down_top_forward.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Down_top_forward.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Down_top_forward.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_Down_top_forward.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_left_back.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_left_back.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_left_back.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_left_back.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_left_forward.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_left_forward.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_left_forward.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_left_forward.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_right_back.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_right_back.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_right_back.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_right_back.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_right_forward.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_right_forward.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_right_forward.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_right_forward.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_top_back.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_top_back.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_top_back.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_top_back.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_top_forward.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_top_forward.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_top_forward.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TabSet/scroll_top_forward.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TileGrid/tileOver.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TileGrid/tileOver.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TileGrid/tileOver.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TileGrid/tileOver.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/background.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/background.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/background.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/background.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/background_vertical.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/background_vertical.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/background_vertical.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/background_vertical.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Disabled_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Disabled_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Disabled_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Disabled_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Disabled_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Disabled_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Disabled_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Disabled_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Disabled_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Disabled_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Disabled_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Disabled_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Down_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Down_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Down_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Down_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Down_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Down_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Down_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Down_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Down_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Down_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Down_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Down_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Over_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Over_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Over_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Over_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Over_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Over_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Over_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Over_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Over_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Over_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Over_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Over_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Selected_Down_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Selected_Down_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Selected_Down_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Selected_Down_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Selected_Down_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Selected_Down_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Selected_Down_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Selected_Down_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Selected_Down_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Selected_Down_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Selected_Down_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Selected_Down_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Selected_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Selected_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Selected_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Selected_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Selected_Over_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Selected_Over_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Selected_Over_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Selected_Over_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Selected_Over_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Selected_Over_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Selected_Over_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Selected_Over_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Selected_Over_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Selected_Over_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Selected_Over_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Selected_Over_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Selected_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Selected_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Selected_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Selected_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Selected_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Selected_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Selected_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_Selected_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/button/button_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/hresizer.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/hresizer.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/hresizer.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/hresizer.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/hresizer_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/hresizer_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/hresizer_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/hresizer_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/hseparator.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/hseparator.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/hseparator.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/hseparator.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/hseparator_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/hseparator_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/hseparator_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/hseparator_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/resizer.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/resizer.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/resizer.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/resizer.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/resizer_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/resizer_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/resizer_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/resizer_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/separator.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/separator.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/separator.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/separator.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/separator_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/separator_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/separator_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/ToolStrip/separator_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/delete.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/delete.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/delete.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/delete.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/delete_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/delete_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/delete_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/delete_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/delete_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/delete_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/delete_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/delete_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/down.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/down.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/down.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/down.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/down_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/down_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/down_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/down_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/down_last.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/down_last.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/down_last.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/down_last.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/down_last_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/down_last_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/down_last_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/down_last_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/down_last_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/down_last_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/down_last_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/down_last_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/down_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/down_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/down_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/down_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/left.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/left.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/left.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/left.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/left_all.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/left_all.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/left_all.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/left_all.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/left_all_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/left_all_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/left_all_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/left_all_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/left_all_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/left_all_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/left_all_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/left_all_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/left_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/left_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/left_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/left_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/left_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/left_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/left_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/left_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/right.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/right.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/right.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/right.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/right_all.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/right_all.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/right_all.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/right_all.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/right_all_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/right_all_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/right_all_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/right_all_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/right_all_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/right_all_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/right_all_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/right_all_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/right_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/right_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/right_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/right_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/right_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/right_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/right_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/right_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/up.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/up.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/up.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/up.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/up_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/up_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/up_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/up_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/up_first.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/up_first.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/up_first.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/up_first.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/up_first_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/up_first_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/up_first_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/up_first_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/up_first_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/up_first_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/up_first_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/up_first_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/up_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/up_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/up_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TransferIcons/up_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/connector_ancestor.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/connector_ancestor.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/connector_ancestor.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/connector_ancestor.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/connector_closed_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/connector_closed_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/connector_closed_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/connector_closed_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/connector_closed_middle.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/connector_closed_middle.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/connector_closed_middle.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/connector_closed_middle.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/connector_closed_single.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/connector_closed_single.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/connector_closed_single.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/connector_closed_single.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/connector_closed_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/connector_closed_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/connector_closed_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/connector_closed_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/connector_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/connector_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/connector_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/connector_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/connector_middle.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/connector_middle.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/connector_middle.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/connector_middle.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/connector_opened_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/connector_opened_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/connector_opened_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/connector_opened_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/connector_opened_middle.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/connector_opened_middle.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/connector_opened_middle.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/connector_opened_middle.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/connector_opened_single.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/connector_opened_single.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/connector_opened_single.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/connector_opened_single.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/connector_opened_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/connector_opened_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/connector_opened_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/connector_opened_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/connector_single.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/connector_single.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/connector_single.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/connector_single.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/connector_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/connector_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/connector_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/connector_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/file.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/file.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/file.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/file.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/folder_closed.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/folder_closed.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/folder_closed.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/folder_closed.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/folder_drop.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/folder_drop.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/folder_drop.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/folder_drop.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/folder_file.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/folder_file.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/folder_file.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/folder_file.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/folder_open.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/folder_open.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/folder_open.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/folder_open.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/folder_opened.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/folder_opened.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/folder_opened.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/folder_opened.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/opener_closed.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/opener_closed.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/opener_closed.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/opener_closed.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/opener_opened.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/opener_opened.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/opener_opened.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/TreeGrid/opener_opened.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Window/headerIcon.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Window/headerIcon.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Window/headerIcon.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Window/headerIcon.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Window/resizer.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Window/resizer.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Window/resizer.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Window/resizer.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Window/resizer_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Window/resizer_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Window/resizer_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Window/resizer_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Window/window_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Window/window_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Window/window_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Window/window_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Window/window_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Window/window_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Window/window_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Window/window_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Window/window_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Window/window_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Window/window_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Window/window_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Window/window_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Window/window_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Window/window_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Window/window_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Window/window_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Window/window_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Window/window_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Window/window_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Window/window_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Window/window_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Window/window_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Window/window_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Window/window_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Window/window_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Window/window_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Window/window_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Window/window_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Window/window_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Window/window_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/images/Window/window_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/load_skin.js b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/load_skin.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/load_skin.js.gz b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/load_skin.js.gz
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/load_skin.js.gz and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/load_skin.js.gz differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/skin_styles.css b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/skin_styles.css
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/skin_styles.css.gz b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/skin_styles.css.gz
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/skin_styles.css.gz and b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/skin_styles.css.gz differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/unsupported_browser.html b/sm-shop/src/main/webapp/resources/smart-client/skins/EnterpriseBlue/unsupported_browser.html
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/accept.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/accept.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/accept.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/accept.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/add.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/add.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/add.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/add.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/add_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/add_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/add_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/add_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/approve.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/approve.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/approve.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/approve.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/back.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/back.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/back.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/back.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/back_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/back_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/back_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/back_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/close.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/close.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/close.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/close.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/close_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/close_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/close_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/close_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/close_Down.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/close_Down.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/close_Down.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/close_Down.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/close_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/close_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/close_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/close_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/color_swatch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/color_swatch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/color_swatch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/color_swatch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/column_preferences.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/column_preferences.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/column_preferences.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/column_preferences.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/configure.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/configure.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/configure.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/configure.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/download.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/download.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/download.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/download.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/edit.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/edit.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/edit.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/edit.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/edit_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/edit_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/edit_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/edit_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/exclamation.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/exclamation.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/exclamation.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/exclamation.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/filter.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/filter.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/filter.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/filter.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/first.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/first.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/first.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/first.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/forward.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/forward.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/forward.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/forward.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/forward_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/forward_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/forward_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/forward_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/freezeLeft.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/freezeLeft.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/freezeLeft.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/freezeLeft.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/freezeRight.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/freezeRight.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/freezeRight.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/freezeRight.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/groupby.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/groupby.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/groupby.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/groupby.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/help.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/help.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/help.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/help.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/last.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/last.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/last.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/last.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/next.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/next.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/next.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/next.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/ok.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/ok.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/ok.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/ok.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/plus.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/plus.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/plus.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/plus.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/plus_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/plus_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/plus_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/plus_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/prev.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/prev.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/prev.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/prev.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/print.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/print.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/print.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/print.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/redo.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/redo.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/redo.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/redo.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/refresh.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/refresh.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/refresh.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/refresh.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/remove.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/remove.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/remove.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/remove.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/remove_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/remove_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/remove_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/remove_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/save.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/save.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/save.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/save.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/search.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/search.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/search.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/search.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/sort_ascending.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/sort_ascending.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/sort_ascending.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/sort_ascending.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/sort_descending.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/sort_descending.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/sort_descending.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/sort_descending.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/text_linespacing.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/text_linespacing.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/text_linespacing.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/text_linespacing.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/undo.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/undo.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/undo.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/undo.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/unfreeze.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/unfreeze.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/unfreeze.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/unfreeze.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/ungroup.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/ungroup.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/ungroup.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/ungroup.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/view.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/view.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/view.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/actions/view.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/black.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/black.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/black.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/black.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/blank.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/blank.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/blank.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/blank.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Disabled_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Disabled_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Disabled_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Disabled_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Disabled_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Disabled_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Disabled_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Disabled_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Disabled_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Disabled_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Disabled_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Disabled_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Down_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Down_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Down_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Down_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Down_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Down_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Down_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Down_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Down_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Down_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Down_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Down_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Over_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Over_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Over_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Over_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Over_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Over_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Over_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Over_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Over_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Over_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Over_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Over_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Selected_Down_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Selected_Down_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Selected_Down_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Selected_Down_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Selected_Down_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Selected_Down_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Selected_Down_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Selected_Down_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Selected_Down_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Selected_Down_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Selected_Down_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Selected_Down_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Selected_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Selected_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Selected_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Selected_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Selected_Over_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Selected_Over_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Selected_Over_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Selected_Over_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Selected_Over_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Selected_Over_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Selected_Over_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Selected_Over_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Selected_Over_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Selected_Over_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Selected_Over_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Selected_Over_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Selected_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Selected_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Selected_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Selected_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Selected_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Selected_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Selected_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_Selected_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/button/button_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ColorPicker/crosshair.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ColorPicker/crosshair.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ColorPicker/crosshair.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ColorPicker/crosshair.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ColorPicker/spectrum.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ColorPicker/spectrum.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ColorPicker/spectrum.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ColorPicker/spectrum.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/controls/comboBoxPicker.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/controls/comboBoxPicker.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/controls/comboBoxPicker.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/controls/comboBoxPicker.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/controls/comboBoxPicker_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/controls/comboBoxPicker_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/controls/comboBoxPicker_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/controls/comboBoxPicker_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/controls/comboBoxPicker_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/controls/comboBoxPicker_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/controls/comboBoxPicker_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/controls/comboBoxPicker_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/controls/date_control.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/controls/date_control.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/controls/date_control.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/controls/date_control.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/controls/date_control_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/controls/date_control_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/controls/date_control_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/controls/date_control_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/controls/spinner_control_decrease.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/controls/spinner_control_decrease.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/controls/spinner_control_decrease.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/controls/spinner_control_decrease.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/controls/spinner_control_decrease_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/controls/spinner_control_decrease_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/controls/spinner_control_decrease_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/controls/spinner_control_decrease_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/controls/spinner_control_decrease_Focused.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/controls/spinner_control_decrease_Focused.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/controls/spinner_control_decrease_Focused.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/controls/spinner_control_decrease_Focused.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/controls/spinner_control_increase.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/controls/spinner_control_increase.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/controls/spinner_control_increase.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/controls/spinner_control_increase.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/controls/spinner_control_increase_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/controls/spinner_control_increase_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/controls/spinner_control_increase_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/controls/spinner_control_increase_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/controls/spinner_control_increase_Focused.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/controls/spinner_control_increase_Focused.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/controls/spinner_control_increase_Focused.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/controls/spinner_control_increase_Focused.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/cssButton/button_Disabled_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/cssButton/button_Disabled_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/cssButton/button_Disabled_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/cssButton/button_Disabled_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/cssButton/button_Down_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/cssButton/button_Down_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/cssButton/button_Down_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/cssButton/button_Down_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/cssButton/button_Over_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/cssButton/button_Over_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/cssButton/button_Over_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/cssButton/button_Over_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/cssButton/button_Selected_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/cssButton/button_Selected_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/cssButton/button_Selected_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/cssButton/button_Selected_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/cssButton/button_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/cssButton/button_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/cssButton/button_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/cssButton/button_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/arrow_closed.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/arrow_closed.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/arrow_closed.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/arrow_closed.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/arrow_closed_down.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/arrow_closed_down.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/arrow_closed_down.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/arrow_closed_down.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/arrow_closed_left.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/arrow_closed_left.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/arrow_closed_left.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/arrow_closed_left.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/arrow_closed_right.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/arrow_closed_right.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/arrow_closed_right.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/arrow_closed_right.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/arrow_open.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/arrow_open.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/arrow_open.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/arrow_open.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/arrow_open_down.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/arrow_open_down.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/arrow_open_down.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/arrow_open_down.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/arrow_open_left.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/arrow_open_left.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/arrow_open_left.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/arrow_open_left.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/arrow_open_right.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/arrow_open_right.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/arrow_open_right.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/arrow_open_right.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/arrow_open_up.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/arrow_open_up.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/arrow_open_up.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/arrow_open_up.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/arrow_opening.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/arrow_opening.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/arrow_opening.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/arrow_opening.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/close.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/close.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/close.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/close.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/close_over.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/close_over.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/close_over.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/close_over.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/colHeader.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/colHeader.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/colHeader.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/colHeader.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/colHeaderDisabled.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/colHeaderDisabled.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/colHeaderDisabled.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/colHeaderDisabled.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/colHeaderLabel.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/colHeaderLabel.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/colHeaderLabel.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/colHeaderLabel.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/colHeaderLabelDown.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/colHeaderLabelDown.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/colHeaderLabelDown.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/colHeaderLabelDown.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/colHeaderOver.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/colHeaderOver.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/colHeaderOver.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/colHeaderOver.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/colHeaderSelected.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/colHeaderSelected.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/colHeaderSelected.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/colHeaderSelected.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/colHeaderSelectedOver.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/colHeaderSelectedOver.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/colHeaderSelectedOver.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/colHeaderSelectedOver.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/header_handle.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/header_handle.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/header_handle.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/header_handle.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/header_handle_over.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/header_handle_over.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/header_handle_over.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/header_handle_over.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/innerHeader.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/innerHeader.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/innerHeader.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/innerHeader.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/innerHeaderDown.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/innerHeaderDown.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/innerHeaderDown.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/innerHeaderDown.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/innerHeaderSelected.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/innerHeaderSelected.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/innerHeaderSelected.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/innerHeaderSelected.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/innerHeaderSelectedOver.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/innerHeaderSelectedOver.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/innerHeaderSelectedOver.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/innerHeaderSelectedOver.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/maximize.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/maximize.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/maximize.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/maximize.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/maximize_over.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/maximize_over.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/maximize_over.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/maximize_over.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/minimize.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/minimize.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/minimize.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/minimize.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/minimize_over.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/minimize_over.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/minimize_over.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/minimize_over.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/rowHeader.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/rowHeader.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/rowHeader.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/rowHeader.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/rowHeaderDisabled.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/rowHeaderDisabled.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/rowHeaderDisabled.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/rowHeaderDisabled.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/rowHeaderLabel.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/rowHeaderLabel.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/rowHeaderLabel.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/rowHeaderLabel.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/rowHeaderLabelDown.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/rowHeaderLabelDown.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/rowHeaderLabelDown.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/rowHeaderLabelDown.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/rowHeaderLabelSelected.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/rowHeaderLabelSelected.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/rowHeaderLabelSelected.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/rowHeaderLabelSelected.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/rowHeaderOver.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/rowHeaderOver.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/rowHeaderOver.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/rowHeaderOver.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/rowHeaderSelected.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/rowHeaderSelected.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/rowHeaderSelected.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/rowHeaderSelected.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/rowHeaderSelectedOver.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/rowHeaderSelectedOver.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/rowHeaderSelectedOver.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/rowHeaderSelectedOver.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/sort_down.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/sort_down.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/sort_down.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/sort_down.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/sort_down_over.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/sort_down_over.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/sort_down_over.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/sort_down_over.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/sort_down_selected.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/sort_down_selected.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/sort_down_selected.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/sort_down_selected.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/sort_down_selected_over.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/sort_down_selected_over.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/sort_down_selected_over.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/sort_down_selected_over.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/sort_up.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/sort_up.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/sort_up.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/sort_up.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/sort_up_over.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/sort_up_over.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/sort_up_over.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/sort_up_over.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/sort_up_selected.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/sort_up_selected.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/sort_up_selected.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/sort_up_selected.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/sort_up_selected_over.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/sort_up_selected_over.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/sort_up_selected_over.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/CubeGrid/sort_up_selected_over.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DatabaseBrowser/column.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DatabaseBrowser/column.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DatabaseBrowser/column.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DatabaseBrowser/column.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DatabaseBrowser/data.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DatabaseBrowser/data.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DatabaseBrowser/data.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DatabaseBrowser/data.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DateChooser/arrow_left.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DateChooser/arrow_left.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DateChooser/arrow_left.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DateChooser/arrow_left.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DateChooser/arrow_right.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DateChooser/arrow_right.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DateChooser/arrow_right.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DateChooser/arrow_right.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DateChooser/doubleArrow_left.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DateChooser/doubleArrow_left.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DateChooser/doubleArrow_left.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DateChooser/doubleArrow_left.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DateChooser/doubleArrow_right.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DateChooser/doubleArrow_right.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DateChooser/doubleArrow_right.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DateChooser/doubleArrow_right.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Dialog/ask.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Dialog/ask.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Dialog/ask.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Dialog/ask.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Dialog/confirm.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Dialog/confirm.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Dialog/confirm.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Dialog/confirm.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Dialog/error.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Dialog/error.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Dialog/error.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Dialog/error.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Dialog/notify.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Dialog/notify.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Dialog/notify.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Dialog/notify.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Dialog/say.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Dialog/say.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Dialog/say.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Dialog/say.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Dialog/stop.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Dialog/stop.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Dialog/stop.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Dialog/stop.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Dialog/warn copy.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Dialog/warn copy.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Dialog/warn copy.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Dialog/warn copy.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Dialog/warn.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Dialog/warn.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Dialog/warn.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Dialog/warn.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/checked.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/checked.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/checked.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/checked.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/checked_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/checked_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/checked_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/checked_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/checked_Down.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/checked_Down.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/checked_Down.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/checked_Down.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/ColorPicker_icon.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/ColorPicker_icon.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/ColorPicker_icon.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/ColorPicker_icon.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/ColorPicker_icon_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/ColorPicker_icon_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/ColorPicker_icon_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/ColorPicker_icon_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/date_control.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/date_control.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/date_control.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/date_control.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/date_control_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/date_control_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/date_control_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/date_control_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/default_formItem_icon.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/default_formItem_icon.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/default_formItem_icon.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/default_formItem_icon.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/default_formItem_icon_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/default_formItem_icon_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/default_formItem_icon_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/default_formItem_icon_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/default_formItem_icon_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/default_formItem_icon_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/default_formItem_icon_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/default_formItem_icon_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/partialcheck.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/partialcheck.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/partialcheck.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/partialcheck.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/PopUpTextAreaEditor_icon.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/PopUpTextAreaEditor_icon.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/PopUpTextAreaEditor_icon.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/PopUpTextAreaEditor_icon.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/PropSheet_ColorPicker_icon.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/PropSheet_ColorPicker_icon.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/PropSheet_ColorPicker_icon.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/PropSheet_ColorPicker_icon.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/PropSheet_pickbutton.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/PropSheet_pickbutton.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/PropSheet_pickbutton.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/PropSheet_pickbutton.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/PropSheet_pickbutton_Disabled.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/PropSheet_pickbutton_Disabled.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/PropSheet_pickbutton_Disabled.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/PropSheet_pickbutton_Disabled.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/Remove_icon.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/Remove_icon.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/Remove_icon.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/Remove_icon.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/Remove_icon_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/Remove_icon_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/Remove_icon_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/Remove_icon_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/Remove_icon_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/Remove_icon_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/Remove_icon_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/Remove_icon_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/spinner_control_decrease.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/spinner_control_decrease.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/spinner_control_decrease.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/spinner_control_decrease.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/spinner_control_decrease_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/spinner_control_decrease_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/spinner_control_decrease_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/spinner_control_decrease_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/spinner_control_decrease_Focused.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/spinner_control_decrease_Focused.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/spinner_control_decrease_Focused.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/spinner_control_decrease_Focused.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/spinner_control_increase.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/spinner_control_increase.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/spinner_control_increase.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/spinner_control_increase.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/spinner_control_increase_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/spinner_control_increase_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/spinner_control_increase_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/spinner_control_increase_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/spinner_control_increase_Focused.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/spinner_control_increase_Focused.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/spinner_control_increase_Focused.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/spinner_control_increase_Focused.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/text_control.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/text_control.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/text_control.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/text_control.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/text_control_Disabled.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/text_control_Disabled.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/text_control_Disabled.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/text_control_Disabled.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/text_control_Over.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/text_control_Over.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/text_control_Over.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/text_control_Over.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/unchecked.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/unchecked.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/unchecked.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/unchecked.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/unchecked_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/unchecked_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/unchecked_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/unchecked_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/unchecked_Down.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/unchecked_Down.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/unchecked_Down.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/unchecked_Down.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/unsetcheck.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/unsetcheck.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/unsetcheck.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/unsetcheck.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/unsetcheck_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/unsetcheck_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/unsetcheck_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/unsetcheck_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/unsetcheck_Down.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/unsetcheck_Down.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/unsetcheck_Down.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/unsetcheck_Down.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/unsetcheck_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/unsetcheck_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/unsetcheck_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/DynamicForm/unsetcheck_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/edges/edge_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/edges/edge_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/edges/edge_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/edges/edge_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/edges/edge_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/edges/edge_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/edges/edge_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/edges/edge_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/edges/edge_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/edges/edge_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/edges/edge_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/edges/edge_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/edges/edge_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/edges/edge_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/edges/edge_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/edges/edge_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/edges/edge_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/edges/edge_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/edges/edge_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/edges/edge_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/edges/edge_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/edges/edge_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/edges/edge_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/edges/edge_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/edges/edge_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/edges/edge_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/edges/edge_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/edges/edge_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/edges/edge_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/edges/edge_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/edges/edge_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/edges/edge_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/FileBrowser/createNewFolder.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/FileBrowser/createNewFolder.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/FileBrowser/createNewFolder.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/FileBrowser/createNewFolder.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/FileBrowser/file.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/FileBrowser/file.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/FileBrowser/file.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/FileBrowser/file.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/FileBrowser/folder.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/FileBrowser/folder.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/FileBrowser/folder.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/FileBrowser/folder.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/FileBrowser/previousFolder.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/FileBrowser/previousFolder.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/FileBrowser/previousFolder.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/FileBrowser/previousFolder.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/FileBrowser/refresh.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/FileBrowser/refresh.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/FileBrowser/refresh.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/FileBrowser/refresh.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/FileBrowser/upOneLevel.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/FileBrowser/upOneLevel.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/FileBrowser/upOneLevel.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/FileBrowser/upOneLevel.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/arrow_down.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/arrow_down.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/arrow_down.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/arrow_down.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/arrow_down_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/arrow_down_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/arrow_down_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/arrow_down_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/arrow_down_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/arrow_down_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/arrow_down_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/arrow_down_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/arrow_left.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/arrow_left.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/arrow_left.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/arrow_left.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/arrow_left_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/arrow_left_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/arrow_left_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/arrow_left_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/arrow_left_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/arrow_left_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/arrow_left_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/arrow_left_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/arrow_right.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/arrow_right.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/arrow_right.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/arrow_right.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/arrow_right_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/arrow_right_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/arrow_right_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/arrow_right_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/arrow_right_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/arrow_right_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/arrow_right_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/arrow_right_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/arrow_up.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/arrow_up.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/arrow_up.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/arrow_up.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/arrow_up_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/arrow_up_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/arrow_up_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/arrow_up_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/arrow_up_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/arrow_up_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/arrow_up_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/arrow_up_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/calculator.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/calculator.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/calculator.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/calculator.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/calculator_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/calculator_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/calculator_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/calculator_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/calculator_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/calculator_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/calculator_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/calculator_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/cart.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/cart.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/cart.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/cart.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/cart_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/cart_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/cart_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/cart_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/cart_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/cart_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/cart_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/cart_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/cascade.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/cascade.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/cascade.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/cascade.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/cascade_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/cascade_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/cascade_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/cascade_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/cascade_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/cascade_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/cascade_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/cascade_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/clipboard.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/clipboard.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/clipboard.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/clipboard.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/clipboard_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/clipboard_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/clipboard_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/clipboard_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/clipboard_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/clipboard_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/clipboard_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/clipboard_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/clock.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/clock.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/clock.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/clock.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/clock_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/clock_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/clock_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/clock_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/clock_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/clock_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/clock_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/clock_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/close.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/close.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/close.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/close.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/close_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/close_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/close_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/close_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/close_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/close_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/close_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/close_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/comment.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/comment.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/comment.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/comment.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/comment_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/comment_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/comment_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/comment_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/comment_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/comment_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/comment_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/comment_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/document b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/document
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/document and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/document differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/document.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/document.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/document.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/document.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/document_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/document_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/document_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/document_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/double_arrow_down.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/double_arrow_down.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/double_arrow_down.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/double_arrow_down.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/double_arrow_down_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/double_arrow_down_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/double_arrow_down_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/double_arrow_down_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/double_arrow_down_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/double_arrow_down_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/double_arrow_down_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/double_arrow_down_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/double_arrow_left.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/double_arrow_left.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/double_arrow_left.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/double_arrow_left.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/double_arrow_left_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/double_arrow_left_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/double_arrow_left_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/double_arrow_left_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/double_arrow_left_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/double_arrow_left_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/double_arrow_left_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/double_arrow_left_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/double_arrow_right.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/double_arrow_right.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/double_arrow_right.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/double_arrow_right.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/double_arrow_right_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/double_arrow_right_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/double_arrow_right_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/double_arrow_right_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/double_arrow_right_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/double_arrow_right_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/double_arrow_right_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/double_arrow_right_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/double_arrow_up.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/double_arrow_up.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/double_arrow_up.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/double_arrow_up.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/double_arrow_up_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/double_arrow_up_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/double_arrow_up_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/double_arrow_up_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/double_arrow_up_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/double_arrow_up_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/double_arrow_up_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/double_arrow_up_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/favourite.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/favourite.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/favourite.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/favourite.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/favourite_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/favourite_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/favourite_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/favourite_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/favourite_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/favourite_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/favourite_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/favourite_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/find.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/find.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/find.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/find.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/find_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/find_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/find_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/find_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/find_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/find_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/find_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/find_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/help.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/help.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/help.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/help.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/help_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/help_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/help_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/help_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/help_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/help_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/help_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/help_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/home.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/home.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/home.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/home.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/home_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/home_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/home_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/home_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/home_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/home_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/home_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/home_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/mail.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/mail.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/mail.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/mail.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/mail_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/mail_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/mail_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/mail_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/mail_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/mail_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/mail_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/mail_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/maximize.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/maximize.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/maximize.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/maximize.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/maximize_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/maximize_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/maximize_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/maximize_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/maximize_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/maximize_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/maximize_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/maximize_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/minimize.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/minimize.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/minimize.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/minimize.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/minimize_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/minimize_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/minimize_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/minimize_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/minimize_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/minimize_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/minimize_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/minimize_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/minus.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/minus.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/minus.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/minus.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/minus_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/minus_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/minus_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/minus_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/minus_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/minus_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/minus_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/minus_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/person.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/person.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/person.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/person.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/person_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/person_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/person_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/person_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/person_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/person_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/person_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/person_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/pin_down.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/pin_down.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/pin_down.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/pin_down.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/pin_down_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/pin_down_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/pin_down_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/pin_down_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/pin_down_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/pin_down_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/pin_down_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/pin_down_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/pin_left.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/pin_left.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/pin_left.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/pin_left.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/pin_left_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/pin_left_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/pin_left_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/pin_left_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/pin_left_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/pin_left_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/pin_left_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/pin_left_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/plus.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/plus.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/plus.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/plus.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/plus_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/plus_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/plus_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/plus_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/plus_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/plus_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/plus_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/plus_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/print.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/print.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/print.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/print.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/print_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/print_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/print_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/print_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/print_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/print_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/print_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/print_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/refresh.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/refresh.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/refresh.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/refresh.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/refresh_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/refresh_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/refresh_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/refresh_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/refresh_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/refresh_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/refresh_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/refresh_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/refresh_thin.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/refresh_thin.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/refresh_thin.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/refresh_thin.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/refresh_thin_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/refresh_thin_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/refresh_thin_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/refresh_thin_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/refresh_thin_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/refresh_thin_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/refresh_thin_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/refresh_thin_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/save.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/save.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/save.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/save.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/save_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/save_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/save_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/save_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/save_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/save_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/save_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/save_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/settings.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/settings.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/settings.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/settings.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/settings_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/settings_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/settings_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/settings_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/settings_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/settings_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/settings_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/settings_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/transfer.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/transfer.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/transfer.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/transfer.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/transfer_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/transfer_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/transfer_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/transfer_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/transfer_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/transfer_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/transfer_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/transfer_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/trash.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/trash.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/trash.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/trash.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/trash_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/trash_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/trash_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/trash_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/trash_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/trash_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/trash_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/trash_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/zoom.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/zoom.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/zoom.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/zoom.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/zoom_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/zoom_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/zoom_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/zoom_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/zoom_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/zoom_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/zoom_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/headerIcons/zoom_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ImgButton/button.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ImgButton/button.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ImgButton/button.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ImgButton/button.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ImgButton/button_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ImgButton/button_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ImgButton/button_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ImgButton/button_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ImgButton/button_Down.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ImgButton/button_Down.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ImgButton/button_Down.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ImgButton/button_Down.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ImgButton/button_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ImgButton/button_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ImgButton/button_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ImgButton/button_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/expander_closed.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/expander_closed.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/expander_closed.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/expander_closed.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/expander_opened.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/expander_opened.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/expander_opened.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/expander_opened.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/formula_menuItem.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/formula_menuItem.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/formula_menuItem.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/formula_menuItem.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/group_closed.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/group_closed.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/group_closed.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/group_closed.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/group_opened.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/group_opened.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/group_opened.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/group_opened.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/header.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/header.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/header.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/header.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/header_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/header_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/header_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/header_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/header_Down.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/header_Down.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/header_Down.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/header_Down.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/header_menu.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/header_menu.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/header_menu.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/header_menu.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/header_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/header_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/header_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/header_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/header_Selected.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/header_Selected.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/header_Selected.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/header_Selected.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/header_Selected_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/header_Selected_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/header_Selected_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/header_Selected_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/header_Selected_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/header_Selected_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/header_Selected_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/header_Selected_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/headerSprite.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/headerSprite.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/headerSprite.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/headerSprite.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/row.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/row.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/row.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/row.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/row_collapsed.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/row_collapsed.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/row_collapsed.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/row_collapsed.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/row_expanded.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/row_expanded.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/row_expanded.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/row_expanded.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/row_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/row_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/row_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/row_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/row_Over_Selected.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/row_Over_Selected.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/row_Over_Selected.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/row_Over_Selected.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/row_Selected.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/row_Selected.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/row_Selected.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/row_Selected.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/row_Selected_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/row_Selected_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/row_Selected_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/row_Selected_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/sort_ascending.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/sort_ascending.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/sort_ascending.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/sort_ascending.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/sort_descending.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/sort_descending.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/sort_descending.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ListGrid/sort_descending.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/loading.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/loading.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/loading.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/loading.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/loadingSmall.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/loadingSmall.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/loadingSmall.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/loadingSmall.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/check.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/check.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/check.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/check.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/check_disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/check_disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/check_disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/check_disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/menu_background.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/menu_background.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/menu_background.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/menu_background.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/menu_button.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/menu_button.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/menu_button.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/menu_button.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/menu_button_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/menu_button_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/menu_button_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/menu_button_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/menu_button_up.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/menu_button_up.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/menu_button_up.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/menu_button_up.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/menu_button_up_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/menu_button_up_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/menu_button_up_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/menu_button_up_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/menu_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/menu_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/menu_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/menu_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/menu_right.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/menu_right.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/menu_right.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/menu_right.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/menu_rollover.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/menu_rollover.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/menu_rollover.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/menu_rollover.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/menu_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/menu_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/menu_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/menu_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/menu_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/menu_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/menu_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/menu_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/submenu.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/submenu.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/submenu.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/submenu.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/submenu_disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/submenu_disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/submenu_disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/submenu_disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/submenu_disabled_left.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/submenu_disabled_left.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/submenu_disabled_left.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/submenu_disabled_left.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/submenu_down.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/submenu_down.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/submenu_down.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/submenu_down.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/submenu_left.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/submenu_left.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/submenu_left.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Menu/submenu_left.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/MultiUploadItem/icon_add_files.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/MultiUploadItem/icon_add_files.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/MultiUploadItem/icon_add_files.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/MultiUploadItem/icon_add_files.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/MultiUploadItem/icon_add_files_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/MultiUploadItem/icon_add_files_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/MultiUploadItem/icon_add_files_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/MultiUploadItem/icon_add_files_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/MultiUploadItem/icon_remove_files.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/MultiUploadItem/icon_remove_files.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/MultiUploadItem/icon_remove_files.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/MultiUploadItem/icon_remove_files.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/MultiUploadItem/icon_remove_files_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/MultiUploadItem/icon_remove_files_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/MultiUploadItem/icon_remove_files_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/MultiUploadItem/icon_remove_files_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/opacity.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/opacity.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/opacity.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/opacity.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Panel/panel_header.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Panel/panel_header.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Panel/panel_header.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Panel/panel_header.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/clear_picker.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/clear_picker.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/clear_picker.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/clear_picker.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/clear_picker_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/clear_picker_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/clear_picker_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/clear_picker_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/clear_picker_Down.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/clear_picker_Down.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/clear_picker_Down.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/clear_picker_Down.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/clear_picker_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/clear_picker_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/clear_picker_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/clear_picker_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/comboBoxPicker.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/comboBoxPicker.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/comboBoxPicker.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/comboBoxPicker.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/comboBoxPicker_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/comboBoxPicker_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/comboBoxPicker_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/comboBoxPicker_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/comboBoxPicker_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/comboBoxPicker_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/comboBoxPicker_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/comboBoxPicker_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/date_picker.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/date_picker.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/date_picker.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/date_picker.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/date_picker_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/date_picker_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/date_picker_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/date_picker_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/date_picker_Down.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/date_picker_Down.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/date_picker_Down.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/date_picker_Down.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/date_picker_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/date_picker_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/date_picker_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/date_picker_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/refresh_picker.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/refresh_picker.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/refresh_picker.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/refresh_picker.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/refresh_picker_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/refresh_picker_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/refresh_picker_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/refresh_picker_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/refresh_picker_Down.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/refresh_picker_Down.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/refresh_picker_Down.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/refresh_picker_Down.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/refresh_picker_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/refresh_picker_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/refresh_picker_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/refresh_picker_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/search_picker.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/search_picker.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/search_picker.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/search_picker.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/search_picker_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/search_picker_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/search_picker_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/search_picker_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/search_picker_Down.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/search_picker_Down.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/search_picker_Down.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/search_picker_Down.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/search_picker_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/search_picker_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/search_picker_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/pickers/search_picker_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_Disabled_h_empty_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_Disabled_h_empty_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_Disabled_h_empty_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_Disabled_h_empty_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_Disabled_h_empty_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_Disabled_h_empty_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_Disabled_h_empty_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_Disabled_h_empty_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_Disabled_h_empty_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_Disabled_h_empty_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_Disabled_h_empty_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_Disabled_h_empty_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_Disabled_h_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_Disabled_h_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_Disabled_h_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_Disabled_h_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_Disabled_h_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_Disabled_h_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_Disabled_h_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_Disabled_h_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_Disabled_h_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_Disabled_h_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_Disabled_h_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_Disabled_h_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_Disabled_v_empty_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_Disabled_v_empty_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_Disabled_v_empty_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_Disabled_v_empty_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_Disabled_v_empty_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_Disabled_v_empty_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_Disabled_v_empty_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_Disabled_v_empty_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_Disabled_v_empty_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_Disabled_v_empty_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_Disabled_v_empty_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_Disabled_v_empty_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_Disabled_v_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_Disabled_v_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_Disabled_v_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_Disabled_v_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_Disabled_v_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_Disabled_v_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_Disabled_v_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_Disabled_v_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_Disabled_v_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_Disabled_v_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_Disabled_v_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_Disabled_v_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_h_empty_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_h_empty_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_h_empty_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_h_empty_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_h_empty_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_h_empty_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_h_empty_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_h_empty_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_h_empty_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_h_empty_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_h_empty_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_h_empty_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_h_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_h_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_h_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_h_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_h_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_h_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_h_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_h_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_h_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_h_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_h_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_h_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_v_empty_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_v_empty_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_v_empty_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_v_empty_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_v_empty_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_v_empty_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_v_empty_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_v_empty_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_v_empty_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_v_empty_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_v_empty_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_v_empty_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_v_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_v_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_v_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_v_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_v_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_v_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_v_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_v_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_v_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_v_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_v_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Progressbar/progressbar_v_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/readme.txt b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/readme.txt
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RecordEditor/add.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RecordEditor/add.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RecordEditor/add.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RecordEditor/add.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RecordEditor/add_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RecordEditor/add_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RecordEditor/add_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RecordEditor/add_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RecordEditor/add_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RecordEditor/add_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RecordEditor/add_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RecordEditor/add_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RecordEditor/check.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RecordEditor/check.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RecordEditor/check.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RecordEditor/check.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RecordEditor/filter.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RecordEditor/filter.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RecordEditor/filter.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RecordEditor/filter.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RecordEditor/filter_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RecordEditor/filter_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RecordEditor/filter_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RecordEditor/filter_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RecordEditor/filter_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RecordEditor/filter_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RecordEditor/filter_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RecordEditor/filter_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RecordEditor/query.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RecordEditor/query.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RecordEditor/query.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RecordEditor/query.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/background_color.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/background_color.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/background_color.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/background_color.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/background_color_Disabled.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/background_color_Disabled.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/background_color_Disabled.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/background_color_Disabled.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/copy.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/copy.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/copy.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/copy.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/copy_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/copy_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/copy_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/copy_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/cut.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/cut.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/cut.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/cut.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/cut_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/cut_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/cut_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/cut_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/indent.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/indent.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/indent.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/indent.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/indent_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/indent_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/indent_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/indent_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/link_new.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/link_new.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/link_new.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/link_new.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/outdent.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/outdent.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/outdent.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/outdent.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/outdent_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/outdent_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/outdent_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/outdent_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/paste.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/paste.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/paste.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/paste.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/paste_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/paste_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/paste_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/paste_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/separator.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/separator.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/separator.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/separator.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/separator_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/separator_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/separator_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/separator_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/text_align_center.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/text_align_center.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/text_align_center.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/text_align_center.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/text_align_center_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/text_align_center_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/text_align_center_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/text_align_center_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/text_align_justified.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/text_align_justified.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/text_align_justified.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/text_align_justified.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/text_align_justified_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/text_align_justified_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/text_align_justified_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/text_align_justified_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/text_align_left.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/text_align_left.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/text_align_left.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/text_align_left.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/text_align_left_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/text_align_left_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/text_align_left_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/text_align_left_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/text_align_right.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/text_align_right.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/text_align_right.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/text_align_right.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/text_align_right_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/text_align_right_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/text_align_right_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/text_align_right_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/text_bold.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/text_bold.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/text_bold.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/text_bold.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/text_color.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/text_color.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/text_color.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/text_color.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/text_color_Disabled.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/text_color_Disabled.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/text_color_Disabled.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/text_color_Disabled.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/text_italic.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/text_italic.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/text_italic.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/text_italic.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/text_underline.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/text_underline.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/text_underline.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/RichTextEditor/text_underline.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SchemaViewer/complexType.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SchemaViewer/complexType.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SchemaViewer/complexType.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SchemaViewer/complexType.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SchemaViewer/operation.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SchemaViewer/operation.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SchemaViewer/operation.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SchemaViewer/operation.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SchemaViewer/simpleType.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SchemaViewer/simpleType.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SchemaViewer/simpleType.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SchemaViewer/simpleType.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_corner.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_corner.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_corner.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_corner.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_Disabled_corner.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_Disabled_corner.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_Disabled_corner.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_Disabled_corner.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_Disabled_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_Disabled_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_Disabled_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_Disabled_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_Disabled_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_Disabled_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_Disabled_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_Disabled_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_Disabled_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_Disabled_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_Disabled_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_Disabled_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_Disabled_track.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_Disabled_track.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_Disabled_track.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_Disabled_track.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_Down_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_Down_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_Down_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_Down_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_Down_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_Down_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_Down_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_Down_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_Down_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_Down_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_Down_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_Down_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_Down_track.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_Down_track.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_Down_track.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_Down_track.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_Over_corner.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_Over_corner.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_Over_corner.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_Over_corner.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_Over_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_Over_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_Over_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_Over_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_Over_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_Over_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_Over_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_Over_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_Over_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_Over_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_Over_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_Over_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_Over_track.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_Over_track.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_Over_track.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_Over_track.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_track.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_track.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_track.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hscroll_track.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hthumb_Disabled_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hthumb_Disabled_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hthumb_Disabled_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hthumb_Disabled_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hthumb_Disabled_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hthumb_Disabled_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hthumb_Disabled_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hthumb_Disabled_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hthumb_Disabled_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hthumb_Disabled_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hthumb_Disabled_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hthumb_Disabled_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hthumb_Down_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hthumb_Down_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hthumb_Down_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hthumb_Down_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hthumb_Down_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hthumb_Down_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hthumb_Down_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hthumb_Down_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hthumb_Down_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hthumb_Down_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hthumb_Down_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hthumb_Down_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hthumb_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hthumb_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hthumb_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hthumb_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hthumb_grip.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hthumb_grip.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hthumb_grip.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hthumb_grip.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hthumb_grip_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hthumb_grip_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hthumb_grip_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hthumb_grip_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hthumb_Over_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hthumb_Over_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hthumb_Over_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hthumb_Over_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hthumb_Over_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hthumb_Over_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hthumb_Over_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hthumb_Over_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hthumb_Over_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hthumb_Over_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hthumb_Over_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hthumb_Over_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hthumb_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hthumb_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hthumb_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hthumb_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hthumb_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hthumb_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hthumb_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/hthumb_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_corner.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_corner.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_corner.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_corner.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_Disabled_corner.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_Disabled_corner.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_Disabled_corner.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_Disabled_corner.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_Disabled_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_Disabled_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_Disabled_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_Disabled_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_Disabled_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_Disabled_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_Disabled_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_Disabled_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_Disabled_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_Disabled_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_Disabled_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_Disabled_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_Disabled_track.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_Disabled_track.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_Disabled_track.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_Disabled_track.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_Down_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_Down_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_Down_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_Down_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_Down_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_Down_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_Down_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_Down_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_Down_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_Down_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_Down_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_Down_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_Down_track.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_Down_track.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_Down_track.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_Down_track.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_Over_corner.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_Over_corner.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_Over_corner.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_Over_corner.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_Over_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_Over_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_Over_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_Over_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_Over_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_Over_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_Over_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_Over_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_Over_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_Over_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_Over_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_Over_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_Over_track.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_Over_track.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_Over_track.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_Over_track.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_track.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_track.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_track.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vscroll_track.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vthumb_Disabled_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vthumb_Disabled_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vthumb_Disabled_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vthumb_Disabled_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vthumb_Disabled_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vthumb_Disabled_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vthumb_Disabled_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vthumb_Disabled_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vthumb_Disabled_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vthumb_Disabled_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vthumb_Disabled_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vthumb_Disabled_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vthumb_Down_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vthumb_Down_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vthumb_Down_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vthumb_Down_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vthumb_Down_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vthumb_Down_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vthumb_Down_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vthumb_Down_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vthumb_Down_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vthumb_Down_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vthumb_Down_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vthumb_Down_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vthumb_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vthumb_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vthumb_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vthumb_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vthumb_grip.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vthumb_grip.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vthumb_grip.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vthumb_grip.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vthumb_grip_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vthumb_grip_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vthumb_grip_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vthumb_grip_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vthumb_Over_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vthumb_Over_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vthumb_Over_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vthumb_Over_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vthumb_Over_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vthumb_Over_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vthumb_Over_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vthumb_Over_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vthumb_Over_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vthumb_Over_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vthumb_Over_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vthumb_Over_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vthumb_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vthumb_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vthumb_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vthumb_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vthumb_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vthumb_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vthumb_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Scrollbar/vthumb_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_closed_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_closed_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_closed_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_closed_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_closed_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_closed_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_closed_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_closed_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_closed_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_closed_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_closed_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_closed_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_Disabled_closed_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_Disabled_closed_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_Disabled_closed_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_Disabled_closed_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_Disabled_closed_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_Disabled_closed_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_Disabled_closed_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_Disabled_closed_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_Disabled_closed_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_Disabled_closed_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_Disabled_closed_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_Disabled_closed_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_Disabled_opened_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_Disabled_opened_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_Disabled_opened_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_Disabled_opened_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_Disabled_opened_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_Disabled_opened_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_Disabled_opened_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_Disabled_opened_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_Disabled_opened_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_Disabled_opened_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_Disabled_opened_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_Disabled_opened_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_opened_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_opened_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_opened_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_opened_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_opened_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_opened_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_opened_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_opened_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_opened_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_opened_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_opened_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_opened_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_Over_closed_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_Over_closed_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_Over_closed_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_Over_closed_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_Over_closed_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_Over_closed_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_Over_closed_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_Over_closed_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_Over_closed_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_Over_closed_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_Over_closed_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_Over_closed_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_Over_opened_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_Over_opened_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_Over_opened_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_Over_opened_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_Over_opened_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_Over_opened_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_Over_opened_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_Over_opened_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_Over_opened_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_Over_opened_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_Over_opened_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/header_Over_opened_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/opener_closed.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/opener_closed.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/opener_closed.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/opener_closed.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/opener_opened.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/opener_opened.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/opener_opened.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/opener_opened.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/opener_opened_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/opener_opened_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/opener_opened_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/opener_opened_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/opener_opened_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/opener_opened_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/opener_opened_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/opener_opened_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/opener_opened_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/opener_opened_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/opener_opened_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/SectionHeader/opener_opened_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/background.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/background.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/background.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/background.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/progressCursorTracker.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/progressCursorTracker.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/progressCursorTracker.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/progressCursorTracker.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds_center.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds_center.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds_center.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds_center.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds1_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds1_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds1_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds1_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds1_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds1_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds1_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds1_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds1_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds1_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds1_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds1_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds1_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds1_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds1_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds1_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds1_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds1_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds1_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds1_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds1_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds1_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds1_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds1_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds1_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds1_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds1_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds1_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds1_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds1_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds1_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds1_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds10_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds10_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds10_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds10_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds10_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds10_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds10_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds10_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds10_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds10_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds10_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds10_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds10_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds10_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds10_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds10_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds10_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds10_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds10_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds10_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds10_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds10_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds10_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds10_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds10_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds10_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds10_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds10_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds10_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds10_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds10_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds10_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds2_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds2_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds2_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds2_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds2_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds2_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds2_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds2_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds2_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds2_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds2_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds2_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds2_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds2_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds2_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds2_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds2_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds2_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds2_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds2_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds2_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds2_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds2_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds2_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds2_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds2_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds2_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds2_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds2_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds2_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds2_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds2_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds3_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds3_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds3_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds3_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds3_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds3_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds3_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds3_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds3_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds3_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds3_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds3_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds3_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds3_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds3_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds3_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds3_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds3_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds3_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds3_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds3_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds3_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds3_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds3_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds3_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds3_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds3_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds3_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds3_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds3_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds3_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds3_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds4_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds4_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds4_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds4_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds4_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds4_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds4_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds4_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds4_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds4_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds4_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds4_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds4_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds4_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds4_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds4_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds4_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds4_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds4_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds4_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds4_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds4_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds4_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds4_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds4_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds4_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds4_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds4_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds4_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds4_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds4_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds4_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds5_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds5_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds5_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds5_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds5_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds5_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds5_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds5_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds5_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds5_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds5_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds5_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds5_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds5_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds5_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds5_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds5_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds5_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds5_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds5_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds5_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds5_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds5_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds5_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds5_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds5_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds5_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds5_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds5_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds5_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds5_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds5_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds6_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds6_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds6_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds6_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds6_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds6_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds6_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds6_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds6_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds6_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds6_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds6_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds6_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds6_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds6_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds6_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds6_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds6_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds6_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds6_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds6_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds6_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds6_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds6_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds6_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds6_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds6_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds6_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds6_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds6_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds6_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds6_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds7_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds7_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds7_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds7_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds7_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds7_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds7_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds7_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds7_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds7_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds7_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds7_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds7_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds7_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds7_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds7_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds7_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds7_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds7_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds7_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds7_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds7_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds7_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds7_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds7_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds7_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds7_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds7_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds7_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds7_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds7_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds7_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds8_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds8_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds8_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds8_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds8_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds8_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds8_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds8_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds8_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds8_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds8_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds8_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds8_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds8_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds8_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds8_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds8_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds8_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds8_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds8_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds8_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds8_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds8_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds8_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds8_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds8_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds8_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds8_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds8_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds8_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds8_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds8_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds9_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds9_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds9_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds9_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds9_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds9_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds9_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds9_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds9_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds9_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds9_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds9_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds9_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds9_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds9_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds9_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds9_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds9_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds9_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds9_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds9_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds9_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds9_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds9_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds9_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds9_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds9_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds9_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds9_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds9_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds9_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/shared/shadows/ds9_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/hthumb.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/hthumb.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/hthumb.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/hthumb.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/hthumb_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/hthumb_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/hthumb_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/hthumb_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/hthumb_down.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/hthumb_down.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/hthumb_down.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/hthumb_down.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/htrack_Disabled_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/htrack_Disabled_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/htrack_Disabled_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/htrack_Disabled_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/htrack_Disabled_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/htrack_Disabled_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/htrack_Disabled_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/htrack_Disabled_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/htrack_Disabled_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/htrack_Disabled_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/htrack_Disabled_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/htrack_Disabled_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/htrack_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/htrack_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/htrack_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/htrack_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/htrack_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/htrack_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/htrack_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/htrack_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/htrack_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/htrack_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/htrack_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/htrack_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/vthumb.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/vthumb.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/vthumb.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/vthumb.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/vthumb_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/vthumb_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/vthumb_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/vthumb_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/vthumb_down.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/vthumb_down.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/vthumb_down.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/vthumb_down.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/vtrack_Disabled_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/vtrack_Disabled_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/vtrack_Disabled_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/vtrack_Disabled_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/vtrack_Disabled_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/vtrack_Disabled_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/vtrack_Disabled_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/vtrack_Disabled_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/vtrack_Disabled_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/vtrack_Disabled_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/vtrack_Disabled_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/vtrack_Disabled_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/vtrack_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/vtrack_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/vtrack_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/vtrack_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/vtrack_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/vtrack_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/vtrack_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/vtrack_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/vtrack_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/vtrack_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/vtrack_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Slider/vtrack_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Splitbar/hsplit_bg.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Splitbar/hsplit_bg.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Splitbar/hsplit_bg.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Splitbar/hsplit_bg.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Splitbar/hsplit_Disabled_bg.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Splitbar/hsplit_Disabled_bg.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Splitbar/hsplit_Disabled_bg.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Splitbar/hsplit_Disabled_bg.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Splitbar/hsplit_snap.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Splitbar/hsplit_snap.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Splitbar/hsplit_snap.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Splitbar/hsplit_snap.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Splitbar/hsplit_snap_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Splitbar/hsplit_snap_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Splitbar/hsplit_snap_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Splitbar/hsplit_snap_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Splitbar/vsplit_bg.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Splitbar/vsplit_bg.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Splitbar/vsplit_bg.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Splitbar/vsplit_bg.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Splitbar/vsplit_Disabled_bg.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Splitbar/vsplit_Disabled_bg.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Splitbar/vsplit_Disabled_bg.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Splitbar/vsplit_Disabled_bg.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Splitbar/vsplit_snap.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Splitbar/vsplit_snap.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Splitbar/vsplit_snap.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Splitbar/vsplit_snap.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Splitbar/vsplit_snap_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Splitbar/vsplit_snap_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Splitbar/vsplit_snap_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Splitbar/vsplit_snap_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/baseline_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/baseline_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/baseline_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/baseline_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/baseline_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/baseline_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/baseline_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/baseline_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/baseline_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/baseline_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/baseline_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/baseline_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Disabled_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Disabled_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Disabled_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Disabled_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Disabled_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Disabled_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Disabled_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Disabled_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Disabled_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Disabled_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Disabled_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Disabled_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Over_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Over_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Over_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Over_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Over_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Over_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Over_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Over_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Over_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Over_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Over_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Over_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Selected_Disabled_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Selected_Disabled_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Selected_Disabled_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Selected_Disabled_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Selected_Disabled_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Selected_Disabled_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Selected_Disabled_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Selected_Disabled_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Selected_Disabled_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Selected_Disabled_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Selected_Disabled_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Selected_Disabled_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Selected_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Selected_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Selected_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Selected_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Selected_Over_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Selected_Over_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Selected_Over_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Selected_Over_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Selected_Over_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Selected_Over_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Selected_Over_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Selected_Over_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Selected_Over_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Selected_Over_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Selected_Over_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Selected_Over_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Selected_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Selected_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Selected_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Selected_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Selected_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Selected_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Selected_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_Selected_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/bottom/tab_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/close.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/close.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/close.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/close.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/close_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/close_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/close_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/close_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Disabled_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Disabled_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Disabled_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Disabled_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Disabled_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Disabled_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Disabled_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Disabled_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Disabled_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Disabled_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Disabled_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Disabled_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Over_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Over_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Over_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Over_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Over_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Over_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Over_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Over_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Over_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Over_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Over_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Over_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Selected_Disabled_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Selected_Disabled_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Selected_Disabled_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Selected_Disabled_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Selected_Disabled_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Selected_Disabled_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Selected_Disabled_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Selected_Disabled_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Selected_Disabled_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Selected_Disabled_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Selected_Disabled_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Selected_Disabled_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Selected_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Selected_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Selected_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Selected_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Selected_Over_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Selected_Over_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Selected_Over_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Selected_Over_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Selected_Over_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Selected_Over_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Selected_Over_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Selected_Over_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Selected_Over_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Selected_Over_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Selected_Over_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Selected_Over_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Selected_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Selected_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Selected_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Selected_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Selected_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Selected_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Selected_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_Selected_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/left/tab_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/baseline_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/baseline_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/baseline_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/baseline_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/baseline_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/baseline_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/baseline_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/baseline_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/baseline_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/baseline_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/baseline_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/baseline_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/close.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/close.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/close.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/close.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/close_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/close_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/close_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/close_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Disabled_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Disabled_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Disabled_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Disabled_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Disabled_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Disabled_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Disabled_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Disabled_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Disabled_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Disabled_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Disabled_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Disabled_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Over_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Over_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Over_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Over_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Over_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Over_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Over_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Over_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Over_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Over_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Over_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Over_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Selected_Disabled_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Selected_Disabled_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Selected_Disabled_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Selected_Disabled_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Selected_Disabled_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Selected_Disabled_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Selected_Disabled_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Selected_Disabled_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Selected_Disabled_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Selected_Disabled_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Selected_Disabled_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Selected_Disabled_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Selected_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Selected_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Selected_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Selected_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Selected_Over_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Selected_Over_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Selected_Over_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Selected_Over_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Selected_Over_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Selected_Over_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Selected_Over_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Selected_Over_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Selected_Over_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Selected_Over_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Selected_Over_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Selected_Over_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Selected_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Selected_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Selected_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Selected_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Selected_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Selected_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Selected_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_Selected_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/right/tab_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/baseline_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/baseline_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/baseline_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/baseline_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/baseline_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/baseline_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/baseline_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/baseline_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/baseline_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/baseline_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/baseline_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/baseline_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/close.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/close.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/close.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/close.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/close_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/close_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/close_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/close_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Disabled_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Disabled_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Disabled_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Disabled_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Disabled_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Disabled_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Disabled_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Disabled_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Disabled_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Disabled_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Disabled_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Disabled_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Over_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Over_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Over_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Over_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Over_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Over_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Over_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Over_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Over_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Over_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Over_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Over_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Selected_Disabled_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Selected_Disabled_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Selected_Disabled_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Selected_Disabled_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Selected_Disabled_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Selected_Disabled_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Selected_Disabled_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Selected_Disabled_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Selected_Disabled_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Selected_Disabled_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Selected_Disabled_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Selected_Disabled_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Selected_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Selected_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Selected_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Selected_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Selected_Over_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Selected_Over_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Selected_Over_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Selected_Over_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Selected_Over_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Selected_Over_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Selected_Over_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Selected_Over_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Selected_Over_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Selected_Over_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Selected_Over_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Selected_Over_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Selected_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Selected_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Selected_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Selected_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Selected_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Selected_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Selected_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_Selected_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Tab/top/tab_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/close.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/close.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/close.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/close.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/close_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/close_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/close_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/close_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/picker_bottom.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/picker_bottom.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/picker_bottom.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/picker_bottom.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/picker_Disabled_bottom.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/picker_Disabled_bottom.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/picker_Disabled_bottom.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/picker_Disabled_bottom.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/picker_Disabled_left.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/picker_Disabled_left.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/picker_Disabled_left.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/picker_Disabled_left.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/picker_Disabled_right.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/picker_Disabled_right.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/picker_Disabled_right.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/picker_Disabled_right.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/picker_Disabled_top.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/picker_Disabled_top.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/picker_Disabled_top.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/picker_Disabled_top.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/picker_Down_bottom.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/picker_Down_bottom.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/picker_Down_bottom.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/picker_Down_bottom.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/picker_Down_left.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/picker_Down_left.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/picker_Down_left.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/picker_Down_left.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/picker_Down_right.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/picker_Down_right.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/picker_Down_right.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/picker_Down_right.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/picker_Down_top.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/picker_Down_top.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/picker_Down_top.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/picker_Down_top.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/picker_left.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/picker_left.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/picker_left.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/picker_left.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/picker_right.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/picker_right.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/picker_right.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/picker_right.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/picker_top.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/picker_top.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/picker_top.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/picker_top.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_bottom_back.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_bottom_back.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_bottom_back.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_bottom_back.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_bottom_forward.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_bottom_forward.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_bottom_forward.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_bottom_forward.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Disabled_bottom_back.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Disabled_bottom_back.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Disabled_bottom_back.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Disabled_bottom_back.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Disabled_bottom_forward.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Disabled_bottom_forward.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Disabled_bottom_forward.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Disabled_bottom_forward.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Disabled_left_back.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Disabled_left_back.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Disabled_left_back.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Disabled_left_back.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Disabled_left_forward.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Disabled_left_forward.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Disabled_left_forward.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Disabled_left_forward.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Disabled_right_back.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Disabled_right_back.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Disabled_right_back.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Disabled_right_back.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Disabled_right_forward.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Disabled_right_forward.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Disabled_right_forward.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Disabled_right_forward.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Disabled_top_back.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Disabled_top_back.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Disabled_top_back.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Disabled_top_back.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Disabled_top_forward.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Disabled_top_forward.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Disabled_top_forward.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Disabled_top_forward.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Down_bottom_back.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Down_bottom_back.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Down_bottom_back.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Down_bottom_back.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Down_bottom_forward.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Down_bottom_forward.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Down_bottom_forward.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Down_bottom_forward.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Down_left_back.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Down_left_back.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Down_left_back.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Down_left_back.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Down_left_forward.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Down_left_forward.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Down_left_forward.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Down_left_forward.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Down_right_back.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Down_right_back.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Down_right_back.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Down_right_back.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Down_right_forward.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Down_right_forward.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Down_right_forward.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Down_right_forward.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Down_top_back.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Down_top_back.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Down_top_back.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Down_top_back.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Down_top_forward.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Down_top_forward.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Down_top_forward.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_Down_top_forward.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_left_back.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_left_back.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_left_back.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_left_back.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_left_forward.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_left_forward.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_left_forward.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_left_forward.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_right_back.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_right_back.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_right_back.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_right_back.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_right_forward.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_right_forward.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_right_forward.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_right_forward.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_top_back.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_top_back.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_top_back.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_top_back.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_top_forward.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_top_forward.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_top_forward.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TabSet/scroll_top_forward.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TileGrid/tileOver.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TileGrid/tileOver.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TileGrid/tileOver.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TileGrid/tileOver.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/background.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/background.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/background.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/background.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/background_vertical.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/background_vertical.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/background_vertical.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/background_vertical.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Disabled_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Disabled_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Disabled_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Disabled_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Disabled_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Disabled_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Disabled_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Disabled_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Disabled_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Disabled_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Disabled_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Disabled_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Down_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Down_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Down_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Down_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Down_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Down_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Down_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Down_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Down_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Down_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Down_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Down_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Over_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Over_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Over_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Over_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Over_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Over_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Over_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Over_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Over_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Over_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Over_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Over_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Selected_Disabled_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Selected_Disabled_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Selected_Disabled_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Selected_Disabled_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Selected_Disabled_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Selected_Disabled_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Selected_Disabled_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Selected_Disabled_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Selected_Disabled_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Selected_Disabled_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Selected_Disabled_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Selected_Disabled_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Selected_Down_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Selected_Down_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Selected_Down_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Selected_Down_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Selected_Down_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Selected_Down_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Selected_Down_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Selected_Down_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Selected_Down_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Selected_Down_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Selected_Down_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Selected_Down_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Selected_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Selected_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Selected_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Selected_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Selected_Over_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Selected_Over_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Selected_Over_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Selected_Over_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Selected_Over_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Selected_Over_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Selected_Over_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Selected_Over_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Selected_Over_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Selected_Over_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Selected_Over_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Selected_Over_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Selected_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Selected_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Selected_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Selected_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Selected_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Selected_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Selected_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_Selected_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/button/button_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/hresizer.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/hresizer.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/hresizer.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/hresizer.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/hresizer_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/hresizer_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/hresizer_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/hresizer_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/hseparator.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/hseparator.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/hseparator.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/hseparator.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/hseparator_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/hseparator_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/hseparator_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/hseparator_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/resizer.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/resizer.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/resizer.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/resizer.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/resizer_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/resizer_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/resizer_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/resizer_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/separator.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/separator.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/separator.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/separator.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/separator_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/separator_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/separator_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/ToolStrip/separator_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/delete.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/delete.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/delete.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/delete.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/delete_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/delete_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/delete_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/delete_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/delete_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/delete_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/delete_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/delete_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/down.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/down.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/down.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/down.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/down_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/down_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/down_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/down_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/down_last.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/down_last.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/down_last.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/down_last.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/down_last_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/down_last_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/down_last_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/down_last_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/down_last_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/down_last_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/down_last_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/down_last_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/down_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/down_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/down_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/down_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/left.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/left.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/left.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/left.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/left_all.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/left_all.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/left_all.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/left_all.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/left_all_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/left_all_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/left_all_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/left_all_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/left_all_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/left_all_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/left_all_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/left_all_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/left_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/left_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/left_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/left_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/left_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/left_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/left_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/left_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/right.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/right.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/right.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/right.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/right_all.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/right_all.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/right_all.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/right_all.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/right_all_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/right_all_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/right_all_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/right_all_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/right_all_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/right_all_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/right_all_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/right_all_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/right_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/right_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/right_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/right_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/right_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/right_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/right_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/right_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/up.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/up.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/up.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/up.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/up_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/up_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/up_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/up_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/up_first.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/up_first.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/up_first.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/up_first.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/up_first_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/up_first_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/up_first_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/up_first_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/up_first_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/up_first_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/up_first_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/up_first_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/up_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/up_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/up_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TransferIcons/up_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/connector_ancestor.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/connector_ancestor.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/connector_ancestor.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/connector_ancestor.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/connector_closed_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/connector_closed_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/connector_closed_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/connector_closed_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/connector_closed_middle.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/connector_closed_middle.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/connector_closed_middle.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/connector_closed_middle.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/connector_closed_single.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/connector_closed_single.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/connector_closed_single.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/connector_closed_single.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/connector_closed_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/connector_closed_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/connector_closed_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/connector_closed_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/connector_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/connector_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/connector_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/connector_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/connector_middle.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/connector_middle.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/connector_middle.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/connector_middle.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/connector_opened_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/connector_opened_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/connector_opened_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/connector_opened_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/connector_opened_middle.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/connector_opened_middle.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/connector_opened_middle.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/connector_opened_middle.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/connector_opened_single.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/connector_opened_single.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/connector_opened_single.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/connector_opened_single.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/connector_opened_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/connector_opened_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/connector_opened_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/connector_opened_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/connector_single.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/connector_single.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/connector_single.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/connector_single.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/connector_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/connector_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/connector_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/connector_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/file.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/file.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/file.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/file.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/folder_closed.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/folder_closed.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/folder_closed.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/folder_closed.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/folder_drop.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/folder_drop.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/folder_drop.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/folder_drop.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/folder_file.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/folder_file.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/folder_file.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/folder_file.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/folder_open.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/folder_open.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/folder_open.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/folder_open.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/folder_opened.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/folder_opened.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/folder_opened.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/folder_opened.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/opener_closed.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/opener_closed.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/opener_closed.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/opener_closed.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/opener_opened.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/opener_opened.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/opener_opened.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/TreeGrid/opener_opened.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/close.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/close.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/close.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/close.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/close_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/close_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/close_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/close_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/close_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/close_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/close_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/close_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/headerIcon.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/headerIcon.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/headerIcon.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/headerIcon.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_alldown_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_alldown_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_alldown_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_alldown_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_alldown_Normal.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_alldown_Normal.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_alldown_Normal.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_alldown_Normal.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_alldown_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_alldown_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_alldown_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_alldown_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_allleft_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_allleft_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_allleft_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_allleft_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_allleft_Normal.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_allleft_Normal.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_allleft_Normal.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_allleft_Normal.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_allleft_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_allleft_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_allleft_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_allleft_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_allright_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_allright_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_allright_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_allright_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_allright_Normal.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_allright_Normal.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_allright_Normal.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_allright_Normal.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_allright_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_allright_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_allright_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_allright_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_allup_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_allup_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_allup_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_allup_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_allup_Normal.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_allup_Normal.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_allup_Normal.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_allup_Normal.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_allup_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_allup_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_allup_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_allup_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_automate_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_automate_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_automate_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_automate_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_automate_Normal.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_automate_Normal.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_automate_Normal.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_automate_Normal.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_automate_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_automate_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_automate_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_automate_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_calculator_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_calculator_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_calculator_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_calculator_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_calculator_Normal.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_calculator_Normal.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_calculator_Normal.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_calculator_Normal.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_calculator_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_calculator_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_calculator_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_calculator_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_cart_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_cart_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_cart_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_cart_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_cart_Normal.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_cart_Normal.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_cart_Normal.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_cart_Normal.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_cart_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_cart_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_cart_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_cart_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_cascade_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_cascade_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_cascade_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_cascade_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_cascade_Normal.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_cascade_Normal.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_cascade_Normal.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_cascade_Normal.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_cascade_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_cascade_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_cascade_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_cascade_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_clipboard_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_clipboard_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_clipboard_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_clipboard_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_clipboard_Normal.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_clipboard_Normal.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_clipboard_Normal.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_clipboard_Normal.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_clipboard_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_clipboard_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_clipboard_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_clipboard_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_clock_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_clock_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_clock_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_clock_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_clock_Normal.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_clock_Normal.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_clock_Normal.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_clock_Normal.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_clock_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_clock_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_clock_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_clock_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_comment_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_comment_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_comment_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_comment_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_comment_Normal.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_comment_Normal.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_comment_Normal.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_comment_Normal.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_comment_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_comment_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_comment_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_comment_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_document_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_document_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_document_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_document_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_document_Normal.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_document_Normal.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_document_Normal.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_document_Normal.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_document_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_document_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_document_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_document_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_down_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_down_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_down_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_down_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_down_Normal.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_down_Normal.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_down_Normal.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_down_Normal.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_down_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_down_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_down_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_down_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_downpin_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_downpin_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_downpin_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_downpin_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_downpin_Normal.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_downpin_Normal.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_downpin_Normal.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_downpin_Normal.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_downpin_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_downpin_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_downpin_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_downpin_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_find_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_find_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_find_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_find_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_find_Normal.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_find_Normal.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_find_Normal.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_find_Normal.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_find_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_find_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_find_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_find_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_heart_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_heart_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_heart_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_heart_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_heart_Normal.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_heart_Normal.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_heart_Normal.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_heart_Normal.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_heart_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_heart_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_heart_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_heart_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_help_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_help_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_help_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_help_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_help_Normal.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_help_Normal.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_help_Normal.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_help_Normal.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_help_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_help_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_help_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_help_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_home_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_home_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_home_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_home_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_home_Normal.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_home_Normal.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_home_Normal.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_home_Normal.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_home_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_home_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_home_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_home_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_left_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_left_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_left_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_left_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_left_Normal.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_left_Normal.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_left_Normal.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_left_Normal.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_left_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_left_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_left_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_left_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_leftpin_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_leftpin_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_leftpin_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_leftpin_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_leftpin_Normal.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_leftpin_Normal.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_leftpin_Normal.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_leftpin_Normal.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_leftpin_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_leftpin_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_leftpin_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_leftpin_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_mail_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_mail_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_mail_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_mail_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_mail_Normal.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_mail_Normal.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_mail_Normal.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_mail_Normal.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_mail_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_mail_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_mail_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_mail_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_minus_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_minus_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_minus_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_minus_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_minus_Normal.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_minus_Normal.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_minus_Normal.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_minus_Normal.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_minus_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_minus_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_minus_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_minus_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_person_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_person_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_person_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_person_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_person_Normal.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_person_Normal.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_person_Normal.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_person_Normal.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_person_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_person_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_person_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_person_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_plus_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_plus_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_plus_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_plus_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_plus_Normal.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_plus_Normal.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_plus_Normal.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_plus_Normal.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_plus_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_plus_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_plus_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_plus_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_print_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_print_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_print_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_print_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_print_Normal.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_print_Normal.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_print_Normal.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_print_Normal.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_print_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_print_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_print_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_print_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_reset_thick_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_reset_thick_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_reset_thick_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_reset_thick_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_reset_thick_Normal.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_reset_thick_Normal.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_reset_thick_Normal.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_reset_thick_Normal.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_reset_thick_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_reset_thick_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_reset_thick_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_reset_thick_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_reset_thin_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_reset_thin_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_reset_thin_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_reset_thin_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_reset_thin_Normal.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_reset_thin_Normal.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_reset_thin_Normal.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_reset_thin_Normal.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_reset_thin_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_reset_thin_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_reset_thin_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_reset_thin_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_right_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_right_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_right_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_right_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_right_Normal.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_right_Normal.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_right_Normal.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_right_Normal.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_right_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_right_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_right_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_right_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_save_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_save_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_save_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_save_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_save_Normal.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_save_Normal.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_save_Normal.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_save_Normal.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_save_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_save_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_save_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_save_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_transfer_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_transfer_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_transfer_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_transfer_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_transfer_Normal.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_transfer_Normal.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_transfer_Normal.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_transfer_Normal.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_transfer_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_transfer_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_transfer_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_transfer_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_trash_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_trash_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_trash_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_trash_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_trash_Normal.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_trash_Normal.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_trash_Normal.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_trash_Normal.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_trash_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_trash_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_trash_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_trash_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_up_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_up_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_up_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_up_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_up_Normal.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_up_Normal.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_up_Normal.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_up_Normal.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_up_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_up_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_up_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_up_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_zoom_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_zoom_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_zoom_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_zoom_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_zoom_Normal.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_zoom_Normal.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_zoom_Normal.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_zoom_Normal.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_zoom_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_zoom_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_zoom_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/icons/window_icon_zoom_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/maximize.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/maximize.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/maximize.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/maximize.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/maximize_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/maximize_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/maximize_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/maximize_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/maximize_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/maximize_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/maximize_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/maximize_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/minimize.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/minimize.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/minimize.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/minimize.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/minimize_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/minimize_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/minimize_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/minimize_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/minimize_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/minimize_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/minimize_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/minimize_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/resizer.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/resizer.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/resizer.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/resizer.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/resizer_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/resizer_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/resizer_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/resizer_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/window_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/window_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/window_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/window_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/window_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/window_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/window_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/window_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/window_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/window_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/window_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/window_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/window_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/window_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/window_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/window_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/window_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/window_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/window_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/window_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/window_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/window_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/window_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/window_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/window_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/window_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/window_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/window_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/window_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/window_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/window_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/images/Window/window_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/load_skin.js b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/load_skin.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/load_skin.js.gz b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/load_skin.js.gz
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/load_skin.js.gz and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/load_skin.js.gz differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/skin_styles.css b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/skin_styles.css
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/skin_styles.css.gz b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/skin_styles.css.gz
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/skin_styles.css.gz and b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/skin_styles.css.gz differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/unsupported_browser.html b/sm-shop/src/main/webapp/resources/smart-client/skins/Graphite/unsupported_browser.html
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/add.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/add.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/add.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/add.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/approve.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/approve.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/approve.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/approve.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/back.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/back.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/back.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/back.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/cancel.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/cancel.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/cancel.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/cancel.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/column_preferences.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/column_preferences.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/column_preferences.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/column_preferences.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/configure.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/configure.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/configure.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/configure.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/download.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/download.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/download.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/download.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/edit.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/edit.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/edit.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/edit.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/filter.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/filter.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/filter.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/filter.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/find.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/find.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/find.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/find.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/first.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/first.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/first.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/first.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/forward.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/forward.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/forward.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/forward.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/freezeLeft.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/freezeLeft.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/freezeLeft.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/freezeLeft.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/freezeRight.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/freezeRight.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/freezeRight.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/freezeRight.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/groupby.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/groupby.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/groupby.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/groupby.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/help.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/help.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/help.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/help.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/last.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/last.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/last.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/last.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/next.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/next.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/next.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/next.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/ok.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/ok.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/ok.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/ok.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/prev.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/prev.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/prev.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/prev.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/redo.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/redo.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/redo.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/redo.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/refresh.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/refresh.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/refresh.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/refresh.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/remove.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/remove.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/remove.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/remove.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/save.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/save.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/save.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/save.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/search.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/search.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/search.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/search.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/sort_ascending.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/sort_ascending.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/sort_ascending.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/sort_ascending.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/sort_descending.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/sort_descending.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/sort_descending.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/sort_descending.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/undo.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/undo.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/undo.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/undo.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/unfreeze.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/unfreeze.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/unfreeze.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/unfreeze.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/ungroup.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/ungroup.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/ungroup.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/ungroup.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/view.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/view.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/view.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/actions/view.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/AdvancedFilter/Remove_Row_disabled_icon.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/AdvancedFilter/Remove_Row_disabled_icon.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/AdvancedFilter/Remove_Row_disabled_icon.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/AdvancedFilter/Remove_Row_disabled_icon.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/AdvancedFilter/Remove_Row_icon.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/AdvancedFilter/Remove_Row_icon.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/AdvancedFilter/Remove_Row_icon.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/AdvancedFilter/Remove_Row_icon.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/black.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/black.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/black.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/black.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/blank.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/blank.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/blank.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/blank.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Disabled_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Disabled_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Disabled_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Disabled_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Disabled_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Disabled_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Disabled_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Disabled_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Disabled_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Disabled_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Disabled_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Disabled_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Down_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Down_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Down_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Down_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Down_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Down_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Down_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Down_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Down_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Down_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Down_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Down_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Over_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Over_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Over_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Over_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Over_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Over_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Over_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Over_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Over_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Over_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Over_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Over_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Selected_Disabled_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Selected_Disabled_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Selected_Disabled_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Selected_Disabled_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Selected_Disabled_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Selected_Disabled_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Selected_Disabled_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Selected_Disabled_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Selected_Disabled_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Selected_Disabled_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Selected_Disabled_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Selected_Disabled_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Selected_Down_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Selected_Down_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Selected_Down_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Selected_Down_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Selected_Down_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Selected_Down_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Selected_Down_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Selected_Down_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Selected_Down_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Selected_Down_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Selected_Down_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Selected_Down_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Selected_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Selected_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Selected_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Selected_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Selected_Over_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Selected_Over_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Selected_Over_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Selected_Over_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Selected_Over_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Selected_Over_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Selected_Over_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Selected_Over_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Selected_Over_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Selected_Over_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Selected_Over_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Selected_Over_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Selected_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Selected_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Selected_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Selected_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Selected_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Selected_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Selected_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_Selected_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/button/button_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ColorChooser/auto_icon.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ColorChooser/auto_icon.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ColorChooser/auto_icon.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ColorChooser/auto_icon.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ColorChooser/transparent_icon.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ColorChooser/transparent_icon.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ColorChooser/transparent_icon.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ColorChooser/transparent_icon.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ColorPicker/crosshair.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ColorPicker/crosshair.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ColorPicker/crosshair.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ColorPicker/crosshair.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ColorPicker/spectrum.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ColorPicker/spectrum.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ColorPicker/spectrum.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ColorPicker/spectrum.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/common/arrow_disabled_down.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/common/arrow_disabled_down.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/common/arrow_disabled_down.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/common/arrow_disabled_down.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/common/arrow_disabled_left.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/common/arrow_disabled_left.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/common/arrow_disabled_left.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/common/arrow_disabled_left.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/common/arrow_disabled_right.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/common/arrow_disabled_right.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/common/arrow_disabled_right.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/common/arrow_disabled_right.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/common/arrow_disabled_up.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/common/arrow_disabled_up.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/common/arrow_disabled_up.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/common/arrow_disabled_up.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/common/arrow_down.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/common/arrow_down.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/common/arrow_down.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/common/arrow_down.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/common/arrow_left.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/common/arrow_left.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/common/arrow_left.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/common/arrow_left.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/common/arrow_right.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/common/arrow_right.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/common/arrow_right.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/common/arrow_right.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/common/arrow_up.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/common/arrow_up.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/common/arrow_up.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/common/arrow_up.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/common/arrows.psd b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/common/arrows.psd
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/common/arrows.psd and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/common/arrows.psd differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/date_control.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/date_control.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/date_control.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/date_control.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/date_control_Disabled.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/date_control_Disabled.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/date_control_Disabled.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/date_control_Disabled.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/date_control_Down.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/date_control_Down.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/date_control_Down.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/date_control_Down.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/date_control_Over.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/date_control_Over.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/date_control_Over.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/date_control_Over.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/dropdown_control.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/dropdown_control.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/dropdown_control.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/dropdown_control.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/dropdown_control_Disabled.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/dropdown_control_Disabled.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/dropdown_control_Disabled.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/dropdown_control_Disabled.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/dropdown_control_down.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/dropdown_control_down.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/dropdown_control_down.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/dropdown_control_down.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/dropdown_control_inside.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/dropdown_control_inside.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/dropdown_control_inside.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/dropdown_control_inside.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/dropdown_control_inside_Disabled.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/dropdown_control_inside_Disabled.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/dropdown_control_inside_Disabled.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/dropdown_control_inside_Disabled.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/dropdown_control_inside_down.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/dropdown_control_inside_down.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/dropdown_control_inside_down.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/dropdown_control_inside_down.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/dropdown_control_inside_Over.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/dropdown_control_inside_Over.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/dropdown_control_inside_Over.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/dropdown_control_inside_Over.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/dropdown_control_Over.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/dropdown_control_Over.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/dropdown_control_Over.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/dropdown_control_Over.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/helper_control.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/helper_control.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/helper_control.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/helper_control.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/helper_control_Disabled.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/helper_control_Disabled.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/helper_control_Disabled.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/helper_control_Disabled.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/helper_control_Over.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/helper_control_Over.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/helper_control_Over.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/helper_control_Over.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/spinner_control_decrease.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/spinner_control_decrease.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/spinner_control_decrease.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/spinner_control_decrease.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/spinner_control_decrease_Disabled.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/spinner_control_decrease_Disabled.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/spinner_control_decrease_Disabled.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/spinner_control_decrease_Disabled.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/spinner_control_decrease_down.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/spinner_control_decrease_down.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/spinner_control_decrease_down.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/spinner_control_decrease_down.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/spinner_control_decrease_Over.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/spinner_control_decrease_Over.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/spinner_control_decrease_Over.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/spinner_control_decrease_Over.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/spinner_control_increase.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/spinner_control_increase.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/spinner_control_increase.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/spinner_control_increase.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/spinner_control_increase_Disabled.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/spinner_control_increase_Disabled.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/spinner_control_increase_Disabled.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/spinner_control_increase_Disabled.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/spinner_control_increase_down.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/spinner_control_increase_down.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/spinner_control_increase_down.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/spinner_control_increase_down.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/spinner_control_increase_Over.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/spinner_control_increase_Over.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/spinner_control_increase_Over.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/spinner_control_increase_Over.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/text_control.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/text_control.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/text_control.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/text_control.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/text_control_Disabled.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/text_control_Disabled.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/text_control_Disabled.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/text_control_Disabled.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/text_control_down.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/text_control_down.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/text_control_down.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/text_control_down.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/text_control_Over.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/text_control_Over.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/text_control_Over.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/controls/text_control_Over.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_808080_BL.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_808080_BL.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_808080_BL.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_808080_BL.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_808080_BR.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_808080_BR.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_808080_BR.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_808080_BR.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_808080_TL.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_808080_TL.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_808080_TL.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_808080_TL.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_808080_TR.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_808080_TR.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_808080_TR.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_808080_TR.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_8080FF_BL.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_8080FF_BL.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_8080FF_BL.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_8080FF_BL.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_8080FF_BR.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_8080FF_BR.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_8080FF_BR.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_8080FF_BR.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_8080FF_TL.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_8080FF_TL.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_8080FF_TL.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_8080FF_TL.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_8080FF_TR.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_8080FF_TR.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_8080FF_TR.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_8080FF_TR.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_D6D6D6_BL.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_D6D6D6_BL.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_D6D6D6_BL.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_D6D6D6_BL.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_D6D6D6_BR.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_D6D6D6_BR.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_D6D6D6_BR.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_D6D6D6_BR.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_D6D6D6_TL.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_D6D6D6_TL.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_D6D6D6_TL.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_D6D6D6_TL.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_D6D6D6_TR.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_D6D6D6_TR.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_D6D6D6_TR.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_D6D6D6_TR.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_DDDDDD_BL.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_DDDDDD_BL.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_DDDDDD_BL.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_DDDDDD_BL.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_DDDDDD_BR.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_DDDDDD_BR.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_DDDDDD_BR.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_DDDDDD_BR.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_DDDDDD_TL.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_DDDDDD_TL.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_DDDDDD_TL.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_DDDDDD_TL.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_DDDDDD_TR.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_DDDDDD_TR.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_DDDDDD_TR.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_DDDDDD_TR.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_EEEEEE_BL.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_EEEEEE_BL.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_EEEEEE_BL.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_EEEEEE_BL.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_EEEEEE_BR.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_EEEEEE_BR.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_EEEEEE_BR.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_EEEEEE_BR.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_EEEEEE_TL.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_EEEEEE_TL.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_EEEEEE_TL.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_EEEEEE_TL.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_EEEEEE_TR.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_EEEEEE_TR.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_EEEEEE_TR.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_EEEEEE_TR.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_FFFFFF_BL.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_FFFFFF_BL.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_FFFFFF_BL.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_FFFFFF_BL.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_FFFFFF_BR.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_FFFFFF_BR.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_FFFFFF_BR.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_FFFFFF_BR.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_FFFFFF_TL.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_FFFFFF_TL.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_FFFFFF_TL.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_FFFFFF_TL.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_FFFFFF_TR.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_FFFFFF_TR.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_FFFFFF_TR.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/corners/corner_FFFFFF_TR.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/arrow_closed.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/arrow_closed.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/arrow_closed.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/arrow_closed.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/arrow_closed_down.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/arrow_closed_down.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/arrow_closed_down.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/arrow_closed_down.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/arrow_closed_left.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/arrow_closed_left.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/arrow_closed_left.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/arrow_closed_left.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/arrow_closed_right.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/arrow_closed_right.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/arrow_closed_right.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/arrow_closed_right.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/arrow_open.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/arrow_open.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/arrow_open.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/arrow_open.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/arrow_open_down.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/arrow_open_down.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/arrow_open_down.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/arrow_open_down.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/arrow_open_left.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/arrow_open_left.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/arrow_open_left.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/arrow_open_left.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/arrow_open_right.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/arrow_open_right.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/arrow_open_right.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/arrow_open_right.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/arrow_open_up.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/arrow_open_up.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/arrow_open_up.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/arrow_open_up.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/arrow_opening.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/arrow_opening.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/arrow_opening.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/arrow_opening.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/close.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/close.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/close.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/close.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/close_over.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/close_over.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/close_over.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/close_over.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/colHeader.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/colHeader.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/colHeader.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/colHeader.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/colHeaderLabel.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/colHeaderLabel.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/colHeaderLabel.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/colHeaderLabel.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/colHeaderLabelDown.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/colHeaderLabelDown.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/colHeaderLabelDown.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/colHeaderLabelDown.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/colHeaderOver.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/colHeaderOver.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/colHeaderOver.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/colHeaderOver.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/colHeaderSelected.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/colHeaderSelected.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/colHeaderSelected.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/colHeaderSelected.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/colHeaderSelectedOver.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/colHeaderSelectedOver.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/colHeaderSelectedOver.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/colHeaderSelectedOver.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/CubeGrid.psd b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/CubeGrid.psd
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/CubeGrid.psd and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/CubeGrid.psd differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/header_handle.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/header_handle.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/header_handle.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/header_handle.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/header_handle_over.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/header_handle_over.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/header_handle_over.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/header_handle_over.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/innerHeader.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/innerHeader.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/innerHeader.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/innerHeader.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/innerHeaderSelected.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/innerHeaderSelected.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/innerHeaderSelected.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/innerHeaderSelected.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/innerHeaderSelectedOver.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/innerHeaderSelectedOver.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/innerHeaderSelectedOver.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/innerHeaderSelectedOver.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/maximize.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/maximize.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/maximize.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/maximize.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/maximize_over.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/maximize_over.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/maximize_over.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/maximize_over.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/minimize.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/minimize.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/minimize.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/minimize.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/minimize_over.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/minimize_over.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/minimize_over.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/minimize_over.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/rowHeader.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/rowHeader.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/rowHeader.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/rowHeader.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/rowHeaderLabel.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/rowHeaderLabel.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/rowHeaderLabel.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/rowHeaderLabel.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/rowHeaderLabelDown.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/rowHeaderLabelDown.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/rowHeaderLabelDown.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/rowHeaderLabelDown.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/rowHeaderOver.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/rowHeaderOver.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/rowHeaderOver.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/rowHeaderOver.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/rowHeaderSelected.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/rowHeaderSelected.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/rowHeaderSelected.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/rowHeaderSelected.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/rowHeaderSelectedOver.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/rowHeaderSelectedOver.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/rowHeaderSelectedOver.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/rowHeaderSelectedOver.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/sort_down.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/sort_down.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/sort_down.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/sort_down.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/sort_down_over.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/sort_down_over.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/sort_down_over.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/sort_down_over.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/sort_down_selected.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/sort_down_selected.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/sort_down_selected.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/sort_down_selected.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/sort_down_selected_over.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/sort_down_selected_over.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/sort_down_selected_over.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/sort_down_selected_over.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/sort_up.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/sort_up.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/sort_up.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/sort_up.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/sort_up_over.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/sort_up_over.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/sort_up_over.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/sort_up_over.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/sort_up_selected.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/sort_up_selected.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/sort_up_selected.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/sort_up_selected.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/sort_up_selected_over.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/sort_up_selected_over.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/sort_up_selected_over.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/sort_up_selected_over.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/validation_error_icon.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/validation_error_icon.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/validation_error_icon.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/CubeGrid/validation_error_icon.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DatabaseBrowser/column.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DatabaseBrowser/column.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DatabaseBrowser/column.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DatabaseBrowser/column.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DatabaseBrowser/data.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DatabaseBrowser/data.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DatabaseBrowser/data.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DatabaseBrowser/data.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DateChooser/arrow_left.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DateChooser/arrow_left.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DateChooser/arrow_left.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DateChooser/arrow_left.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DateChooser/arrow_right.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DateChooser/arrow_right.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DateChooser/arrow_right.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DateChooser/arrow_right.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DateChooser/doubleArrow_left.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DateChooser/doubleArrow_left.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DateChooser/doubleArrow_left.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DateChooser/doubleArrow_left.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DateChooser/doubleArrow_right.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DateChooser/doubleArrow_right.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DateChooser/doubleArrow_right.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DateChooser/doubleArrow_right.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Dialog/ask.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Dialog/ask.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Dialog/ask.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Dialog/ask.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Dialog/close.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Dialog/close.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Dialog/close.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Dialog/close.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Dialog/confirm.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Dialog/confirm.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Dialog/confirm.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Dialog/confirm.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Dialog/Dialog.psd b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Dialog/Dialog.psd
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Dialog/Dialog.psd and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Dialog/Dialog.psd differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Dialog/error.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Dialog/error.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Dialog/error.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Dialog/error.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Dialog/notify.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Dialog/notify.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Dialog/notify.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Dialog/notify.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Dialog/resizer.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Dialog/resizer.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Dialog/resizer.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Dialog/resizer.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Dialog/say.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Dialog/say.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Dialog/say.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Dialog/say.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Dialog/stop.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Dialog/stop.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Dialog/stop.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Dialog/stop.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Dialog/warn.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Dialog/warn.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Dialog/warn.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Dialog/warn.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/checked.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/checked.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/checked.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/checked.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/checked_Disabled.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/checked_Disabled.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/checked_Disabled.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/checked_Disabled.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/checked_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/checked_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/checked_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/checked_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/checked_Down.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/checked_Down.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/checked_Down.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/checked_Down.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/checked_Over.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/checked_Over.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/checked_Over.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/checked_Over.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/ColorPicker_icon.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/ColorPicker_icon.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/ColorPicker_icon.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/ColorPicker_icon.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/ComboBoxItem_PickButton_icon.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/ComboBoxItem_PickButton_icon.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/ComboBoxItem_PickButton_icon.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/ComboBoxItem_PickButton_icon.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/ComboBoxItem_PickButton_icon_Disabled.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/ComboBoxItem_PickButton_icon_Disabled.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/ComboBoxItem_PickButton_icon_Disabled.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/ComboBoxItem_PickButton_icon_Disabled.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/ComboBoxItem_PickButton_icon_Over.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/ComboBoxItem_PickButton_icon_Over.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/ComboBoxItem_PickButton_icon_Over.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/ComboBoxItem_PickButton_icon_Over.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/date_control.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/date_control.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/date_control.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/date_control.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/DatePicker_icon.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/DatePicker_icon.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/DatePicker_icon.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/DatePicker_icon.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/DatePicker_icon_Disabled.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/DatePicker_icon_Disabled.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/DatePicker_icon_Disabled.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/DatePicker_icon_Disabled.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/default_formItem_icon.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/default_formItem_icon.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/default_formItem_icon.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/default_formItem_icon.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/default_formItem_icon_Disabled.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/default_formItem_icon_Disabled.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/default_formItem_icon_Disabled.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/default_formItem_icon_Disabled.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/default_formItem_icon_Over.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/default_formItem_icon_Over.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/default_formItem_icon_Over.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/default_formItem_icon_Over.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/PopUpTextAreaEditor_icon.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/PopUpTextAreaEditor_icon.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/PopUpTextAreaEditor_icon.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/PopUpTextAreaEditor_icon.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/PropSheet_ColorPicker_icon.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/PropSheet_ColorPicker_icon.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/PropSheet_ColorPicker_icon.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/PropSheet_ColorPicker_icon.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/PropSheet_pickbutton.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/PropSheet_pickbutton.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/PropSheet_pickbutton.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/PropSheet_pickbutton.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/PropSheet_pickbutton_Disabled.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/PropSheet_pickbutton_Disabled.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/PropSheet_pickbutton_Disabled.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/PropSheet_pickbutton_Disabled.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/Remove_icon.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/Remove_icon.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/Remove_icon.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/Remove_icon.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/Remove_icon_Disabled.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/Remove_icon_Disabled.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/Remove_icon_Disabled.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/Remove_icon_Disabled.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/Remove_icon_Over.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/Remove_icon_Over.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/Remove_icon_Over.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/Remove_icon_Over.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/SelectItem_PickButton_icon.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/SelectItem_PickButton_icon.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/SelectItem_PickButton_icon.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/SelectItem_PickButton_icon.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/SelectItem_PickButton_icon_Disabled.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/SelectItem_PickButton_icon_Disabled.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/SelectItem_PickButton_icon_Disabled.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/SelectItem_PickButton_icon_Disabled.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/SelectItem_PickButton_icon_Over.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/SelectItem_PickButton_icon_Over.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/SelectItem_PickButton_icon_Over.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/SelectItem_PickButton_icon_Over.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/Spinner_decrease_icon.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/Spinner_decrease_icon.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/Spinner_decrease_icon.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/Spinner_decrease_icon.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/Spinner_decrease_icon_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/Spinner_decrease_icon_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/Spinner_decrease_icon_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/Spinner_decrease_icon_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/Spinner_decrease_icon_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/Spinner_decrease_icon_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/Spinner_decrease_icon_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/Spinner_decrease_icon_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/Spinner_increase_icon.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/Spinner_increase_icon.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/Spinner_increase_icon.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/Spinner_increase_icon.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/Spinner_increase_icon_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/Spinner_increase_icon_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/Spinner_increase_icon_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/Spinner_increase_icon_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/Spinner_increase_icon_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/Spinner_increase_icon_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/Spinner_increase_icon_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/Spinner_increase_icon_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/unchecked.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/unchecked.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/unchecked.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/unchecked.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/unchecked_Disabled.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/unchecked_Disabled.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/unchecked_Disabled.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/unchecked_Disabled.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/unchecked_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/unchecked_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/unchecked_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/unchecked_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/unchecked_Down.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/unchecked_Down.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/unchecked_Down.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/unchecked_Down.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/unchecked_Over.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/unchecked_Over.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/unchecked_Over.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/unchecked_Over.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/unsetcheck_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/unsetcheck_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/unsetcheck_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/unsetcheck_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/validation_error.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/validation_error.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/validation_error.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/validation_error.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/validation_error_icon.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/validation_error_icon.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/validation_error_icon.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/validation_error_icon.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/validation_error_icon.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/validation_error_icon.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/validation_error_icon.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/DynamicForm/validation_error_icon.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_B.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_B.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_B.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_B.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_BL.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_BL.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_BL.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_BL.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_BR.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_BR.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_BR.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_BR.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_L.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_L.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_L.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_L.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_R.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_R.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_R.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_R.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_T.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_T.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_T.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_T.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_TL.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_TL.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_TL.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_TL.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_TR.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_TR.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_TR.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_TR.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_D6D6D6_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_B.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_B.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_B.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_B.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_BL.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_BL.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_BL.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_BL.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_BR.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_BR.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_BR.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_BR.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_L.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_L.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_L.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_L.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_R.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_R.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_R.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_R.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_T.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_T.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_T.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_T.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_TL.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_TL.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_TL.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_TL.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_TR.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_TR.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_TR.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_TR.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_DDDDDD_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_B.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_B.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_B.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_B.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_BL.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_BL.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_BL.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_BL.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_BR.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_BR.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_BR.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_BR.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_L.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_L.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_L.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_L.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_R.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_R.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_R.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_R.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_T.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_T.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_T.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_T.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_TL.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_TL.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_TL.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_TL.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_TR.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_TR.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_TR.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_TR.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_EEEEEE_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_B.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_B.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_B.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_B.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_BL.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_BL.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_BL.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_BL.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_BR.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_BR.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_BR.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_BR.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_L.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_L.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_L.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_L.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_R.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_R.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_R.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_R.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_T.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_T.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_T.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_T.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_TL.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_TL.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_TL.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_TL.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_TR.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_TR.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_TR.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_TR.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/edge_FFFFFF_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/10_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/10_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/10_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/10_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/10_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/10_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/10_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/10_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/10_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/10_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/10_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/10_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/10_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/10_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/10_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/10_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/10_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/10_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/10_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/10_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/10_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/10_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/10_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/10_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/10_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/10_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/10_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/10_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/10_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/10_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/10_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/10_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/3_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/3_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/3_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/3_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/3_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/3_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/3_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/3_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/3_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/3_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/3_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/3_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/3_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/3_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/3_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/3_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/3_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/3_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/3_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/3_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/3_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/3_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/3_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/3_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/3_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/3_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/3_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/3_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/3_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/3_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/3_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/3_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/4_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/4_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/4_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/4_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/4_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/4_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/4_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/4_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/4_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/4_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/4_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/4_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/4_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/4_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/4_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/4_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/4_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/4_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/4_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/4_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/4_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/4_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/4_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/4_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/4_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/4_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/4_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/4_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/4_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/4_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/4_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/4_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/5_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/5_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/5_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/5_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/5_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/5_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/5_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/5_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/5_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/5_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/5_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/5_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/5_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/5_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/5_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/5_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/5_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/5_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/5_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/5_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/5_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/5_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/5_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/5_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/5_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/5_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/5_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/5_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/5_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/5_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/5_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/5_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/6_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/6_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/6_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/6_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/6_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/6_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/6_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/6_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/6_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/6_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/6_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/6_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/6_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/6_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/6_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/6_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/6_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/6_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/6_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/6_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/6_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/6_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/6_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/6_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/6_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/6_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/6_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/6_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/6_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/6_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/6_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/6_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/7_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/7_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/7_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/7_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/7_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/7_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/7_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/7_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/7_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/7_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/7_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/7_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/7_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/7_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/7_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/7_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/7_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/7_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/7_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/7_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/7_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/7_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/7_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/7_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/7_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/7_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/7_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/7_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/7_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/7_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/7_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/7_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/8_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/8_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/8_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/8_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/8_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/8_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/8_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/8_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/8_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/8_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/8_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/8_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/8_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/8_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/8_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/8_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/8_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/8_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/8_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/8_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/8_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/8_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/8_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/8_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/8_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/8_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/8_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/8_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/8_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/8_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/8_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/8_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/9_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/9_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/9_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/9_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/9_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/9_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/9_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/9_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/9_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/9_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/9_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/9_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/9_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/9_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/9_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/9_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/9_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/9_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/9_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/9_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/9_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/9_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/9_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/9_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/9_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/9_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/9_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/9_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/9_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/9_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/9_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/A3B2CC/9_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/10_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/10_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/10_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/10_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/10_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/10_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/10_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/10_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/10_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/10_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/10_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/10_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/10_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/10_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/10_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/10_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/10_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/10_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/10_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/10_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/10_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/10_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/10_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/10_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/10_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/10_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/10_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/10_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/10_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/10_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/10_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/10_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/3_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/3_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/3_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/3_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/3_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/3_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/3_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/3_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/3_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/3_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/3_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/3_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/3_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/3_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/3_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/3_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/3_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/3_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/3_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/3_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/3_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/3_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/3_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/3_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/3_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/3_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/3_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/3_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/3_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/3_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/3_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/3_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/4_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/4_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/4_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/4_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/4_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/4_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/4_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/4_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/4_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/4_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/4_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/4_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/4_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/4_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/4_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/4_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/4_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/4_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/4_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/4_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/4_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/4_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/4_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/4_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/4_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/4_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/4_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/4_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/4_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/4_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/4_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/4_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/5_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/5_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/5_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/5_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/5_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/5_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/5_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/5_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/5_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/5_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/5_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/5_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/5_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/5_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/5_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/5_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/5_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/5_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/5_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/5_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/5_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/5_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/5_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/5_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/5_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/5_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/5_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/5_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/5_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/5_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/5_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/5_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/6_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/6_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/6_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/6_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/6_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/6_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/6_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/6_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/6_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/6_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/6_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/6_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/6_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/6_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/6_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/6_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/6_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/6_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/6_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/6_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/6_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/6_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/6_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/6_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/6_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/6_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/6_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/6_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/6_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/6_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/6_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/6_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/7_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/7_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/7_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/7_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/7_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/7_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/7_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/7_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/7_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/7_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/7_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/7_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/7_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/7_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/7_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/7_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/7_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/7_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/7_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/7_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/7_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/7_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/7_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/7_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/7_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/7_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/7_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/7_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/7_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/7_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/7_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/7_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/8_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/8_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/8_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/8_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/8_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/8_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/8_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/8_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/8_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/8_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/8_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/8_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/8_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/8_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/8_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/8_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/8_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/8_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/8_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/8_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/8_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/8_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/8_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/8_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/8_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/8_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/8_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/8_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/8_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/8_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/8_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/8_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/9_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/9_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/9_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/9_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/9_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/9_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/9_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/9_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/9_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/9_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/9_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/9_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/9_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/9_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/9_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/9_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/9_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/9_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/9_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/9_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/9_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/9_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/9_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/9_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/9_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/9_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/9_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/9_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/9_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/9_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/9_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/frame/FFFFFF/9_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/10_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/10_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/10_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/10_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/10_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/10_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/10_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/10_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/10_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/10_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/10_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/10_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/10_center.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/10_center.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/10_center.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/10_center.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/10_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/10_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/10_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/10_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/10_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/10_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/10_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/10_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/10_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/10_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/10_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/10_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/10_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/10_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/10_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/10_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/10_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/10_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/10_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/10_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/3_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/3_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/3_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/3_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/3_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/3_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/3_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/3_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/3_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/3_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/3_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/3_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/3_center.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/3_center.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/3_center.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/3_center.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/3_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/3_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/3_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/3_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/3_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/3_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/3_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/3_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/3_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/3_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/3_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/3_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/3_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/3_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/3_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/3_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/3_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/3_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/3_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/3_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/4_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/4_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/4_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/4_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/4_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/4_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/4_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/4_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/4_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/4_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/4_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/4_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/4_center.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/4_center.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/4_center.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/4_center.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/4_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/4_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/4_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/4_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/4_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/4_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/4_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/4_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/4_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/4_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/4_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/4_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/4_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/4_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/4_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/4_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/4_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/4_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/4_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/4_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/5_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/5_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/5_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/5_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/5_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/5_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/5_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/5_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/5_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/5_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/5_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/5_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/5_center.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/5_center.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/5_center.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/5_center.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/5_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/5_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/5_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/5_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/5_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/5_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/5_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/5_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/5_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/5_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/5_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/5_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/5_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/5_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/5_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/5_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/5_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/5_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/5_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/5_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/6_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/6_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/6_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/6_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/6_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/6_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/6_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/6_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/6_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/6_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/6_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/6_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/6_center.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/6_center.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/6_center.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/6_center.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/6_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/6_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/6_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/6_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/6_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/6_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/6_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/6_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/6_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/6_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/6_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/6_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/6_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/6_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/6_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/6_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/6_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/6_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/6_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/6_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/7_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/7_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/7_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/7_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/7_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/7_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/7_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/7_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/7_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/7_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/7_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/7_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/7_center.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/7_center.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/7_center.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/7_center.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/7_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/7_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/7_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/7_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/7_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/7_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/7_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/7_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/7_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/7_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/7_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/7_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/7_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/7_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/7_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/7_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/7_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/7_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/7_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/7_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/8_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/8_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/8_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/8_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/8_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/8_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/8_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/8_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/8_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/8_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/8_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/8_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/8_center.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/8_center.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/8_center.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/8_center.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/8_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/8_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/8_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/8_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/8_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/8_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/8_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/8_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/8_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/8_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/8_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/8_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/8_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/8_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/8_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/8_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/8_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/8_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/8_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/8_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/9_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/9_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/9_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/9_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/9_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/9_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/9_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/9_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/9_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/9_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/9_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/9_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/9_center.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/9_center.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/9_center.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/9_center.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/9_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/9_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/9_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/9_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/9_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/9_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/9_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/9_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/9_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/9_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/9_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/9_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/9_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/9_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/9_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/9_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/9_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/9_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/9_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/rounded/raised/FFFFFF/9_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/10_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/10_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/10_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/10_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/10_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/10_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/10_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/10_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/10_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/10_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/10_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/10_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/10_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/10_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/10_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/10_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/10_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/10_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/10_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/10_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/10_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/10_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/10_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/10_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/10_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/10_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/10_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/10_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/10_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/10_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/10_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/10_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/3_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/3_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/3_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/3_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/3_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/3_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/3_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/3_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/3_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/3_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/3_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/3_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/3_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/3_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/3_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/3_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/3_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/3_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/3_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/3_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/3_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/3_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/3_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/3_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/3_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/3_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/3_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/3_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/3_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/3_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/3_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/3_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/4_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/4_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/4_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/4_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/4_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/4_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/4_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/4_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/4_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/4_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/4_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/4_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/4_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/4_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/4_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/4_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/4_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/4_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/4_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/4_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/4_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/4_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/4_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/4_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/4_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/4_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/4_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/4_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/4_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/4_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/4_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/4_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/5_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/5_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/5_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/5_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/5_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/5_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/5_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/5_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/5_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/5_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/5_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/5_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/5_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/5_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/5_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/5_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/5_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/5_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/5_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/5_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/5_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/5_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/5_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/5_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/5_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/5_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/5_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/5_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/5_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/5_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/5_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/5_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/6_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/6_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/6_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/6_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/6_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/6_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/6_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/6_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/6_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/6_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/6_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/6_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/6_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/6_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/6_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/6_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/6_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/6_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/6_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/6_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/6_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/6_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/6_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/6_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/6_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/6_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/6_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/6_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/6_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/6_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/6_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/6_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/7_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/7_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/7_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/7_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/7_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/7_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/7_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/7_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/7_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/7_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/7_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/7_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/7_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/7_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/7_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/7_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/7_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/7_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/7_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/7_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/7_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/7_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/7_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/7_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/7_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/7_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/7_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/7_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/7_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/7_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/7_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/7_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/8_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/8_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/8_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/8_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/8_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/8_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/8_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/8_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/8_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/8_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/8_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/8_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/8_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/8_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/8_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/8_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/8_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/8_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/8_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/8_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/8_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/8_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/8_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/8_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/8_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/8_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/8_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/8_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/8_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/8_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/8_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/8_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/9_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/9_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/9_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/9_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/9_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/9_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/9_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/9_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/9_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/9_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/9_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/9_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/9_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/9_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/9_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/9_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/9_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/9_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/9_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/9_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/9_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/9_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/9_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/9_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/9_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/9_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/9_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/9_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/9_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/9_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/9_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/FFFFFF/9_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/10_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/10_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/10_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/10_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/10_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/10_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/10_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/10_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/10_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/10_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/10_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/10_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/10_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/10_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/10_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/10_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/10_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/10_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/10_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/10_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/10_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/10_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/10_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/10_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/10_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/10_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/10_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/10_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/10_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/10_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/10_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/10_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/3_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/3_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/3_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/3_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/3_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/3_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/3_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/3_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/3_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/3_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/3_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/3_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/3_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/3_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/3_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/3_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/3_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/3_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/3_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/3_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/3_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/3_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/3_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/3_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/3_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/3_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/3_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/3_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/3_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/3_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/3_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/3_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/4_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/4_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/4_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/4_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/4_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/4_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/4_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/4_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/4_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/4_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/4_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/4_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/4_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/4_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/4_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/4_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/4_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/4_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/4_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/4_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/4_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/4_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/4_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/4_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/4_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/4_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/4_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/4_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/4_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/4_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/4_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/4_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/5_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/5_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/5_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/5_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/5_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/5_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/5_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/5_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/5_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/5_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/5_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/5_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/5_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/5_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/5_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/5_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/5_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/5_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/5_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/5_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/5_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/5_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/5_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/5_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/5_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/5_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/5_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/5_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/5_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/5_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/5_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/5_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/6_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/6_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/6_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/6_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/6_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/6_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/6_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/6_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/6_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/6_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/6_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/6_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/6_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/6_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/6_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/6_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/6_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/6_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/6_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/6_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/6_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/6_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/6_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/6_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/6_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/6_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/6_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/6_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/6_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/6_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/6_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/6_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/7_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/7_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/7_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/7_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/7_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/7_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/7_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/7_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/7_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/7_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/7_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/7_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/7_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/7_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/7_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/7_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/7_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/7_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/7_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/7_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/7_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/7_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/7_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/7_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/7_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/7_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/7_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/7_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/7_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/7_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/7_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/7_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/8_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/8_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/8_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/8_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/8_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/8_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/8_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/8_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/8_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/8_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/8_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/8_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/8_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/8_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/8_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/8_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/8_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/8_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/8_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/8_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/8_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/8_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/8_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/8_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/8_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/8_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/8_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/8_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/8_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/8_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/8_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/8_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/9_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/9_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/9_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/9_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/9_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/9_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/9_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/9_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/9_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/9_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/9_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/9_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/9_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/9_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/9_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/9_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/9_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/9_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/9_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/9_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/9_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/9_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/9_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/9_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/9_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/9_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/9_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/9_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/9_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/9_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/9_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/frame/tint/9_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/10_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/10_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/10_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/10_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/10_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/10_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/10_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/10_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/10_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/10_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/10_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/10_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/10_center.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/10_center.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/10_center.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/10_center.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/10_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/10_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/10_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/10_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/10_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/10_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/10_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/10_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/10_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/10_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/10_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/10_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/10_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/10_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/10_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/10_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/10_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/10_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/10_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/10_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/3_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/3_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/3_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/3_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/3_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/3_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/3_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/3_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/3_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/3_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/3_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/3_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/3_center.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/3_center.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/3_center.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/3_center.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/3_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/3_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/3_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/3_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/3_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/3_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/3_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/3_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/3_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/3_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/3_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/3_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/3_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/3_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/3_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/3_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/3_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/3_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/3_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/3_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/4_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/4_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/4_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/4_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/4_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/4_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/4_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/4_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/4_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/4_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/4_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/4_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/4_center.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/4_center.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/4_center.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/4_center.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/4_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/4_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/4_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/4_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/4_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/4_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/4_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/4_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/4_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/4_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/4_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/4_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/4_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/4_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/4_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/4_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/4_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/4_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/4_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/4_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/5_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/5_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/5_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/5_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/5_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/5_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/5_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/5_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/5_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/5_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/5_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/5_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/5_center.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/5_center.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/5_center.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/5_center.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/5_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/5_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/5_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/5_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/5_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/5_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/5_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/5_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/5_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/5_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/5_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/5_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/5_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/5_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/5_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/5_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/5_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/5_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/5_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/5_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/6_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/6_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/6_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/6_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/6_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/6_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/6_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/6_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/6_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/6_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/6_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/6_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/6_center.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/6_center.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/6_center.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/6_center.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/6_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/6_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/6_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/6_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/6_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/6_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/6_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/6_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/6_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/6_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/6_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/6_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/6_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/6_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/6_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/6_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/6_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/6_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/6_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/6_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/7_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/7_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/7_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/7_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/7_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/7_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/7_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/7_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/7_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/7_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/7_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/7_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/7_center.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/7_center.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/7_center.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/7_center.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/7_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/7_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/7_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/7_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/7_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/7_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/7_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/7_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/7_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/7_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/7_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/7_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/7_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/7_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/7_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/7_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/7_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/7_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/7_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/7_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/8_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/8_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/8_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/8_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/8_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/8_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/8_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/8_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/8_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/8_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/8_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/8_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/8_center.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/8_center.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/8_center.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/8_center.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/8_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/8_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/8_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/8_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/8_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/8_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/8_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/8_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/8_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/8_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/8_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/8_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/8_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/8_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/8_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/8_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/8_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/8_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/8_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/8_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/9_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/9_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/9_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/9_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/9_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/9_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/9_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/9_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/9_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/9_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/9_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/9_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/9_center.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/9_center.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/9_center.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/9_center.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/9_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/9_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/9_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/9_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/9_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/9_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/9_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/9_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/9_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/9_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/9_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/9_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/9_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/9_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/9_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/9_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/9_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/9_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/9_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/FFFFFF/9_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/10_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/10_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/10_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/10_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/10_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/10_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/10_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/10_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/10_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/10_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/10_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/10_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/10_center.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/10_center.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/10_center.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/10_center.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/10_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/10_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/10_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/10_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/10_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/10_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/10_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/10_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/10_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/10_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/10_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/10_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/10_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/10_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/10_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/10_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/10_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/10_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/10_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/10_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/3_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/3_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/3_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/3_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/3_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/3_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/3_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/3_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/3_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/3_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/3_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/3_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/3_center.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/3_center.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/3_center.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/3_center.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/3_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/3_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/3_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/3_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/3_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/3_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/3_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/3_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/3_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/3_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/3_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/3_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/3_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/3_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/3_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/3_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/3_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/3_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/3_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/3_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/4_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/4_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/4_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/4_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/4_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/4_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/4_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/4_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/4_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/4_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/4_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/4_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/4_center.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/4_center.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/4_center.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/4_center.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/4_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/4_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/4_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/4_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/4_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/4_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/4_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/4_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/4_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/4_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/4_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/4_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/4_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/4_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/4_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/4_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/4_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/4_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/4_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/4_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/5_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/5_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/5_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/5_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/5_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/5_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/5_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/5_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/5_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/5_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/5_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/5_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/5_center.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/5_center.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/5_center.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/5_center.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/5_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/5_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/5_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/5_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/5_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/5_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/5_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/5_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/5_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/5_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/5_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/5_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/5_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/5_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/5_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/5_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/5_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/5_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/5_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/5_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/6_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/6_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/6_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/6_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/6_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/6_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/6_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/6_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/6_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/6_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/6_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/6_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/6_center.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/6_center.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/6_center.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/6_center.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/6_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/6_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/6_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/6_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/6_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/6_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/6_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/6_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/6_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/6_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/6_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/6_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/6_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/6_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/6_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/6_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/6_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/6_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/6_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/6_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/7_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/7_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/7_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/7_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/7_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/7_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/7_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/7_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/7_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/7_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/7_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/7_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/7_center.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/7_center.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/7_center.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/7_center.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/7_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/7_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/7_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/7_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/7_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/7_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/7_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/7_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/7_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/7_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/7_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/7_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/7_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/7_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/7_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/7_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/7_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/7_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/7_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/7_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/8_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/8_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/8_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/8_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/8_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/8_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/8_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/8_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/8_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/8_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/8_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/8_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/8_center.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/8_center.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/8_center.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/8_center.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/8_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/8_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/8_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/8_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/8_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/8_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/8_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/8_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/8_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/8_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/8_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/8_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/8_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/8_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/8_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/8_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/8_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/8_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/8_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/8_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/9_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/9_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/9_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/9_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/9_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/9_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/9_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/9_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/9_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/9_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/9_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/9_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/9_center.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/9_center.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/9_center.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/9_center.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/9_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/9_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/9_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/9_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/9_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/9_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/9_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/9_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/9_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/9_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/9_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/9_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/9_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/9_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/9_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/9_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/9_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/9_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/9_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/edges/square/raised/tint/9_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/FileBrowser/createNewFolder.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/FileBrowser/createNewFolder.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/FileBrowser/createNewFolder.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/FileBrowser/createNewFolder.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/FileBrowser/file.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/FileBrowser/file.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/FileBrowser/file.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/FileBrowser/file.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/FileBrowser/folder.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/FileBrowser/folder.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/FileBrowser/folder.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/FileBrowser/folder.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/FileBrowser/previousFolder.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/FileBrowser/previousFolder.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/FileBrowser/previousFolder.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/FileBrowser/previousFolder.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/FileBrowser/refresh.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/FileBrowser/refresh.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/FileBrowser/refresh.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/FileBrowser/refresh.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/FileBrowser/upOneLevel.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/FileBrowser/upOneLevel.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/FileBrowser/upOneLevel.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/FileBrowser/upOneLevel.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/grid.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/grid.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/grid.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/grid.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ImgButton/button.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ImgButton/button.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ImgButton/button.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ImgButton/button.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ImgButton/button_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ImgButton/button_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ImgButton/button_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ImgButton/button_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ImgButton/button_Down.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ImgButton/button_Down.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ImgButton/button_Down.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ImgButton/button_Down.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ImgButton/button_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ImgButton/button_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ImgButton/button_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ImgButton/button_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/checked.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/checked.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/checked.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/checked.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/formula_menuItem.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/formula_menuItem.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/formula_menuItem.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/formula_menuItem.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/group_closed.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/group_closed.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/group_closed.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/group_closed.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/group_closed_rtl.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/group_closed_rtl.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/group_closed_rtl.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/group_closed_rtl.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/group_Disabled_closed.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/group_Disabled_closed.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/group_Disabled_closed.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/group_Disabled_closed.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/group_Disabled_opened.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/group_Disabled_opened.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/group_Disabled_opened.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/group_Disabled_opened.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/group_opened.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/group_opened.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/group_opened.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/group_opened.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/group_opening.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/group_opening.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/group_opening.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/group_opening.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Disabled_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Disabled_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Disabled_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Disabled_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Disabled_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Disabled_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Disabled_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Disabled_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Disabled_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Disabled_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Disabled_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Disabled_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Disabled_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Disabled_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Disabled_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Disabled_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Disabled_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Disabled_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Disabled_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Disabled_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Disabled_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Disabled_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Disabled_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Disabled_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Down_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Down_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Down_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Down_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Down_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Down_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Down_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Down_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Down_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Down_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Down_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Down_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Down_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Down_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Down_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Down_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Down_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Down_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Down_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Down_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Down_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Down_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Down_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Down_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Over_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Over_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Over_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Over_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Over_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Over_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Over_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Over_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Over_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Over_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Over_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Over_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Over_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Over_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Over_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Over_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Over_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Over_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Over_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Over_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Over_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Over_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Over_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Over_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Disabled_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Disabled_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Disabled_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Disabled_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Disabled_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Disabled_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Disabled_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Disabled_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Disabled_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Disabled_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Disabled_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Disabled_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Disabled_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Disabled_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Disabled_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Disabled_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Disabled_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Disabled_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Disabled_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Disabled_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Disabled_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Disabled_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Disabled_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Disabled_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Down_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Down_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Down_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Down_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Down_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Down_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Down_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Down_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Down_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Down_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Down_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Down_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Down_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Down_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Down_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Down_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Down_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Down_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Down_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Down_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Down_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Down_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Down_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Down_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Over_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Over_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Over_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Over_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Over_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Over_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Over_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Over_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Over_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Over_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Over_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Over_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Over_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Over_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Over_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Over_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Over_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Over_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Over_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Over_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Over_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Over_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Over_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_Over_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_Selected_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/header_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/headerMenuButton_icon.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/headerMenuButton_icon.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/headerMenuButton_icon.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/headerMenuButton_icon.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/sort_ascending.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/sort_ascending.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/sort_ascending.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/sort_ascending.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/sort_descending.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/sort_descending.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/sort_descending.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/sort_descending.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/tracker.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/tracker.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/tracker.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/tracker.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/validation_error_icon.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/validation_error_icon.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/validation_error_icon.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ListGrid/validation_error_icon.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/loading.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/loading.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/loading.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/loading.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/loadingSmall.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/loadingSmall.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/loadingSmall.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/loadingSmall.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Menu/check.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Menu/check.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Menu/check.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Menu/check.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Menu/check_disabled.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Menu/check_disabled.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Menu/check_disabled.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Menu/check_disabled.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Menu/menu_button.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Menu/menu_button.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Menu/menu_button.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Menu/menu_button.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Menu/menu_button_Disabled.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Menu/menu_button_Disabled.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Menu/menu_button_Disabled.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Menu/menu_button_Disabled.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Menu/menu_button_up.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Menu/menu_button_up.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Menu/menu_button_up.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Menu/menu_button_up.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Menu/menu_button_up_Disabled.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Menu/menu_button_up_Disabled.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Menu/menu_button_up_Disabled.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Menu/menu_button_up_Disabled.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Menu/submenu.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Menu/submenu.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Menu/submenu.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Menu/submenu.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Menu/submenu_disabled.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Menu/submenu_disabled.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Menu/submenu_disabled.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Menu/submenu_disabled.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Menu/submenu_disabled_left.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Menu/submenu_disabled_left.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Menu/submenu_disabled_left.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Menu/submenu_disabled_left.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Menu/submenu_down.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Menu/submenu_down.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Menu/submenu_down.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Menu/submenu_down.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Menu/submenu_left.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Menu/submenu_left.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Menu/submenu_left.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Menu/submenu_left.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/MultiFileItem/icon_add_files.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/MultiFileItem/icon_add_files.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/MultiFileItem/icon_add_files.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/MultiFileItem/icon_add_files.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/MultiFileItem/icon_add_files_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/MultiFileItem/icon_add_files_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/MultiFileItem/icon_add_files_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/MultiFileItem/icon_add_files_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/MultiFileItem/icon_remove_files.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/MultiFileItem/icon_remove_files.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/MultiFileItem/icon_remove_files.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/MultiFileItem/icon_remove_files.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/MultiFileItem/icon_remove_files_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/MultiFileItem/icon_remove_files_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/MultiFileItem/icon_remove_files_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/MultiFileItem/icon_remove_files_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/MultiUploadItem/icon_add_files.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/MultiUploadItem/icon_add_files.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/MultiUploadItem/icon_add_files.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/MultiUploadItem/icon_add_files.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/MultiUploadItem/icon_add_files_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/MultiUploadItem/icon_add_files_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/MultiUploadItem/icon_add_files_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/MultiUploadItem/icon_add_files_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/MultiUploadItem/icon_remove_files.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/MultiUploadItem/icon_remove_files.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/MultiUploadItem/icon_remove_files.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/MultiUploadItem/icon_remove_files.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/MultiUploadItem/icon_remove_files_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/MultiUploadItem/icon_remove_files_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/MultiUploadItem/icon_remove_files_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/MultiUploadItem/icon_remove_files_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/opacity.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/opacity.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/opacity.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/opacity.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/close.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/close.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/close.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/close.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/close_disabled.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/close_disabled.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/close_disabled.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/close_disabled.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/close_down.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/close_down.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/close_down.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/close_down.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/close_over.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/close_over.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/close_over.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/close_over.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/customize.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/customize.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/customize.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/customize.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/customize_disabled.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/customize_disabled.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/customize_disabled.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/customize_disabled.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/customize_down.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/customize_down.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/customize_down.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/customize_down.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/customize_over.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/customize_over.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/customize_over.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/customize_over.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/maximize.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/maximize.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/maximize.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/maximize.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/maximize_disabled.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/maximize_disabled.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/maximize_disabled.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/maximize_disabled.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/maximize_down.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/maximize_down.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/maximize_down.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/maximize_down.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/maximize_over.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/maximize_over.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/maximize_over.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/maximize_over.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/minimize.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/minimize.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/minimize.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/minimize.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/minimize_disabled.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/minimize_disabled.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/minimize_disabled.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/minimize_disabled.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/minimize_down.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/minimize_down.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/minimize_down.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/minimize_down.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/minimize_over.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/minimize_over.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/minimize_over.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/minimize_over.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/Portlet.psd b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/Portlet.psd
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/Portlet.psd and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Portlet/Portlet.psd differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Progressbar/Progressbar.psd b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Progressbar/Progressbar.psd
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Progressbar/Progressbar.psd and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Progressbar/Progressbar.psd differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Progressbar/progressbar_bar_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Progressbar/progressbar_bar_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Progressbar/progressbar_bar_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Progressbar/progressbar_bar_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Progressbar/progressbar_bar_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Progressbar/progressbar_bar_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Progressbar/progressbar_bar_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Progressbar/progressbar_bar_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Progressbar/progressbar_bar_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Progressbar/progressbar_bar_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Progressbar/progressbar_bar_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Progressbar/progressbar_bar_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Progressbar/progressbar_empty_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Progressbar/progressbar_empty_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Progressbar/progressbar_empty_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Progressbar/progressbar_empty_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Progressbar/progressbar_empty_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Progressbar/progressbar_empty_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Progressbar/progressbar_empty_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Progressbar/progressbar_empty_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Progressbar/progressbar_empty_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Progressbar/progressbar_empty_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Progressbar/progressbar_empty_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Progressbar/progressbar_empty_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Progressbar/spacer.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Progressbar/spacer.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Progressbar/spacer.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Progressbar/spacer.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RecordEditor/add.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RecordEditor/add.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RecordEditor/add.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RecordEditor/add.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RecordEditor/add_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RecordEditor/add_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RecordEditor/add_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RecordEditor/add_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RecordEditor/add_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RecordEditor/add_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RecordEditor/add_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RecordEditor/add_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RecordEditor/check.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RecordEditor/check.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RecordEditor/check.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RecordEditor/check.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RecordEditor/filter.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RecordEditor/filter.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RecordEditor/filter.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RecordEditor/filter.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RecordEditor/filter_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RecordEditor/filter_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RecordEditor/filter_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RecordEditor/filter_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RecordEditor/filter_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RecordEditor/filter_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RecordEditor/filter_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RecordEditor/filter_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RecordEditor/query.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RecordEditor/query.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RecordEditor/query.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RecordEditor/query.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/background_color.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/background_color.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/background_color.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/background_color.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/background_color_Disabled.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/background_color_Disabled.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/background_color_Disabled.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/background_color_Disabled.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/copy.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/copy.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/copy.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/copy.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/copy_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/copy_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/copy_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/copy_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/cut.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/cut.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/cut.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/cut.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/cut_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/cut_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/cut_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/cut_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/indent.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/indent.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/indent.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/indent.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/indent_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/indent_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/indent_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/indent_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/link_new.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/link_new.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/link_new.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/link_new.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/outdent.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/outdent.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/outdent.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/outdent.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/outdent_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/outdent_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/outdent_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/outdent_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/paste.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/paste.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/paste.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/paste.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/paste_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/paste_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/paste_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/paste_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/separator.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/separator.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/separator.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/separator.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/separator_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/separator_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/separator_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/separator_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/text_align_center.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/text_align_center.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/text_align_center.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/text_align_center.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/text_align_center_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/text_align_center_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/text_align_center_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/text_align_center_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/text_align_justified.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/text_align_justified.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/text_align_justified.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/text_align_justified.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/text_align_justified_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/text_align_justified_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/text_align_justified_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/text_align_justified_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/text_align_left.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/text_align_left.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/text_align_left.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/text_align_left.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/text_align_left_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/text_align_left_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/text_align_left_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/text_align_left_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/text_align_right.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/text_align_right.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/text_align_right.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/text_align_right.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/text_align_right_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/text_align_right_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/text_align_right_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/text_align_right_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/text_bold.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/text_bold.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/text_bold.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/text_bold.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/text_color.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/text_color.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/text_color.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/text_color.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/text_color_Disabled.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/text_color_Disabled.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/text_color_Disabled.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/text_color_Disabled.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/text_italic.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/text_italic.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/text_italic.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/text_italic.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/text_underline.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/text_underline.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/text_underline.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/RichTextEditor/text_underline.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SchemaViewer/complexType.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SchemaViewer/complexType.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SchemaViewer/complexType.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SchemaViewer/complexType.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SchemaViewer/operation.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SchemaViewer/operation.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SchemaViewer/operation.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SchemaViewer/operation.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SchemaViewer/simpleType.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SchemaViewer/simpleType.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SchemaViewer/simpleType.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SchemaViewer/simpleType.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hscroll_corner.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hscroll_corner.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hscroll_corner.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hscroll_corner.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hscroll_Disabled_corner.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hscroll_Disabled_corner.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hscroll_Disabled_corner.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hscroll_Disabled_corner.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hscroll_Disabled_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hscroll_Disabled_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hscroll_Disabled_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hscroll_Disabled_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hscroll_Disabled_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hscroll_Disabled_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hscroll_Disabled_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hscroll_Disabled_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hscroll_Disabled_track.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hscroll_Disabled_track.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hscroll_Disabled_track.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hscroll_Disabled_track.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hscroll_Down_corner.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hscroll_Down_corner.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hscroll_Down_corner.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hscroll_Down_corner.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hscroll_Down_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hscroll_Down_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hscroll_Down_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hscroll_Down_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hscroll_Down_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hscroll_Down_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hscroll_Down_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hscroll_Down_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hscroll_Down_track.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hscroll_Down_track.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hscroll_Down_track.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hscroll_Down_track.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hscroll_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hscroll_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hscroll_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hscroll_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hscroll_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hscroll_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hscroll_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hscroll_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hscroll_track.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hscroll_track.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hscroll_track.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hscroll_track.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hthumb_Disabled_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hthumb_Disabled_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hthumb_Disabled_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hthumb_Disabled_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hthumb_Disabled_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hthumb_Disabled_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hthumb_Disabled_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hthumb_Disabled_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hthumb_Disabled_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hthumb_Disabled_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hthumb_Disabled_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hthumb_Disabled_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hthumb_Down_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hthumb_Down_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hthumb_Down_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hthumb_Down_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hthumb_Down_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hthumb_Down_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hthumb_Down_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hthumb_Down_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hthumb_Down_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hthumb_Down_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hthumb_Down_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hthumb_Down_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hthumb_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hthumb_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hthumb_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hthumb_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hthumb_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hthumb_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hthumb_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hthumb_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hthumb_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hthumb_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hthumb_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/hthumb_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/scrollbar.psd b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/scrollbar.psd
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/scrollbar.psd and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/scrollbar.psd differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vscroll_corner.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vscroll_corner.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vscroll_corner.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vscroll_corner.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vscroll_Disabled_corner.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vscroll_Disabled_corner.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vscroll_Disabled_corner.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vscroll_Disabled_corner.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vscroll_Disabled_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vscroll_Disabled_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vscroll_Disabled_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vscroll_Disabled_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vscroll_Disabled_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vscroll_Disabled_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vscroll_Disabled_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vscroll_Disabled_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vscroll_Disabled_track.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vscroll_Disabled_track.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vscroll_Disabled_track.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vscroll_Disabled_track.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vscroll_Down_corner.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vscroll_Down_corner.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vscroll_Down_corner.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vscroll_Down_corner.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vscroll_Down_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vscroll_Down_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vscroll_Down_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vscroll_Down_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vscroll_Down_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vscroll_Down_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vscroll_Down_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vscroll_Down_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vscroll_Down_track.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vscroll_Down_track.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vscroll_Down_track.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vscroll_Down_track.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vscroll_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vscroll_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vscroll_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vscroll_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vscroll_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vscroll_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vscroll_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vscroll_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vscroll_track.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vscroll_track.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vscroll_track.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vscroll_track.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vthumb_Disabled_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vthumb_Disabled_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vthumb_Disabled_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vthumb_Disabled_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vthumb_Disabled_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vthumb_Disabled_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vthumb_Disabled_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vthumb_Disabled_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vthumb_Disabled_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vthumb_Disabled_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vthumb_Disabled_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vthumb_Disabled_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vthumb_Down_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vthumb_Down_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vthumb_Down_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vthumb_Down_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vthumb_Down_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vthumb_Down_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vthumb_Down_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vthumb_Down_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vthumb_Down_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vthumb_Down_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vthumb_Down_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vthumb_Down_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vthumb_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vthumb_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vthumb_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vthumb_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vthumb_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vthumb_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vthumb_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vthumb_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vthumb_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vthumb_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vthumb_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Scrollbar/vthumb_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/header_closed_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/header_closed_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/header_closed_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/header_closed_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/header_closed_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/header_closed_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/header_closed_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/header_closed_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/header_closed_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/header_closed_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/header_closed_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/header_closed_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/header_Disabled_closed_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/header_Disabled_closed_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/header_Disabled_closed_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/header_Disabled_closed_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/header_Disabled_closed_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/header_Disabled_closed_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/header_Disabled_closed_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/header_Disabled_closed_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/header_Disabled_closed_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/header_Disabled_closed_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/header_Disabled_closed_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/header_Disabled_closed_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/header_Disabled_opened_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/header_Disabled_opened_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/header_Disabled_opened_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/header_Disabled_opened_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/header_Disabled_opened_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/header_Disabled_opened_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/header_Disabled_opened_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/header_Disabled_opened_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/header_Disabled_opened_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/header_Disabled_opened_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/header_Disabled_opened_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/header_Disabled_opened_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/header_opened_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/header_opened_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/header_opened_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/header_opened_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/header_opened_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/header_opened_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/header_opened_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/header_opened_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/header_opened_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/header_opened_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/header_opened_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/header_opened_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/opener_closed.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/opener_closed.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/opener_closed.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/opener_closed.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/opener_Disabled_closed.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/opener_Disabled_closed.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/opener_Disabled_closed.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/opener_Disabled_closed.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/opener_Disabled_opened.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/opener_Disabled_opened.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/opener_Disabled_opened.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/opener_Disabled_opened.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/opener_opened.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/opener_opened.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/opener_opened.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionHeader/opener_opened.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/blue/header_closed_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/blue/header_closed_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/blue/header_closed_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/blue/header_closed_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/blue/header_closed_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/blue/header_closed_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/blue/header_closed_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/blue/header_closed_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/blue/header_closed_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/blue/header_closed_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/blue/header_closed_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/blue/header_closed_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/blue/header_opened_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/blue/header_opened_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/blue/header_opened_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/blue/header_opened_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/blue/header_opened_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/blue/header_opened_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/blue/header_opened_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/blue/header_opened_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/blue/header_opened_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/blue/header_opened_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/blue/header_opened_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/blue/header_opened_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/header_closed_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/header_closed_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/header_closed_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/header_closed_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/header_closed_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/header_closed_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/header_closed_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/header_closed_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/header_closed_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/header_closed_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/header_closed_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/header_closed_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/header_Disabled_closed_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/header_Disabled_closed_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/header_Disabled_closed_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/header_Disabled_closed_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/header_Disabled_closed_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/header_Disabled_closed_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/header_Disabled_closed_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/header_Disabled_closed_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/header_Disabled_closed_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/header_Disabled_closed_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/header_Disabled_closed_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/header_Disabled_closed_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/header_Disabled_opened_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/header_Disabled_opened_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/header_Disabled_opened_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/header_Disabled_opened_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/header_Disabled_opened_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/header_Disabled_opened_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/header_Disabled_opened_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/header_Disabled_opened_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/header_Disabled_opened_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/header_Disabled_opened_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/header_Disabled_opened_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/header_Disabled_opened_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/header_opened_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/header_opened_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/header_opened_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/header_opened_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/header_opened_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/header_opened_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/header_opened_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/header_opened_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/header_opened_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/header_opened_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/header_opened_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/SectionStack/header_opened_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/no_drop.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/no_drop.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/no_drop.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/no_drop.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/progressCursorTracker.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/progressCursorTracker.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/progressCursorTracker.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/progressCursorTracker.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds_center.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds_center.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds_center.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds_center.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds1_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds1_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds1_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds1_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds1_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds1_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds1_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds1_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds1_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds1_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds1_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds1_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds1_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds1_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds1_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds1_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds1_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds1_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds1_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds1_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds1_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds1_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds1_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds1_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds1_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds1_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds1_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds1_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds1_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds1_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds1_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds1_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds10_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds10_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds10_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds10_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds10_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds10_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds10_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds10_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds10_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds10_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds10_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds10_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds10_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds10_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds10_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds10_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds10_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds10_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds10_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds10_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds10_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds10_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds10_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds10_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds10_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds10_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds10_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds10_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds10_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds10_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds10_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds10_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds2_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds2_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds2_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds2_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds2_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds2_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds2_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds2_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds2_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds2_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds2_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds2_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds2_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds2_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds2_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds2_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds2_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds2_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds2_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds2_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds2_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds2_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds2_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds2_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds2_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds2_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds2_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds2_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds2_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds2_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds2_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds2_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds3_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds3_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds3_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds3_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds3_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds3_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds3_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds3_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds3_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds3_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds3_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds3_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds3_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds3_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds3_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds3_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds3_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds3_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds3_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds3_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds3_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds3_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds3_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds3_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds3_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds3_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds3_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds3_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds3_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds3_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds3_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds3_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds4_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds4_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds4_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds4_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds4_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds4_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds4_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds4_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds4_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds4_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds4_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds4_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds4_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds4_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds4_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds4_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds4_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds4_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds4_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds4_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds4_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds4_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds4_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds4_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds4_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds4_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds4_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds4_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds4_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds4_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds4_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds4_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds5_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds5_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds5_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds5_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds5_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds5_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds5_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds5_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds5_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds5_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds5_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds5_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds5_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds5_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds5_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds5_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds5_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds5_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds5_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds5_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds5_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds5_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds5_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds5_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds5_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds5_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds5_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds5_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds5_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds5_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds5_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds5_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds6_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds6_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds6_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds6_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds6_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds6_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds6_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds6_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds6_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds6_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds6_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds6_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds6_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds6_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds6_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds6_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds6_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds6_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds6_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds6_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds6_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds6_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds6_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds6_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds6_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds6_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds6_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds6_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds6_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds6_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds6_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds6_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds7_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds7_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds7_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds7_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds7_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds7_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds7_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds7_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds7_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds7_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds7_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds7_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds7_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds7_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds7_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds7_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds7_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds7_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds7_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds7_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds7_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds7_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds7_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds7_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds7_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds7_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds7_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds7_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds7_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds7_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds7_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds7_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds8_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds8_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds8_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds8_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds8_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds8_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds8_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds8_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds8_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds8_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds8_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds8_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds8_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds8_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds8_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds8_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds8_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds8_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds8_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds8_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds8_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds8_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds8_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds8_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds8_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds8_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds8_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds8_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds8_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds8_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds8_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds8_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds9_B.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds9_B.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds9_B.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds9_B.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds9_BL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds9_BL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds9_BL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds9_BL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds9_BR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds9_BR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds9_BR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds9_BR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds9_L.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds9_L.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds9_L.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds9_L.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds9_R.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds9_R.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds9_R.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds9_R.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds9_T.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds9_T.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds9_T.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds9_T.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds9_TL.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds9_TL.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds9_TL.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds9_TL.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds9_TR.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds9_TR.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds9_TR.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/shared/shadows/ds9_TR.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/hthumb.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/hthumb.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/hthumb.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/hthumb.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/hthumb_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/hthumb_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/hthumb_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/hthumb_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/hthumb_down.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/hthumb_down.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/hthumb_down.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/hthumb_down.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/htrack_Disabled_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/htrack_Disabled_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/htrack_Disabled_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/htrack_Disabled_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/htrack_Disabled_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/htrack_Disabled_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/htrack_Disabled_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/htrack_Disabled_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/htrack_Disabled_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/htrack_Disabled_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/htrack_Disabled_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/htrack_Disabled_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/htrack_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/htrack_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/htrack_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/htrack_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/htrack_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/htrack_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/htrack_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/htrack_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/htrack_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/htrack_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/htrack_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/htrack_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/vthumb.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/vthumb.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/vthumb.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/vthumb.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/vthumb_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/vthumb_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/vthumb_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/vthumb_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/vthumb_down.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/vthumb_down.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/vthumb_down.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/vthumb_down.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/vtrack_Disabled_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/vtrack_Disabled_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/vtrack_Disabled_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/vtrack_Disabled_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/vtrack_Disabled_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/vtrack_Disabled_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/vtrack_Disabled_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/vtrack_Disabled_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/vtrack_Disabled_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/vtrack_Disabled_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/vtrack_Disabled_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/vtrack_Disabled_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/vtrack_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/vtrack_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/vtrack_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/vtrack_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/vtrack_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/vtrack_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/vtrack_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/vtrack_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/vtrack_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/vtrack_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/vtrack_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Slider/vtrack_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/hsplit_Down_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/hsplit_Down_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/hsplit_Down_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/hsplit_Down_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/hsplit_Down_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/hsplit_Down_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/hsplit_Down_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/hsplit_Down_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/hsplit_Down_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/hsplit_Down_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/hsplit_Down_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/hsplit_Down_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/hsplit_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/hsplit_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/hsplit_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/hsplit_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/hsplit_grip.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/hsplit_grip.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/hsplit_grip.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/hsplit_grip.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/hsplit_grip_Down.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/hsplit_grip_Down.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/hsplit_grip_Down.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/hsplit_grip_Down.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/hsplit_grip_Over.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/hsplit_grip_Over.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/hsplit_grip_Over.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/hsplit_grip_Over.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/hsplit_Over_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/hsplit_Over_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/hsplit_Over_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/hsplit_Over_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/hsplit_Over_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/hsplit_Over_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/hsplit_Over_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/hsplit_Over_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/hsplit_Over_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/hsplit_Over_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/hsplit_Over_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/hsplit_Over_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/hsplit_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/hsplit_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/hsplit_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/hsplit_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/hsplit_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/hsplit_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/hsplit_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/hsplit_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/vsplit_Down_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/vsplit_Down_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/vsplit_Down_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/vsplit_Down_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/vsplit_Down_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/vsplit_Down_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/vsplit_Down_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/vsplit_Down_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/vsplit_Down_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/vsplit_Down_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/vsplit_Down_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/vsplit_Down_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/vsplit_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/vsplit_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/vsplit_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/vsplit_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/vsplit_grip.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/vsplit_grip.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/vsplit_grip.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/vsplit_grip.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/vsplit_grip_Down.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/vsplit_grip_Down.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/vsplit_grip_Down.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/vsplit_grip_Down.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/vsplit_grip_Over.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/vsplit_grip_Over.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/vsplit_grip_Over.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/vsplit_grip_Over.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/vsplit_Over_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/vsplit_Over_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/vsplit_Over_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/vsplit_Over_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/vsplit_Over_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/vsplit_Over_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/vsplit_Over_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/vsplit_Over_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/vsplit_Over_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/vsplit_Over_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/vsplit_Over_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/vsplit_Over_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/vsplit_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/vsplit_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/vsplit_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/vsplit_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/vsplit_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/vsplit_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/vsplit_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/9FCFFF/vsplit_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hgrip.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hgrip.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hgrip.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hgrip.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hgrip_Down.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hgrip_Down.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hgrip_Down.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hgrip_Down.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_Down_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_Down_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_Down_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_Down_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_Down_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_Down_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_Down_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_Down_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_Down_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_Down_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_Down_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_Down_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_grip.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_grip.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_grip.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_grip.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_grip_Down.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_grip_Down.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_grip_Down.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_grip_Down.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_grip_Over.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_grip_Over.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_grip_Over.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_grip_Over.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_Over_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_Over_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_Over_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_Over_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_Over_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_Over_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_Over_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_Over_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_Over_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_Over_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_Over_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_Over_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_snap.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_snap.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_snap.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_snap.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_snap_closed.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_snap_closed.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_snap_closed.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_snap_closed.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_snap_Down.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_snap_Down.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_snap_Down.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_snap_Down.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_snap_Down_closed.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_snap_Down_closed.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_snap_Down_closed.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_snap_Down_closed.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_snap_Over.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_snap_Over.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_snap_Over.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_snap_Over.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_snap_Over_closed.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_snap_Over_closed.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_snap_Over_closed.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_snap_Over_closed.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/hsplit_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vgrip.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vgrip.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vgrip.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vgrip.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vgrip_Down.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vgrip_Down.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vgrip_Down.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vgrip_Down.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_Down_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_Down_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_Down_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_Down_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_Down_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_Down_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_Down_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_Down_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_Down_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_Down_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_Down_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_Down_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_grip.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_grip.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_grip.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_grip.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_grip_Down.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_grip_Down.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_grip_Down.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_grip_Down.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_grip_Over.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_grip_Over.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_grip_Over.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_grip_Over.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_Over_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_Over_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_Over_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_Over_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_Over_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_Over_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_Over_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_Over_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_Over_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_Over_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_Over_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_Over_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_snap.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_snap.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_snap.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_snap.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_snap_closed.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_snap_closed.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_snap_closed.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_snap_closed.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_snap_Down.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_snap_Down.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_snap_Down.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_snap_Down.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_snap_Down_closed.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_snap_Down_closed.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_snap_Down_closed.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_snap_Down_closed.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_snap_Over.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_snap_Over.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_snap_Over.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_snap_Over.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_snap_Over_closed.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_snap_Over_closed.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_snap_Over_closed.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_snap_Over_closed.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Splitbar/vsplit_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/hsplit_down_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/hsplit_down_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/hsplit_down_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/hsplit_down_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/hsplit_down_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/hsplit_down_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/hsplit_down_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/hsplit_down_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/hsplit_down_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/hsplit_down_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/hsplit_down_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/hsplit_down_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/hsplit_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/hsplit_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/hsplit_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/hsplit_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/hsplit_over_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/hsplit_over_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/hsplit_over_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/hsplit_over_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/hsplit_over_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/hsplit_over_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/hsplit_over_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/hsplit_over_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/hsplit_over_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/hsplit_over_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/hsplit_over_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/hsplit_over_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/hsplit_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/hsplit_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/hsplit_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/hsplit_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/hsplit_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/hsplit_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/hsplit_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/hsplit_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/vsplit_down_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/vsplit_down_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/vsplit_down_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/vsplit_down_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/vsplit_down_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/vsplit_down_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/vsplit_down_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/vsplit_down_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/vsplit_down_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/vsplit_down_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/vsplit_down_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/vsplit_down_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/vsplit_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/vsplit_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/vsplit_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/vsplit_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/vsplit_over_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/vsplit_over_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/vsplit_over_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/vsplit_over_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/vsplit_over_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/vsplit_over_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/vsplit_over_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/vsplit_over_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/vsplit_over_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/vsplit_over_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/vsplit_over_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/vsplit_over_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/vsplit_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/vsplit_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/vsplit_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/vsplit_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/vsplit_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/vsplit_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/vsplit_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Stretchbar/vsplit_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/baseline_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/baseline_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/baseline_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/baseline_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/baseline_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/baseline_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/baseline_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/baseline_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/baseline_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/baseline_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/baseline_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/baseline_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/baseline_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/baseline_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/baseline_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/baseline_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/baseline_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/baseline_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/baseline_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/baseline_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/baseline_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/baseline_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/baseline_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/baseline_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/Tab.psd b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/Tab.psd
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/Tab.psd and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/Tab.psd differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Disabled_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Disabled_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Disabled_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Disabled_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Disabled_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Disabled_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Disabled_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Disabled_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Disabled_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Disabled_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Disabled_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Disabled_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Disabled_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Disabled_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Disabled_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Disabled_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Disabled_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Disabled_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Disabled_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Disabled_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Disabled_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Disabled_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Disabled_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Disabled_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Down_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Down_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Down_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Down_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Down_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Down_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Down_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Down_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Down_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Down_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Down_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Down_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Down_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Down_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Down_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Down_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Down_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Down_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Down_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Down_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Down_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Down_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Down_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Down_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Over_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Over_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Over_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Over_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Over_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Over_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Over_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Over_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Over_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Over_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Over_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Over_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Over_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Over_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Over_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Over_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Over_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Over_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Over_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Over_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Over_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Over_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Over_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Over_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Disabled_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Disabled_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Disabled_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Disabled_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Disabled_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Disabled_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Disabled_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Disabled_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Disabled_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Disabled_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Disabled_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Disabled_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Disabled_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Disabled_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Disabled_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Disabled_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Disabled_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Disabled_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Disabled_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Disabled_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Disabled_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Disabled_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Disabled_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Disabled_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Down_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Down_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Down_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Down_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Down_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Down_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Down_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Down_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Down_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Down_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Down_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Down_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Down_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Down_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Down_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Down_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Down_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Down_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Down_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Down_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Down_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Down_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Down_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Down_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Over_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Over_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Over_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Over_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Over_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Over_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Over_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Over_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Over_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Over_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Over_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Over_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Over_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Over_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Over_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Over_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Over_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Over_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Over_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Over_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Over_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Over_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Over_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_Over_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_Selected_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/bottom/tab_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/baseline_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/baseline_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/baseline_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/baseline_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/baseline_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/baseline_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/baseline_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/baseline_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/baseline_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/baseline_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/baseline_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/baseline_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/baseline_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/baseline_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/baseline_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/baseline_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/baseline_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/baseline_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/baseline_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/baseline_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/baseline_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/baseline_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/baseline_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/baseline_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Disabled_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Disabled_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Disabled_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Disabled_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Disabled_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Disabled_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Disabled_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Disabled_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Disabled_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Disabled_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Disabled_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Disabled_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Disabled_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Disabled_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Disabled_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Disabled_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Disabled_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Disabled_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Disabled_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Disabled_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Disabled_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Disabled_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Disabled_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Disabled_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Down_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Down_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Down_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Down_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Down_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Down_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Down_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Down_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Down_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Down_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Down_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Down_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Down_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Down_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Down_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Down_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Down_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Down_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Down_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Down_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Down_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Down_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Down_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Down_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Over_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Over_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Over_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Over_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Over_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Over_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Over_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Over_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Over_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Over_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Over_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Over_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Over_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Over_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Over_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Over_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Over_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Over_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Over_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Over_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Over_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Over_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Over_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Over_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Disabled_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Disabled_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Disabled_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Disabled_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Disabled_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Disabled_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Disabled_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Disabled_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Disabled_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Disabled_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Disabled_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Disabled_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Disabled_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Disabled_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Disabled_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Disabled_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Disabled_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Disabled_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Disabled_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Disabled_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Disabled_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Disabled_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Disabled_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Disabled_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Down_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Down_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Down_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Down_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Down_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Down_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Down_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Down_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Down_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Down_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Down_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Down_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Down_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Down_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Down_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Down_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Down_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Down_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Down_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Down_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Down_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Down_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Down_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Down_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Over_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Over_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Over_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Over_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Over_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Over_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Over_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Over_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Over_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Over_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Over_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Over_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Over_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Over_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Over_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Over_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Over_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Over_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Over_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Over_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Over_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Over_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Over_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_Over_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_Selected_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/left/tab_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/baseline_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/baseline_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/baseline_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/baseline_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/baseline_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/baseline_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/baseline_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/baseline_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/baseline_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/baseline_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/baseline_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/baseline_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/baseline_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/baseline_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/baseline_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/baseline_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/baseline_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/baseline_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/baseline_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/baseline_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/baseline_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/baseline_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/baseline_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/baseline_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Disabled_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Disabled_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Disabled_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Disabled_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Disabled_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Disabled_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Disabled_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Disabled_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Disabled_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Disabled_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Disabled_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Disabled_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Disabled_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Disabled_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Disabled_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Disabled_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Disabled_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Disabled_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Disabled_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Disabled_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Disabled_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Disabled_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Disabled_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Disabled_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Down_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Down_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Down_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Down_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Down_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Down_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Down_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Down_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Down_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Down_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Down_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Down_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Down_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Down_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Down_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Down_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Down_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Down_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Down_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Down_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Down_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Down_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Down_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Down_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Over_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Over_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Over_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Over_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Over_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Over_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Over_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Over_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Over_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Over_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Over_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Over_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Over_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Over_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Over_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Over_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Over_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Over_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Over_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Over_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Over_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Over_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Over_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Over_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Disabled_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Disabled_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Disabled_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Disabled_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Disabled_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Disabled_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Disabled_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Disabled_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Disabled_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Disabled_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Disabled_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Disabled_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Disabled_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Disabled_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Disabled_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Disabled_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Disabled_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Disabled_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Disabled_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Disabled_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Disabled_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Disabled_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Disabled_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Disabled_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Down_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Down_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Down_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Down_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Down_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Down_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Down_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Down_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Down_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Down_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Down_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Down_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Down_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Down_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Down_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Down_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Down_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Down_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Down_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Down_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Down_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Down_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Down_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Down_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Over_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Over_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Over_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Over_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Over_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Over_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Over_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Over_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Over_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Over_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Over_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Over_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Over_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Over_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Over_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Over_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Over_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Over_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Over_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Over_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Over_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Over_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Over_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_Over_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_Selected_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/right/tab_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/baseline_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/baseline_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/baseline_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/baseline_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/baseline_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/baseline_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/baseline_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/baseline_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/baseline_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/baseline_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/baseline_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/baseline_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/baseline_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/baseline_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/baseline_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/baseline_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/baseline_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/baseline_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/baseline_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/baseline_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/baseline_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/baseline_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/baseline_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/baseline_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/Tab.psd b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/Tab.psd
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/Tab.psd and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/Tab.psd differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Disabled_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Disabled_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Disabled_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Disabled_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Disabled_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Disabled_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Disabled_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Disabled_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Disabled_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Disabled_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Disabled_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Disabled_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Disabled_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Disabled_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Disabled_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Disabled_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Disabled_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Disabled_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Disabled_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Disabled_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Disabled_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Disabled_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Disabled_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Disabled_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Down_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Down_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Down_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Down_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Down_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Down_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Down_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Down_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Down_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Down_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Down_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Down_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Down_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Down_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Down_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Down_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Down_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Down_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Down_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Down_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Down_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Down_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Down_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Down_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Over_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Over_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Over_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Over_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Over_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Over_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Over_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Over_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Over_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Over_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Over_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Over_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Over_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Over_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Over_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Over_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Over_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Over_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Over_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Over_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Over_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Over_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Over_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Over_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Disabled_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Disabled_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Disabled_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Disabled_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Disabled_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Disabled_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Disabled_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Disabled_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Disabled_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Disabled_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Disabled_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Disabled_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Disabled_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Disabled_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Disabled_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Disabled_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Disabled_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Disabled_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Disabled_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Disabled_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Disabled_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Disabled_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Disabled_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Disabled_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Down_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Down_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Down_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Down_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Down_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Down_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Down_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Down_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Down_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Down_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Down_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Down_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Down_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Down_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Down_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Down_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Down_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Down_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Down_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Down_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Down_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Down_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Down_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Down_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Over_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Over_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Over_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Over_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Over_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Over_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Over_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Over_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Over_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Over_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Over_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Over_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Over_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Over_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Over_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Over_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Over_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Over_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Over_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Over_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Over_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Over_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Over_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_Over_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_Selected_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_stretch.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_stretch.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_stretch.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_stretch.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Tab/top/tab_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/close.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/close.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/close.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/close.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/close_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/close_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/close_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/close_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/hpicker.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/hpicker.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/hpicker.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/hpicker.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/hpicker_Disabled.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/hpicker_Disabled.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/hpicker_Disabled.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/hpicker_Disabled.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/hpicker_Down.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/hpicker_Down.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/hpicker_Down.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/hpicker_Down.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/hscroll_back.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/hscroll_back.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/hscroll_back.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/hscroll_back.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/hscroll_Disabled_back.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/hscroll_Disabled_back.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/hscroll_Disabled_back.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/hscroll_Disabled_back.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/hscroll_Disabled_forward.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/hscroll_Disabled_forward.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/hscroll_Disabled_forward.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/hscroll_Disabled_forward.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/hscroll_Down_back.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/hscroll_Down_back.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/hscroll_Down_back.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/hscroll_Down_back.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/hscroll_Down_forward.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/hscroll_Down_forward.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/hscroll_Down_forward.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/hscroll_Down_forward.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/hscroll_forward.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/hscroll_forward.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/hscroll_forward.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/hscroll_forward.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/vpicker.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/vpicker.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/vpicker.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/vpicker.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/vpicker_Disabled.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/vpicker_Disabled.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/vpicker_Disabled.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/vpicker_Disabled.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/vpicker_Down.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/vpicker_Down.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/vpicker_Down.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/vpicker_Down.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/vscroll_back.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/vscroll_back.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/vscroll_back.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/vscroll_back.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/vscroll_Disabled_back.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/vscroll_Disabled_back.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/vscroll_Disabled_back.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/vscroll_Disabled_back.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/vscroll_Disabled_forward.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/vscroll_Disabled_forward.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/vscroll_Disabled_forward.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/vscroll_Disabled_forward.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/vscroll_Down_back.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/vscroll_Down_back.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/vscroll_Down_back.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/vscroll_Down_back.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/vscroll_Down_forward.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/vscroll_Down_forward.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/vscroll_Down_forward.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/vscroll_Down_forward.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/vscroll_forward.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/vscroll_forward.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/vscroll_forward.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TabSet/vscroll_forward.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Disabled_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Disabled_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Disabled_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Disabled_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Disabled_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Disabled_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Disabled_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Disabled_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Disabled_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Disabled_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Disabled_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Disabled_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Down_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Down_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Down_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Down_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Down_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Down_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Down_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Down_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Down_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Down_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Down_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Down_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Over_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Over_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Over_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Over_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Over_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Over_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Over_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Over_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Over_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Over_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Over_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Over_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Selected_Down_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Selected_Down_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Selected_Down_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Selected_Down_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Selected_Down_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Selected_Down_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Selected_Down_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Selected_Down_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Selected_Down_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Selected_Down_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Selected_Down_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Selected_Down_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Selected_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Selected_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Selected_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Selected_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Selected_Over_end.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Selected_Over_end.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Selected_Over_end.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Selected_Over_end.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Selected_Over_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Selected_Over_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Selected_Over_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Selected_Over_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Selected_Over_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Selected_Over_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Selected_Over_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Selected_Over_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Selected_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Selected_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Selected_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Selected_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Selected_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Selected_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Selected_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_Selected_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_start.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_start.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_start.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_start.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_stretch.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_stretch.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_stretch.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/button/button_stretch.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/hresizer.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/hresizer.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/hresizer.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/hresizer.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/hresizer_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/hresizer_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/hresizer_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/hresizer_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/hseparator.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/hseparator.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/hseparator.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/hseparator.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/hseparator_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/hseparator_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/hseparator_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/hseparator_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/resizer.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/resizer.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/resizer.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/resizer.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/resizer_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/resizer_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/resizer_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/resizer_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/separator.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/separator.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/separator.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/separator.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/separator_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/separator_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/separator_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/ToolStrip/separator_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/checked.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/checked.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/checked.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/checked.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/connector_ancestor.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/connector_ancestor.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/connector_ancestor.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/connector_ancestor.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/connector_closed_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/connector_closed_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/connector_closed_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/connector_closed_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/connector_closed_middle.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/connector_closed_middle.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/connector_closed_middle.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/connector_closed_middle.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/connector_closed_single.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/connector_closed_single.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/connector_closed_single.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/connector_closed_single.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/connector_closed_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/connector_closed_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/connector_closed_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/connector_closed_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/connector_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/connector_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/connector_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/connector_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/connector_middle.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/connector_middle.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/connector_middle.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/connector_middle.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/connector_opened_end.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/connector_opened_end.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/connector_opened_end.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/connector_opened_end.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/connector_opened_middle.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/connector_opened_middle.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/connector_opened_middle.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/connector_opened_middle.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/connector_opened_single.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/connector_opened_single.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/connector_opened_single.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/connector_opened_single.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/connector_opened_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/connector_opened_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/connector_opened_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/connector_opened_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/connector_single.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/connector_single.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/connector_single.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/connector_single.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/connector_start.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/connector_start.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/connector_start.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/connector_start.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/file.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/file.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/file.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/file.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/file.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/file.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/file.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/file.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/folder_closed.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/folder_closed.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/folder_closed.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/folder_closed.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/folder_closed.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/folder_closed.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/folder_closed.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/folder_closed.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/folder_drop.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/folder_drop.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/folder_drop.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/folder_drop.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/folder_drop.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/folder_drop.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/folder_drop.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/folder_drop.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/folder_file.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/folder_file.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/folder_file.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/folder_file.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/folder_file.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/folder_file.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/folder_file.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/folder_file.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/folder_open.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/folder_open.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/folder_open.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/folder_open.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/folder_open.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/folder_open.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/folder_open.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/folder_open.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/folder_up.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/folder_up.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/folder_up.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/folder_up.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/opener_closed.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/opener_closed.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/opener_closed.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/opener_closed.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/opener_closed_rtl.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/opener_closed_rtl.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/opener_closed_rtl.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/opener_closed_rtl.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/opener_Disabled_closed.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/opener_Disabled_closed.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/opener_Disabled_closed.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/opener_Disabled_closed.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/opener_Disabled_opened.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/opener_Disabled_opened.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/opener_Disabled_opened.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/opener_Disabled_opened.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/opener_opened.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/opener_opened.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/opener_opened.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/opener_opened.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/opener_opening.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/opener_opening.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/opener_opening.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/opener_opening.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/sort_ascending.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/sort_ascending.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/sort_ascending.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/sort_ascending.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/sort_descending.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/sort_descending.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/sort_descending.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/sort_descending.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/TreeGrid.psd b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/TreeGrid.psd
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/TreeGrid.psd and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/TreeGrid.psd differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/validation_error_icon.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/validation_error_icon.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/validation_error_icon.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/TreeGrid/validation_error_icon.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/close.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/close.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/close.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/close.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/close_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/close_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/close_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/close_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/close_Down.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/close_Down.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/close_Down.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/close_Down.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/close_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/close_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/close_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/close_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/collapse.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/collapse.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/collapse.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/collapse.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/collapse_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/collapse_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/collapse_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/collapse_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/collapse_Down.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/collapse_Down.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/collapse_Down.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/collapse_Down.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/collapse_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/collapse_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/collapse_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/collapse_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/edit.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/edit.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/edit.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/edit.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/edit_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/edit_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/edit_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/edit_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/edit_Down.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/edit_Down.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/edit_Down.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/edit_Down.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/edit_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/edit_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/edit_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/edit_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/expand.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/expand.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/expand.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/expand.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/expand_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/expand_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/expand_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/expand_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/expand_Down.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/expand_Down.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/expand_Down.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/expand_Down.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/expand_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/expand_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/expand_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/expand_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/headerGradient.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/headerGradient.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/headerGradient.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/headerGradient.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/headerGradient.psd b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/headerGradient.psd
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/headerGradient.psd and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/headerGradient.psd differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/headerGradient_hilite.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/headerGradient_hilite.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/headerGradient_hilite.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/headerGradient_hilite.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/headerIcon.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/headerIcon.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/headerIcon.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/headerIcon.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/help.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/help.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/help.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/help.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/help_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/help_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/help_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/help_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/help_Down.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/help_Down.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/help_Down.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/help_Down.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/help_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/help_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/help_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/help_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/maximize.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/maximize.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/maximize.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/maximize.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/maximize_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/maximize_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/maximize_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/maximize_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/maximize_Down.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/maximize_Down.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/maximize_Down.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/maximize_Down.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/maximize_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/maximize_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/maximize_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/maximize_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/minimize.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/minimize.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/minimize.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/minimize.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/minimize_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/minimize_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/minimize_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/minimize_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/minimize_Down.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/minimize_Down.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/minimize_Down.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/minimize_Down.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/minimize_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/minimize_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/minimize_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/minimize_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/pin.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/pin.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/pin.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/pin.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/pin_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/pin_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/pin_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/pin_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/pin_Down.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/pin_Down.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/pin_Down.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/pin_Down.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/pin_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/pin_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/pin_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/pin_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/resizer.gif b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/resizer.gif
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/resizer.gif and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/resizer.gif differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/restore.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/restore.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/restore.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/restore.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/restore_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/restore_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/restore_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/restore_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/restore_Down.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/restore_Down.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/restore_Down.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/restore_Down.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/restore_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/restore_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/restore_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/restore_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/tree.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/tree.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/tree.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/tree.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/tree_Disabled.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/tree_Disabled.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/tree_Disabled.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/tree_Disabled.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/tree_Down.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/tree_Down.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/tree_Down.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/tree_Down.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/tree_Over.png b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/tree_Over.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/tree_Over.png and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/tree_Over.png differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/Window.psd b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/Window.psd
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/Window.psd and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/images/Window/Window.psd differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/load_skin.js b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/load_skin.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/load_skin.js.gz b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/load_skin.js.gz
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/load_skin.js.gz and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/load_skin.js.gz differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/skin_styles.css b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/skin_styles.css
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/skin_styles.css.gz b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/skin_styles.css.gz
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/skin_styles.css.gz and b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/skin_styles.css.gz differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/unsupported_browser.html b/sm-shop/src/main/webapp/resources/smart-client/skins/SmartClient/unsupported_browser.html
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_Calendar.js b/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_Calendar.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_Calendar.js.gz b/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_Calendar.js.gz
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_Calendar.js.gz and b/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_Calendar.js.gz differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_ClassBrowser.js b/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_ClassBrowser.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_ClassBrowser.js.gz b/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_ClassBrowser.js.gz
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_ClassBrowser.js.gz and b/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_ClassBrowser.js.gz differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_Containers.js b/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_Containers.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_Containers.js.gz b/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_Containers.js.gz
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_Containers.js.gz and b/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_Containers.js.gz differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_Core.js b/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_Core.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_Core.js.gz b/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_Core.js.gz
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_Core.js.gz and b/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_Core.js.gz differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_DataBinding.js b/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_DataBinding.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_DataBinding.js.gz b/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_DataBinding.js.gz
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_DataBinding.js.gz and b/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_DataBinding.js.gz differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_Drawing.js b/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_Drawing.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_Drawing.js.gz b/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_Drawing.js.gz
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_Drawing.js.gz and b/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_Drawing.js.gz differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_DSBrowser.js b/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_DSBrowser.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_DSBrowser.js.gz b/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_DSBrowser.js.gz
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_DSBrowser.js.gz and b/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_DSBrowser.js.gz differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_EBay.js b/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_EBay.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_EBay.js.gz b/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_EBay.js.gz
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_EBay.js.gz and b/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_EBay.js.gz differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_Forms.js b/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_Forms.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_Forms.js.gz b/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_Forms.js.gz
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_Forms.js.gz and b/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_Forms.js.gz differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_Foundation.js b/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_Foundation.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_Foundation.js.gz b/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_Foundation.js.gz
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_Foundation.js.gz and b/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_Foundation.js.gz differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_Grids.js b/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_Grids.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_Grids.js.gz b/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_Grids.js.gz
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_Grids.js.gz and b/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_Grids.js.gz differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_History.js b/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_History.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_History.js.gz b/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_History.js.gz
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_History.js.gz and b/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_History.js.gz differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_Kapow.js b/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_Kapow.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_Kapow.js.gz b/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_Kapow.js.gz
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_Kapow.js.gz and b/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_Kapow.js.gz differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_PluginBridges.js b/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_PluginBridges.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_PluginBridges.js.gz b/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_PluginBridges.js.gz
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_PluginBridges.js.gz and b/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_PluginBridges.js.gz differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_RichTextEditor.js b/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_RichTextEditor.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_RichTextEditor.js.gz b/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_RichTextEditor.js.gz
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_RichTextEditor.js.gz and b/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_RichTextEditor.js.gz differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_SalesForce.js b/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_SalesForce.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_SalesForce.js.gz b/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_SalesForce.js.gz
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_SalesForce.js.gz and b/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_SalesForce.js.gz differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_Scheduler.js b/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_Scheduler.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_Scheduler.js.gz b/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_Scheduler.js.gz
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_Scheduler.js.gz and b/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_Scheduler.js.gz differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_SQLBrowser.js b/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_SQLBrowser.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_SQLBrowser.js.gz b/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_SQLBrowser.js.gz
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_SQLBrowser.js.gz and b/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_SQLBrowser.js.gz differ
diff --git a/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_Workflow.js b/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_Workflow.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_Workflow.js.gz b/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_Workflow.js.gz
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_Workflow.js.gz and b/sm-shop/src/main/webapp/resources/smart-client/system/modules/ISC_Workflow.js.gz differ
diff --git a/sm-shop/src/main/webapp/resources/templates/bootstrap/css/bootstrap.min.css b/sm-shop/src/main/webapp/resources/templates/bootstrap/css/bootstrap.min.css
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/templates/bootstrap/css/bootstrap-responsive.min.css b/sm-shop/src/main/webapp/resources/templates/bootstrap/css/bootstrap-responsive.min.css
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/templates/bootstrap/css/theme.css b/sm-shop/src/main/webapp/resources/templates/bootstrap/css/theme.css
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/templates/bootstrap/fonts/SALARYMA-webfont.eot b/sm-shop/src/main/webapp/resources/templates/bootstrap/fonts/SALARYMA-webfont.eot
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/templates/bootstrap/fonts/SALARYMA-webfont.eot and b/sm-shop/src/main/webapp/resources/templates/bootstrap/fonts/SALARYMA-webfont.eot differ
diff --git a/sm-shop/src/main/webapp/resources/templates/bootstrap/fonts/SALARYMA-webfont.svg b/sm-shop/src/main/webapp/resources/templates/bootstrap/fonts/SALARYMA-webfont.svg
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/templates/bootstrap/fonts/SALARYMA-webfont.ttf b/sm-shop/src/main/webapp/resources/templates/bootstrap/fonts/SALARYMA-webfont.ttf
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/templates/bootstrap/fonts/SALARYMA-webfont.ttf and b/sm-shop/src/main/webapp/resources/templates/bootstrap/fonts/SALARYMA-webfont.ttf differ
diff --git a/sm-shop/src/main/webapp/resources/templates/bootstrap/fonts/SALARYMA-webfont.woff b/sm-shop/src/main/webapp/resources/templates/bootstrap/fonts/SALARYMA-webfont.woff
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/templates/bootstrap/fonts/SALARYMA-webfont.woff and b/sm-shop/src/main/webapp/resources/templates/bootstrap/fonts/SALARYMA-webfont.woff differ
diff --git a/sm-shop/src/main/webapp/resources/templates/bootstrap/img/glyphicons-halflings.png b/sm-shop/src/main/webapp/resources/templates/bootstrap/img/glyphicons-halflings.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/templates/bootstrap/img/glyphicons-halflings.png and b/sm-shop/src/main/webapp/resources/templates/bootstrap/img/glyphicons-halflings.png differ
diff --git a/sm-shop/src/main/webapp/resources/templates/bootstrap/img/glyphicons-halflings-white.png b/sm-shop/src/main/webapp/resources/templates/bootstrap/img/glyphicons-halflings-white.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/templates/bootstrap/img/glyphicons-halflings-white.png and b/sm-shop/src/main/webapp/resources/templates/bootstrap/img/glyphicons-halflings-white.png differ
diff --git a/sm-shop/src/main/webapp/resources/templates/bootstrap/img/surf-banner.jpg b/sm-shop/src/main/webapp/resources/templates/bootstrap/img/surf-banner.jpg
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/templates/bootstrap/img/surf-banner.jpg and b/sm-shop/src/main/webapp/resources/templates/bootstrap/img/surf-banner.jpg differ
diff --git a/sm-shop/src/main/webapp/resources/templates/bootstrap/js/bootstrap-alert.js b/sm-shop/src/main/webapp/resources/templates/bootstrap/js/bootstrap-alert.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/templates/bootstrap/js/bootstrap-button.js b/sm-shop/src/main/webapp/resources/templates/bootstrap/js/bootstrap-button.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/templates/bootstrap/js/bootstrap-carousel.js b/sm-shop/src/main/webapp/resources/templates/bootstrap/js/bootstrap-carousel.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/templates/bootstrap/js/bootstrap-collapse.js b/sm-shop/src/main/webapp/resources/templates/bootstrap/js/bootstrap-collapse.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/templates/bootstrap/js/bootstrap-dropdown.js b/sm-shop/src/main/webapp/resources/templates/bootstrap/js/bootstrap-dropdown.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/templates/bootstrap/js/bootstrap-modal.js b/sm-shop/src/main/webapp/resources/templates/bootstrap/js/bootstrap-modal.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/templates/bootstrap/js/bootstrap-popover.js b/sm-shop/src/main/webapp/resources/templates/bootstrap/js/bootstrap-popover.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/templates/bootstrap/js/bootstrap-scrollspy.js b/sm-shop/src/main/webapp/resources/templates/bootstrap/js/bootstrap-scrollspy.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/templates/bootstrap/js/bootstrap-tab.js b/sm-shop/src/main/webapp/resources/templates/bootstrap/js/bootstrap-tab.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/templates/bootstrap/js/bootstrap-tooltip.js b/sm-shop/src/main/webapp/resources/templates/bootstrap/js/bootstrap-tooltip.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/templates/bootstrap/js/bootstrap-transition.js b/sm-shop/src/main/webapp/resources/templates/bootstrap/js/bootstrap-transition.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/templates/bootstrap/js/bootstrap-typeahead.js b/sm-shop/src/main/webapp/resources/templates/bootstrap/js/bootstrap-typeahead.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/templates/bootstrap3/css/bootstrap.css b/sm-shop/src/main/webapp/resources/templates/bootstrap3/css/bootstrap.css
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/templates/bootstrap3/css/css.css b/sm-shop/src/main/webapp/resources/templates/bootstrap3/css/css.css
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/templates/bootstrap3/css/essentials.css b/sm-shop/src/main/webapp/resources/templates/bootstrap3/css/essentials.css
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/templates/bootstrap3/css/font-awesome.css b/sm-shop/src/main/webapp/resources/templates/bootstrap3/css/font-awesome.css
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/templates/bootstrap3/css/orange.css b/sm-shop/src/main/webapp/resources/templates/bootstrap3/css/orange.css
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/templates/bootstrap3/css/shop.css b/sm-shop/src/main/webapp/resources/templates/bootstrap3/css/shop.css
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/templates/bootstrap3/css/theme.css b/sm-shop/src/main/webapp/resources/templates/bootstrap3/css/theme.css
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/templates/bootstrap3/fonts/lato-light-webfont.eot b/sm-shop/src/main/webapp/resources/templates/bootstrap3/fonts/lato-light-webfont.eot
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/templates/bootstrap3/fonts/lato-light-webfont.eot and b/sm-shop/src/main/webapp/resources/templates/bootstrap3/fonts/lato-light-webfont.eot differ
diff --git a/sm-shop/src/main/webapp/resources/templates/bootstrap3/fonts/lato-light-webfont.svg b/sm-shop/src/main/webapp/resources/templates/bootstrap3/fonts/lato-light-webfont.svg
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/templates/bootstrap3/fonts/lato-light-webfont.ttf b/sm-shop/src/main/webapp/resources/templates/bootstrap3/fonts/lato-light-webfont.ttf
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/templates/bootstrap3/fonts/lato-light-webfont.ttf and b/sm-shop/src/main/webapp/resources/templates/bootstrap3/fonts/lato-light-webfont.ttf differ
diff --git a/sm-shop/src/main/webapp/resources/templates/bootstrap3/fonts/lato-light-webfont.woff b/sm-shop/src/main/webapp/resources/templates/bootstrap3/fonts/lato-light-webfont.woff
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/templates/bootstrap3/fonts/lato-light-webfont.woff and b/sm-shop/src/main/webapp/resources/templates/bootstrap3/fonts/lato-light-webfont.woff differ
diff --git a/sm-shop/src/main/webapp/resources/templates/bootstrap3/fonts/lato-thin-webfont.eot b/sm-shop/src/main/webapp/resources/templates/bootstrap3/fonts/lato-thin-webfont.eot
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/templates/bootstrap3/fonts/lato-thin-webfont.eot and b/sm-shop/src/main/webapp/resources/templates/bootstrap3/fonts/lato-thin-webfont.eot differ
diff --git a/sm-shop/src/main/webapp/resources/templates/bootstrap3/fonts/lato-thin-webfont.svg b/sm-shop/src/main/webapp/resources/templates/bootstrap3/fonts/lato-thin-webfont.svg
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/templates/bootstrap3/fonts/lato-thin-webfont.ttf b/sm-shop/src/main/webapp/resources/templates/bootstrap3/fonts/lato-thin-webfont.ttf
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/templates/bootstrap3/fonts/lato-thin-webfont.ttf and b/sm-shop/src/main/webapp/resources/templates/bootstrap3/fonts/lato-thin-webfont.ttf differ
diff --git a/sm-shop/src/main/webapp/resources/templates/bootstrap3/fonts/lato-thin-webfont.woff b/sm-shop/src/main/webapp/resources/templates/bootstrap3/fonts/lato-thin-webfont.woff
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/resources/templates/bootstrap3/fonts/lato-thin-webfont.woff and b/sm-shop/src/main/webapp/resources/templates/bootstrap3/fonts/lato-thin-webfont.woff differ
diff --git a/sm-shop/src/main/webapp/resources/templates/bootstrap3/js/bloodhound.min.js b/sm-shop/src/main/webapp/resources/templates/bootstrap3/js/bloodhound.min.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/templates/bootstrap3/js/bootstrap.js b/sm-shop/src/main/webapp/resources/templates/bootstrap3/js/bootstrap.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/templates/bootstrap3/js/modernizr.js b/sm-shop/src/main/webapp/resources/templates/bootstrap3/js/modernizr.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/templates/bootstrap3/js/typeahead.bundle.min.js b/sm-shop/src/main/webapp/resources/templates/bootstrap3/js/typeahead.bundle.min.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/templates/exoticamobilia/css/magnific-popup.css b/sm-shop/src/main/webapp/resources/templates/exoticamobilia/css/magnific-popup.css
index a530c65..798ac9d 100644
--- a/sm-shop/src/main/webapp/resources/templates/exoticamobilia/css/magnific-popup.css
+++ b/sm-shop/src/main/webapp/resources/templates/exoticamobilia/css/magnific-popup.css
@@ -83,7 +83,7 @@
display: none !important; }
.mfp-preloader {
- color: #CCC;
+ color: #cccccc;
position: absolute;
top: 50%;
width: auto;
@@ -93,9 +93,9 @@
right: 8px;
z-index: 1044; }
.mfp-preloader a {
- color: #CCC; }
+ color: #cccccc; }
.mfp-preloader a:hover {
- color: #FFF; }
+ color: white; }
.mfp-s-ready .mfp-preloader {
display: none; }
@@ -131,7 +131,7 @@ button::-moz-focus-inner {
opacity: 0.65;
filter: alpha(opacity=65);
padding: 0 0 18px 10px;
- color: #FFF;
+ color: white;
font-style: normal;
font-size: 28px;
font-family: Arial, Baskerville, monospace; }
@@ -142,10 +142,10 @@ button::-moz-focus-inner {
top: 1px; }
.mfp-close-btn-in .mfp-close {
- color: #333; }
+ color: #333333; }
.mfp-image-holder .mfp-close, .mfp-iframe-holder .mfp-close {
- color: #FFF;
+ color: white;
right: -6px;
text-align: right;
padding-right: 6px;
@@ -155,10 +155,9 @@ button::-moz-focus-inner {
position: absolute;
top: 0;
right: 0;
- color: #CCC;
+ color: #cccccc;
font-size: 12px;
- line-height: 18px;
- white-space: nowrap; }
+ line-height: 18px; }
.mfp-arrow {
position: absolute;
@@ -199,19 +198,19 @@ button::-moz-focus-inner {
.mfp-arrow-left {
left: 0; }
.mfp-arrow-left:after, .mfp-arrow-left .mfp-a {
- border-right: 17px solid #FFF;
+ border-right: 17px solid white;
margin-left: 31px; }
.mfp-arrow-left:before, .mfp-arrow-left .mfp-b {
margin-left: 25px;
- border-right: 27px solid #3F3F3F; }
+ border-right: 27px solid #3f3f3f; }
.mfp-arrow-right {
right: 0; }
.mfp-arrow-right:after, .mfp-arrow-right .mfp-a {
- border-left: 17px solid #FFF;
+ border-left: 17px solid white;
margin-left: 39px; }
.mfp-arrow-right:before, .mfp-arrow-right .mfp-b {
- border-left: 27px solid #3F3F3F; }
+ border-left: 27px solid #3f3f3f; }
.mfp-iframe-holder {
padding-top: 40px;
@@ -236,7 +235,7 @@ button::-moz-focus-inner {
width: 100%;
height: 100%;
box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
- background: #000; }
+ background: black; }
/* Main image in popup */
img.mfp-img {
@@ -266,9 +265,9 @@ img.mfp-img {
height: auto;
z-index: -1;
box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
- background: #444; }
+ background: #444444; }
.mfp-figure small {
- color: #BDBDBD;
+ color: #bdbdbd;
display: block;
font-size: 12px;
line-height: 14px; }
@@ -286,7 +285,7 @@ img.mfp-img {
.mfp-title {
text-align: left;
line-height: 18px;
- color: #F3F3F3;
+ color: #f3f3f3;
word-wrap: break-word;
padding-right: 36px; }
@@ -335,26 +334,21 @@ img.mfp-img {
background: rgba(0, 0, 0, 0.6);
position: fixed;
text-align: center;
- padding: 0; }
- }
+ padding: 0; } }
@media all and (max-width: 900px) {
.mfp-arrow {
-webkit-transform: scale(0.75);
transform: scale(0.75); }
-
.mfp-arrow-left {
-webkit-transform-origin: 0;
transform-origin: 0; }
-
.mfp-arrow-right {
-webkit-transform-origin: 100%;
transform-origin: 100%; }
-
.mfp-container {
padding-left: 6px;
- padding-right: 6px; }
- }
+ padding-right: 6px; } }
.mfp-ie7 .mfp-img {
padding: 0; }
diff --git a/sm-shop/src/main/webapp/resources/templates/exoticamobilia/css/style.css b/sm-shop/src/main/webapp/resources/templates/exoticamobilia/css/style.css
index c001811..cf1f32d 100644
--- a/sm-shop/src/main/webapp/resources/templates/exoticamobilia/css/style.css
+++ b/sm-shop/src/main/webapp/resources/templates/exoticamobilia/css/style.css
@@ -1,29 +1,3 @@
-/* Theme Name:iDea - Clean & Powerful Bootstrap Theme
-Author:HtmlCoder
-Author URI:http://www.htmlcoder.me
-Author e-mail:htmlcoder.me@gmail.com
-Version: 1.1.0
-Created:September 2014
-License URI:http://support.wrapbootstrap.com/
-File Description:Main CSS file of the template */
-
-/* TABLE OF CONTENTS
-
-1) Typography
-2) Layout
-3) Sections
-4) Pages ( blog,
-about etc )
-5) Template Components
-6) Navigations
-7) Blocks/Widgets
-8) Main Slideshow
-9) Owl carousel
-10) IE 8 Support
-* */
-
-/* 1 Typography
------------------------------------------------------------------------------ */
html {
height: 100%;
}
@@ -64,7 +38,7 @@ h2 {
margin-bottom: 15px;
}
h3 {
- font-size: 22px;
+ font-size: 20px;
}
h4 {
font-size: 18px;
@@ -93,7 +67,7 @@ h6 {
}
.page-header {
margin-top: 20px;
- padding-top: 20px;
+ /**padding-top: 20px;**/
}
p {
margin-bottom: 20px;
@@ -332,8 +306,7 @@ tbody {
}
}
-/* 2 Layout
------------------------------------------------------------------------------ */
+
.page-wrapper {
background-color: #ffffff;
}
@@ -1100,10 +1073,7 @@ tbody {
}
}
-/* 4 Pages
------------------------------------------------------------------------------ */
-/* Blog pages
----------------------------------- */
+
.blogpost {
background-color: #fafafa;
border: 1px solid #f3f3f3;
@@ -1754,6 +1724,12 @@ tbody {
.listing-item h3 {
font-size: 18px;
}
+
+.listing-item-body h4 {
+ font-size: 14px !important;
+ font-weight:700;
+}
+
.listing-item p {
color: #999999;
font-size: 13px;
@@ -1877,6 +1853,16 @@ tbody {
.table .information {
width: 80%;
}
+
+.product-info {
+ height:48px;
+}
+
+.product-info h3 {
+ font-size: 16px;
+ font-weight:200;
+}
+
.cart.table .quantity input {
width: 60px;
padding: 6px;
@@ -1909,6 +1895,10 @@ tbody {
text-align: right;
}
+#summaryRows strong {
+ font-size:11px !important;
+}
+
/* Small devices (tablets, phones less than 767px) */
@media (max-width:767px) {
.cart.table thead > tr > th {
@@ -1949,9 +1939,14 @@ tbody {
.cart .form-group {
margin-bottom: 0;
}
+@media(max-width:480px) {
+ .header-top-dropdown .dropdown-menu.cart {
+ max-width: 100% !important;
+ }
+}
.header-top-dropdown .dropdown-menu.cart {
padding: 0;
- min-width: 350px;
+ width: 350px;
font-size: 12px;
right: -1px;
}
@@ -2000,7 +1995,7 @@ tbody {
padding: 10px 12px;
font-size: 14px;
line-height: 1.42857143;
- min-width: 160px;
+ /**min-width: 160px;**/
text-align: center;
border-radius: 0;
text-transform: uppercase;
@@ -2025,6 +2020,10 @@ tbody {
padding: 8px;
font-size: 12px;
min-width: 105px;
+ background-color: #f3f3f3 !important;
+ border-color: #f3f3f3 !important;
+ color: #000 !important;
+
}
.btn.radius {
-webkit-border-radius: 15px;
@@ -2596,7 +2595,7 @@ ul.pagination li > a:focus {
}
.tab-content {
border: 1px solid #f0f0f0;
- padding: 20px;
+ /**padding: 20px;**/
border-top: none;
-webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);
position: relative;
@@ -3268,6 +3267,12 @@ ul.pagination li > a:focus {
font-size: 26px;
margin: 0;
}
+
+.box-style-4 .overlay i {
+ font-size: 26px;
+ margin: 0;
+}
+
a.overlay {
background-color: rgba(255, 255, 255, 0.9);
cursor: pointer;
@@ -4179,11 +4184,18 @@ a.overlay.small i {
.box.dark-bg:hover * {
color: #666;
}
+
.box-style-1 {
- text-align: center;
- padding: 20px;
+ padding-top: 20px;
+ margin: 20px 0;
+}
+
+.box-style-4 {
+ padding-top: 20px;
margin: 20px 0;
}
+
+
.grid-space-10 .box-style-1 {
margin: 10px 0;
}
@@ -5619,5 +5631,4 @@ ul.tweets li span {
.ie8 .overlay-container:hover a.overlay i,
.ie8 .overlay-container:hover .overlay {
display: block;
-}
-
+}
\ No newline at end of file
diff --git a/sm-shop/src/main/webapp/resources/templates/exoticamobilia/css/template.css b/sm-shop/src/main/webapp/resources/templates/exoticamobilia/css/template.css
index 0648d99..5b73082 100644
--- a/sm-shop/src/main/webapp/resources/templates/exoticamobilia/css/template.css
+++ b/sm-shop/src/main/webapp/resources/templates/exoticamobilia/css/template.css
@@ -33,8 +33,12 @@
/**transform: translate(-50%, -50%);**/
}
+.detailsThumbImg {
+ height:100px;
+}
+
.logo > h1{
- font: 22px "SalarymanRegular", Arial, sans-serif;
+ font: 21px "SalarymanRegular", Arial, sans-serif;
letter-spacing: 0;
padding:0;
margin-top:0px;
@@ -107,16 +111,21 @@ a.overlay {
}
@media (min-width: 701px) {
- .header-white {
- font-size: 42px;
+ .mainBannerHeader {
+ font-size: 50px !important;
+ }
+
+ .subBannerHeaderTextTitle {
+ margin-top:10px !important;
+ font-size: 25px !important;
}
- .sub-header {
- margin-top:0px;
- font-size: 34px;
+
+ .subBannerHeaderText {
+ margin-top:5px !important;
+ font-size: 16px !important;
}
.sub-sub-header {
- margin-top:0px;
- font-size: 24px;
+ font-size: 24px !important;
}
#rightText {
@@ -135,13 +144,27 @@ a.overlay {
@media (max-width: 700px) {
- .header-white {
- margin-top:0px;
- font-size: 18px;
+ .mainBannerHeader {
+ margin-top:0px !important;
+ font-size: 24px !important;
+ }
+ .subBannerHeaderText {
+ font-size: 13px !important;
+ word-wrap: break-word;
+ max-width: 330px;
+ width:330px;
+ white-space: normal !important;
}
- .sub-header {
- margin-top:-10px;
- font-size: 15px;
+ .subBannerHeaderTextTitle {
+ font-size: 14px !important;
+ word-wrap: break-word;
+ max-width: 330px;
+ width:330px;
+ white-space: normal !important;
+ }
+
+ .bannerRedBtn {
+ margin-top:5px !important;
}
.sub-sub-header {
margin-top:-35px;
@@ -179,14 +202,14 @@ a.overlay {
.shop-banner-title {
margin-top:-10px;
- width: 1140px;
+ width: 100%;
}
.logo-text {
background: transparent url(../img/exotikamobilia.png) center left no-repeat;
/**padding-left: 104px;**/
- width: 400px;
+ width: 100%;
height: 55px;
margin-bottom: 0px !important;
@@ -207,7 +230,7 @@ a.overlay {
}
.bannerTextColor {
- color: #222!important;
+ color: #fff !important;
}
.bannerTextStyle {
@@ -233,11 +256,11 @@ a.overlay {
.bannerRedBtn {
background: #e84c3d none repeat scroll 0 0;
- /**border: 1px solid #c00;**/
border: 1px solid #222;
color: #fff !important;
transition: all 0.2s linear 0s;
- margin-top: 15px!important;
+ margin-top: 10px;
+ margin-bottom:10px !important;
font-size: 11px;
letter-spacing: .5px;
padding: 8px 6px 5px 11px;
@@ -257,8 +280,17 @@ a.overlay {
/** **/
.box-style-1 {
- max-height:360px;
- height:360px;
+ max-height:300px;
+ height:300px;
+ position: relative;
+ overflow: hidden;
+}
+
+.box-style-4 {
+ max-height:300px;
+ height:300px;
+ position: relative;
+ overflow: hidden;
}
.ribbon-wrapper-green {
@@ -298,6 +330,11 @@ a.overlay {
margin-top: 15px!important;
}
+.payment-tab {
+ margin-left:10px;
+ margin-top:10px;
+}
+
.product-image {
content: "";
display: block;
@@ -310,6 +347,8 @@ a.overlay {
margin-right: auto ;
}
+
+
#footer {
margin-top:20px;
}
@@ -489,13 +528,12 @@ button.close:hover {
.checkout-title {
- margin-left: -15px;
- margin-right: -15px;
+
}
.contact-title {
- margin-left: -15px;
- margin-right: -15px;
+ /**margin-left: -15px;
+ margin-right: -15px;**/
}
/** overwrite dark_gray **/
@@ -508,7 +546,7 @@ fieldset {
}
#map_canvas {
- margin-left:30px;
+ margin-left:0px;
}
#useAddress {
@@ -528,6 +566,10 @@ fieldset {
margin-right:15px;
}
+.font-normal {
+ font-weight: normal;
+}
+
.total-box-grand-total {
float:right;
@@ -535,6 +577,7 @@ fieldset {
.total-box-price {
font-weight: bold;
+ font-size:13px;
}
.paymentTab > h4 {
@@ -562,14 +605,34 @@ fieldset {
width: 0px;
}
-.checkout-box .nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus {
+.productItem .nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus {
+ background-color: #4e5b5e !important;
+}
+
+.checkout-box .nav-tabs-checkout > li.active > a, .nav-tabs-checkout > li.active > a:hover, .nav-tabs-checkout > li.active > a:focus {
background-color: #fff !important;
}
-.productItem .nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus {
- background-color: #666666 !important;
+.minicart > thead > tr > th,
+.minicart > tbody > tr > th,
+.minicart > tfoot > tr > th,
+.minicart > thead > tr > td,
+.minicart > tbody > tr > td,
+.minicart > tfoot > tr > td {
+ padding: 5px 5px !important;
}
+#summary-table > thead > tr > th,
+#summary-table > tbody > tr > th,
+#summary-table > tfoot > tr > th,
+#summary-table > thead > tr > td,
+#summary-table > tbody > tr > td,
+#summary-table > tfoot > tr > td {
+ padding: 8px 1px !important;
+}
+
+
+
#mainCartTable > thead > tr > th {
color: #000 !important;
}
@@ -578,3 +641,329 @@ fieldset {
#customerAgreement {
margin-left: 20px;
}
+
+#checkoutForm .img-add-on {
+ padding-top: 0px !important;
+ padding-left: 0px !important;
+}
+
+#cc-img-container {
+ display: table !important;
+ width: 100% !important;
+}
+
+
+#cc-img-container img {
+ /**display: table-cell !important;**/
+ text-align: center !important;
+ width: 100% !important;
+ max-width: 40px !important;
+}
+
+.table-striped tbody {
+ background-color: #ffffff !important;
+}
+
+.responsive-slider .slider-control {
+ background-color: #fff;
+ color: #000;
+ font-size: 30px;
+ opacity: 0.4;
+ padding: 6px;
+ position: absolute;
+ top: 50%;
+}
+
+.responsive-slider .slider-control.right {
+ border-radius: 6px;
+ padding-right: 7px;
+ right: 10px;
+}
+
+.responsive-slider .slider-control.left {
+ border-radius: 6px;
+ left: 10px;
+ padding-left: 7px;
+}
+
+.responsive-slider .slider-control.left:hover {
+ opacity: 1;
+ text-decoration: none;
+}
+
+.responsive-slider .slider-control.right:hover {
+ opacity: 1;
+ text-decoration: none;
+}
+
+/** coupon **/
+
+.coupon {
+ border: 3px dashed #bcbcbc;
+ border-radius: 10px;
+ font-family: "HelveticaNeue-Light", "Helvetica Neue Light",
+ "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif;
+ font-weight: 300;
+}
+
+.coupon #head {
+ border-top-left-radius: 10px;
+ border-top-right-radius: 10px;
+ min-height: 56px;
+}
+
+.coupon #footer {
+ border-bottom-left-radius: 10px;
+ border-bottom-right-radius: 10px;
+}
+
+.coupon #title .visible-xs {
+ font-size: 12px;
+}
+
+.coupon #title img {
+ font-size: 30px;
+ height: 30px;
+ margin-top: 5px;
+}
+
+@media screen and (max-width: 500px) {
+ .coupon #title img {
+ height: 15px;
+ }
+
+ .product-details .btn {
+ font-size:11px !important;
+ }
+
+ .navbar-toggle {
+ padding-right : 8px !important;
+ padding-left : 8px !important;
+ }
+}
+
+
+
+.coupon #title span {
+ float: right;
+ margin-top: 5px;
+ font-weight: 700;
+ text-transform: uppercase;
+}
+
+.coupon-img {
+ width: 100%;
+ margin-bottom: 15px;
+ padding: 0;
+}
+
+.coupon .items {
+ margin: 15px 0;
+}
+
+.coupon .currency .cents {
+ font-size: 20px;
+}
+
+.coupon .number {
+ font-size: 40px;
+ font-weight: 700;
+}
+
+.coupon sup {
+ top: -15px;
+}
+
+.coupon #business-info ul {
+ margin: 0;
+ padding: 0;
+ list-style-type: none;
+ text-align: center;
+}
+
+.coupon #business-info ul li {
+ display: inline;
+ text-align: center;
+}
+
+.coupon #business-info ul li span {
+ text-decoration: none;
+ padding: .2em 1em;
+}
+
+.coupon #business-info ul li span i {
+ padding-right: 5px;
+}
+
+.coupon .disclosure {
+ padding-top: 15px;
+ font-size: 11px;
+ color: #bcbcbc;
+ text-align: center;
+}
+
+.coupon .coupon-code {
+ color: #333333;
+ font-size: 11px;
+}
+
+.coupon .exp {
+ color: #f34235;
+}
+
+.coupon .print {
+ font-size: 14px;
+ float: right;
+}
+
+
+.box-style-1 {
+ transition: all 0.5s ease-in 0s;
+}
+
+.box-style-1:hover {
+ -webkit-box-shadow: 0 0 5px 3px rgba(0, 0, 0, 0.3);
+ -moz-box-shadow: 0 0 5px 3px rgba(0, 0, 0, 0.3);
+ box-shadow: 0 0 5px 3px rgba(0, 0, 0, 0.3);
+}
+
+.box-style-1 .caption {
+ transition: all 0.2s ease-out 0s;
+ background: rgba(255, 255, 255, 0.5) none repeat scroll 0 0;
+ bottom: 0;
+ padding: 0;
+ /**position: absolute;**/
+ -webkit-transform: translateY(0px);
+ -moz-transform: translateY(0px);
+ transform: translateY(0px);
+ width: 100%;
+}
+
+.box-style-1:hover .caption {
+ -webkit-transform: translateY(-70px);
+ -moz-transform: translateY(-70px);
+ transform: translateY(-70px);
+}
+
+.box-style-1 .product-details {
+ padding: 0px 20px;
+}
+
+.box-style-1 .product-details h3 {
+ font-size: 18px;
+ font-weight: 200;
+ overflow:hidden;
+ text-overflow:ellipsis;
+ white-space:nowrap;
+}
+
+.box-style-1 .caption .product-details .btn {
+ margin-top: 15px;
+}
+
+
+
+.box-style-4 {
+ transition: all 0.5s ease-in 0s;
+}
+
+.box-style-4:hover {
+ -webkit-box-shadow: 0 0 5px 3px rgba(0, 0, 0, 0.3);
+ -moz-box-shadow: 0 0 5px 3px rgba(0, 0, 0, 0.3);
+ box-shadow: 0 0 5px 3px rgba(0, 0, 0, 0.3);
+}
+
+.box-style-4 .caption {
+ transition: all 0.2s ease-out 0s;
+ background: rgba(255, 255, 255, 0.5) none repeat scroll 0 0;
+ bottom: 0;
+ padding: 0;
+ /**position: absolute;**/
+ -webkit-transform: translateY(0px);
+ -moz-transform: translateY(0px);
+ transform: translateY(0px);
+ width: 100%;
+}
+
+.box-style-4:hover .caption {
+ -webkit-transform: translateY(-80px);
+ -moz-transform: translateY(-80px);
+ transform: translateY(-80px);
+}
+
+.box-style-4 .product-details {
+ padding: 0px 20px;
+}
+
+.box-style-4 .product-details h3 {
+ font-size: 16px;
+ font-weight: 200;
+ margin-top:5px !important;
+}
+
+.box-style-4 .product-details h4 {
+ font-size: 16px !important;
+ font-weight: 200;
+ margin-top:0px !important;
+}
+
+.box-style-4 .caption .product-details .btn {
+ margin-top: 15px;
+ font-size:11px !important;
+}
+
+.box-style-4 .price del {
+ font-size: 16px !important;
+}
+
+.box-style-4 .price {
+ margin-bottom: 15px !important;
+}
+
+
+
+.btn-buy {
+ background-color: #5cb85c;
+ border-color: #4cae4c;
+ color: #f7f7f7;
+ font-size: 14px;
+}
+
+.btn-buy:hover, .btn-buy:focus {
+ color: #f7f7f7 !important;
+}
+
+.btn-minicart:hover {
+ color:#ffffff !important;
+}
+
+.sold-out-box {
+ position: absolute;
+ top: 0;
+ left: 0px;
+ width: 150px;
+ text-align:left;
+ color:#ffffff;
+ background:#7f7f7f;
+ background:rgba(0,0,0,0.5);
+}
+
+.sold-out-text {
+ font-size:11px;
+ margin-left: 10px;
+}
+
+[class^="icon-"]:before, [class*=" icon-"]:before {
+
+ margin-top:0.5em !important;
+
+}
+
+.common-row {
+ margin-left: 0px !important;
+ margin-right: 0px !important;
+}
+
+.row-cart {
+ margin-left: -15px;
+}
\ No newline at end of file
diff --git a/sm-shop/src/main/webapp/resources/templates/exoticamobilia/js/bloodhound.min.js b/sm-shop/src/main/webapp/resources/templates/exoticamobilia/js/bloodhound.min.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/resources/templates/exoticamobilia/js/jquery.appear.js b/sm-shop/src/main/webapp/resources/templates/exoticamobilia/js/jquery.appear.js
new file mode 100644
index 0000000..2142e08
--- /dev/null
+++ b/sm-shop/src/main/webapp/resources/templates/exoticamobilia/js/jquery.appear.js
@@ -0,0 +1,151 @@
+/*
+ * jQuery.appear
+ * https://github.com/bas2k/jquery.appear/
+ * http://code.google.com/p/jquery-appear/
+ * http://bas2k.ru/
+ *
+ * Copyright (c) 2009 Michael Hixson
+ * Copyright (c) 2012-2014 Alexander Brovikov
+ * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
+ */
+(function($) {
+ $.fn.appear = function(fn, options) {
+
+ var settings = $.extend({
+
+ //arbitrary data to pass to fn
+ data: undefined,
+
+ //call fn only on the first appear?
+ one: true,
+
+ // X & Y accuracy
+ accX: 0,
+ accY: 0
+
+ }, options);
+
+ return this.each(function() {
+
+ var t = $(this);
+
+ //whether the element is currently visible
+ t.appeared = false;
+
+ if (!fn) {
+
+ //trigger the custom event
+ t.trigger('appear', settings.data);
+ return;
+ }
+
+ var w = $(window);
+
+ //fires the appear event when appropriate
+ var check = function() {
+
+ //is the element hidden?
+ if (!t.is(':visible')) {
+
+ //it became hidden
+ t.appeared = false;
+ return;
+ }
+
+ //is the element inside the visible window?
+ var a = w.scrollLeft();
+ var b = w.scrollTop();
+ var o = t.offset();
+ var x = o.left;
+ var y = o.top;
+
+ var ax = settings.accX;
+ var ay = settings.accY;
+ var th = t.height();
+ var wh = w.height();
+ var tw = t.width();
+ var ww = w.width();
+
+ if (y + th + ay >= b &&
+ y <= b + wh + ay &&
+ x + tw + ax >= a &&
+ x <= a + ww + ax) {
+
+ //trigger the custom event
+ if (!t.appeared) t.trigger('appear', settings.data);
+
+ } else {
+
+ //it scrolled out of view
+ t.appeared = false;
+ }
+ };
+
+ //create a modified fn with some additional logic
+ var modifiedFn = function() {
+
+ //mark the element as visible
+ t.appeared = true;
+
+ //is this supposed to happen only once?
+ if (settings.one) {
+
+ //remove the check
+ w.unbind('scroll', check);
+ var i = $.inArray(check, $.fn.appear.checks);
+ if (i >= 0) $.fn.appear.checks.splice(i, 1);
+ }
+
+ //trigger the original fn
+ fn.apply(this, arguments);
+ };
+
+ //bind the modified fn to the element
+ if (settings.one) t.one('appear', settings.data, modifiedFn);
+ else t.bind('appear', settings.data, modifiedFn);
+
+ //check whenever the window scrolls
+ w.scroll(check);
+
+ //check whenever the dom changes
+ $.fn.appear.checks.push(check);
+
+ //check now
+ (check)();
+ });
+ };
+
+ //keep a queue of appearance checks
+ $.extend($.fn.appear, {
+
+ checks: [],
+ timeout: null,
+
+ //process the queue
+ checkAll: function() {
+ var length = $.fn.appear.checks.length;
+ if (length > 0) while (length--) ($.fn.appear.checks[length])();
+ },
+
+ //check the queue asynchronously
+ run: function() {
+ if ($.fn.appear.timeout) clearTimeout($.fn.appear.timeout);
+ $.fn.appear.timeout = setTimeout($.fn.appear.checkAll, 20);
+ }
+ });
+
+ //run checks when these methods are called
+ $.each(['append', 'prepend', 'after', 'before', 'attr',
+ 'removeAttr', 'addClass', 'removeClass', 'toggleClass',
+ 'remove', 'css', 'show', 'hide'], function(i, n) {
+ var old = $.fn[n];
+ if (old) {
+ $.fn[n] = function() {
+ var r = old.apply(this, arguments);
+ $.fn.appear.run();
+ return r;
+ }
+ }
+ });
+
+})(jQuery);
\ No newline at end of file
diff --git a/sm-shop/src/main/webapp/resources/templates/exoticamobilia/js/responsive-slider.min.js b/sm-shop/src/main/webapp/resources/templates/exoticamobilia/js/responsive-slider.min.js
new file mode 100644
index 0000000..4e30947
--- /dev/null
+++ b/sm-shop/src/main/webapp/resources/templates/exoticamobilia/js/responsive-slider.min.js
@@ -0,0 +1,9 @@
+/*!
+ # Responsive Slider widget script
+ # by w3widgets
+ #
+ # Author: Lukasz Kokoszkiewicz
+ #
+ # Copyright © w3widgets 2013 All Rights Reserved
+*/
+(function(){(function(j){var h,e,c,a,g,b,f,k,i,d;h=function(m,l){this.$element=m;this.$slides=this.$element.find(".slides ul li");if(this.$slides.length<1){this.$slides=this.$element.find('[data-group="slides"] ul li')}this.$prevNext=this.$element.find("[data-jump]");this.$pages=this.$element.find("[data-jump-to]");this.$slidesContainer=this.$element.find('[data-group="slides"]');this.$rel=this.$element.find('[data-group="slides"] ul');this.$rel.css("position","relative");this.slideChangeInProgress=false;this.interval=false;this.options=l;this.current=2;this.slide=1;this.set(2,true);this.options.onInit.call(this);this.runAnimations();return null};h.prototype={getGlobalWidth:function(){return this.$element.width()},updateControls:function(){this.$pages.removeClass("active");return this.$pages.filter("[data-jump-to="+(this.current-1)+"]").addClass("active")},runAnimations:function(){var l,m;m=this;l=j(this.$slides[this.current-1]).find("[data-animate]");return l.each(function(){var n;n=j(this);return m.options.animations[n.data("animate")](n,n.data("delay"),n.data("length"))})},hideAnimatedCaptions:function(l){return j(this.$slides[l-1]).find("[data-animate]").css({opacity:0})},calculateScroll:function(l){var m;m=this.getGlobalWidth();return(l-1)*m},resize:function(){return this.$rel.css("right",this.calculateScroll(this.current))},jump:function(m,l,n){var s,q,p,o;if(l==null){l=this.options.transitionTime}if(n==null){n=false}p=this;if(m===p.current){n=true}if(this.$slides.length>=m&&!this.slideChangeInProgress){q=this.getGlobalWidth();if(!n){this.hideAnimatedCaptions(m)}o=void 0;if(this.options.parallax){this.currentBgPosition=parseInt(p.$slidesContainer.css("background-position"));this.moveStartScroll=parseInt(this.$rel.css("right"),10);o=function(){var r;r=Math.round(p.currentBgPosition-(p.moveStartScroll-parseInt(p.$rel.css("right"),10))*p.options.parallaxDistance*p.options.parallaxDirection)+"px 0";return p.$slidesContainer.css("background-position",r)}}s={duration:l,step:o,done:function(){if(m===1){p.hideAnimatedCaptions(p.$slides.length-1);p.set(p.$slides.length-1)}else{if(m===p.$slides.length){p.hideAnimatedCaptions(2);p.set(2)}else{p.current=m;p.slide=m-1}}p.updateControls();if(!n){p.runAnimations()}p.options.onSlideChange.call(p);return null},always:function(){p.slideChangeInProgress=false;return null}};this.slideChangeInProgress=true;this.$rel.animate({right:this.calculateScroll(m)},s)}return null},set:function(l,n){var m;if(n==null){n=false}m=this.getGlobalWidth();this.$rel.css("right",this.calculateScroll(l));this.current=l;this.slide=l-1;this.updateControls();return null},movestart:function(l){if((l.distX>l.distY&&l.distX<-l.distY)||(l.distX<l.distY&&l.distX>-l.distY)){return l.preventDefault()}else{this.stop();if(this.options.parallax){this.currentBgPosition=parseInt(this.$slidesContainer.css("background-position"))}this.hideAnimatedCaptions(this.current-1);this.hideAnimatedCaptions(this.current+1);this.moveStartScroll=parseInt(this.$rel.css("right"),10);this.$rel.stop();this.$rel.addClass("drag");return this.timeStart=new Date()}},move:function(m){var l;if(this.options.parallax){l=Math.round(this.currentBgPosition-m.distX*this.options.parallaxDistance*this.options.parallaxDirection)+"px 0";this.$slidesContainer.css("background-position",l)}return this.$rel.css("right",this.moveStartScroll-m.distX)},moveend:function(p){var n,m,q,o,l;n=Math.abs(p.distX);o=(new Date()).getTime()-this.timeStart.getTime();q=this.getGlobalWidth();m=n/q;l=(o/m)*(1-m);l=l<1000?l:1000;this.$rel.removeClass("drag");if(n<q/this.options.moveDistanceToSlideChange){return this.jump(this.current,l,true)}else{if(p.distX<0){return this.next(l)}else{return this.prev(l)}}},stop:function(l){if(l==null){l=true}clearInterval(this.interval);if(l){this.$element.off("mouseover");this.$element.off("mouseleave")}return null},start:function(){var l;l=this;return this.interval=setInterval((function(){return l.next()}),this.options.interval)},autoplay:function(){var l;l=this;this.stop();this.start();this.$element.on("mouseover",function(){return l.stop(false)});return this.$element.on("mouseleave",function(){l.stop(false);return l.start()})},prev:function(l,m){if(l==null){l=this.options.transitionTime}if(m==null){m=false}this.jump(this.current-1,l,m);this.options.onSlidePrev.call(this);return this.options.onSlidePageChange.call(this)},next:function(l,m){if(l==null){l=this.options.transitionTime}if(m==null){m=false}this.jump(this.current+1,l,m);this.options.onSlideNext.call(this);return this.options.onSlidePageChange.call(this)}};j.fn.responsiveSlider=function(n){var q,m,l,o,p;o=this;m=j.extend({},j.fn.responsiveSlider.defaults,typeof n==="object"&&n);m.animations=j.fn.responsiveSlider.animations;l={next:"next",prev:"prev",stop:"stop",start:"autoplay"};q=function(v){var u,r,t,s;m=j.metadata?j.extend({},m,v.metadata()):m;s=v.find("ul li");if(s.length>1){u=j(s[0]);r=j(s[s.length-1]);u.before(r.clone());r.after(u.clone())}v.data("slider",(t=new h(v,m)));if(m.autoplay){t.interval=setInterval((function(){return t.next()}),m.interval);t.autoplay()}j(window).on("resize",function(){return t.resize()});v.find("[data-jump]").on("click",function(){t[j(this).data("jump")]();return false});v.find("[data-jump-to]").on("click",function(){t.jump(j(this).data("jump-to")+1);return false});if(m.touch){return v.find('[data-group="slide"]').on("movestart",function(x,w){return t.movestart(x)}).on("move",function(w){return t.move(w)}).on("moveend",function(w){return t.moveend(w)})}};p=function(){return o.each(function(){var s,r;s=j(this);r=s.data("slider");if(!r){q(s,m)}else{if(typeof n==="string"){r[l[n]]()}else{if(typeof n==="number"){r.jump(Math.abs(n)+1)}}}return s})};if(j.fn.responsiveSlider.run){return p()}else{j(window).on("load",p);return j.fn.responsiveSlider.run=true}};j.fn.responsiveSlider.animations={slideAppearRightToLeft:function(p,m,o){var l,n;if(m==null){m=0}if(o==null){o=300}n={"margin-left":100,"margin-right":-100};p.css(n);l=function(){n={"margin-left":0,"margin-right":0,opacity:1};return p.animate(n,o)};if(m>0){return setTimeout(l,m)}else{return l()}},slideAppearLeftToRight:function(p,m,o){var l,n;if(m==null){m=0}if(o==null){o=300}n={"margin-left":-100,"margin-right":100};p.css(n);l=function(){n={"margin-left":0,"margin-right":0,opacity:1};return p.animate(n,o)};if(m>0){return setTimeout(l,m)}else{return l()}},slideAppearUpToDown:function(p,m,o){var l,n;if(m==null){m=0}if(o==null){o=300}n={"margin-top":100,"margin-bottom":-100};p.css(n);l=function(){n={"margin-top":0,"margin-bottom":0,opacity:1};return p.animate(n,o)};if(m>0){return setTimeout(l,m)}else{return l()}},slideAppearDownToUp:function(p,m,o){var l,n;if(m==null){m=0}if(o==null){o=300}n={"margin-top":-100,"margin-bottom":100};p.css(n);l=function(){n={"margin-top":0,"margin-bottom":0,opacity:1};return p.animate(n,o)};if(m>0){return setTimeout(l,m)}else{return l()}}};j.fn.responsiveSlider.defaults={autoplay:false,interval:5000,touch:true,parallax:false,parallaxDistance:1/10,parallaxDirection:1,transitionTime:300,moveDistanceToSlideChange:4,onSlideChange:function(){},onSlideNext:function(){},onSlidePrev:function(){},onSlidePageChange:function(){},onInit:function(){}};j.fn.responsiveSlider.run=false;k=j('[data-spy="responsive-slider"]');if(k.length){a={};if(e=k.data("autoplay")){a.autoplay=e}if(c=k.data("interval")){a.interval=c}if(g=k.data("parallax")){a.parallax=g}if(f=k.data("parallax-distance")){a.parallaxDistance=parseInt(f,10)}if(b=k.data("parallax-direction")){a.parallaxDirection=parseInt(b,10)}if(!(i=k.data("touch"))){a.touch=i}if(d=k.data("transitiontime")){a.transitionTime=d}k.responsiveSlider(a)}return null})(jQuery)}).call(this);
\ No newline at end of file
diff --git a/sm-shop/src/main/webapp/resources/templates/exoticamobilia/js/template.js b/sm-shop/src/main/webapp/resources/templates/exoticamobilia/js/template.js
index b3bd529..c148d73 100644
--- a/sm-shop/src/main/webapp/resources/templates/exoticamobilia/js/template.js
+++ b/sm-shop/src/main/webapp/resources/templates/exoticamobilia/js/template.js
@@ -1,13 +1,3 @@
-/* Theme Name:iDea - Clean & Powerful Bootstrap Theme
- * Author:HtmlCoder
- * Author URI:http://www.htmlcoder.me
- * Author e-mail:htmlcoder.me@gmail.com
- * Version: 1.1.0
- * Created:October 2014
- * License URI:http://support.wrapbootstrap.com/
- * File Description: Initializations of plugins
- */
-
(function($){
$(document).ready(function(){
@@ -1014,12 +1004,4 @@ if (jQuery(".btn-print").length>0) {
mywindow.print();
mywindow.close();
}
-}
-
-(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
-(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
-m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
-})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
-
-ga('create', 'UA-40620479-6', 'auto');
-ga('send', 'pageview');
\ No newline at end of file
+}
\ No newline at end of file
diff --git a/sm-shop/src/main/webapp/resources/templates/exoticamobilia/js/typeahead.bundle.min.js b/sm-shop/src/main/webapp/resources/templates/exoticamobilia/js/typeahead.bundle.min.js
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/WEB-INF/classes/demo/android.jpg b/sm-shop/src/main/webapp/WEB-INF/classes/demo/android.jpg
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/WEB-INF/classes/demo/android.jpg and b/sm-shop/src/main/webapp/WEB-INF/classes/demo/android.jpg differ
diff --git a/sm-shop/src/main/webapp/WEB-INF/classes/demo/android2.jpg b/sm-shop/src/main/webapp/WEB-INF/classes/demo/android2.jpg
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/WEB-INF/classes/demo/android2.jpg and b/sm-shop/src/main/webapp/WEB-INF/classes/demo/android2.jpg differ
diff --git a/sm-shop/src/main/webapp/WEB-INF/classes/demo/cloud.jpg b/sm-shop/src/main/webapp/WEB-INF/classes/demo/cloud.jpg
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/WEB-INF/classes/demo/cloud.jpg and b/sm-shop/src/main/webapp/WEB-INF/classes/demo/cloud.jpg differ
diff --git a/sm-shop/src/main/webapp/WEB-INF/classes/demo/google.jpg b/sm-shop/src/main/webapp/WEB-INF/classes/demo/google.jpg
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/WEB-INF/classes/demo/google.jpg and b/sm-shop/src/main/webapp/WEB-INF/classes/demo/google.jpg differ
diff --git a/sm-shop/src/main/webapp/WEB-INF/classes/demo/html5-multimedia.jpg b/sm-shop/src/main/webapp/WEB-INF/classes/demo/html5-multimedia.jpg
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/WEB-INF/classes/demo/html5-multimedia.jpg and b/sm-shop/src/main/webapp/WEB-INF/classes/demo/html5-multimedia.jpg differ
diff --git a/sm-shop/src/main/webapp/WEB-INF/classes/demo/jQuery.jpg b/sm-shop/src/main/webapp/WEB-INF/classes/demo/jQuery.jpg
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/WEB-INF/classes/demo/jQuery.jpg and b/sm-shop/src/main/webapp/WEB-INF/classes/demo/jQuery.jpg differ
diff --git a/sm-shop/src/main/webapp/WEB-INF/classes/demo/live-code.jpg b/sm-shop/src/main/webapp/WEB-INF/classes/demo/live-code.jpg
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/WEB-INF/classes/demo/live-code.jpg and b/sm-shop/src/main/webapp/WEB-INF/classes/demo/live-code.jpg differ
diff --git a/sm-shop/src/main/webapp/WEB-INF/classes/demo/node.jpg b/sm-shop/src/main/webapp/WEB-INF/classes/demo/node.jpg
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/WEB-INF/classes/demo/node.jpg and b/sm-shop/src/main/webapp/WEB-INF/classes/demo/node.jpg differ
diff --git a/sm-shop/src/main/webapp/WEB-INF/classes/demo/paas.JPG b/sm-shop/src/main/webapp/WEB-INF/classes/demo/paas.JPG
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/WEB-INF/classes/demo/paas.JPG and b/sm-shop/src/main/webapp/WEB-INF/classes/demo/paas.JPG differ
diff --git a/sm-shop/src/main/webapp/WEB-INF/classes/demo/spring.png b/sm-shop/src/main/webapp/WEB-INF/classes/demo/spring.png
old mode 100755
new mode 100644
Binary files a/sm-shop/src/main/webapp/WEB-INF/classes/demo/spring.png and b/sm-shop/src/main/webapp/WEB-INF/classes/demo/spring.png differ
diff --git a/sm-shop/src/main/webapp/WEB-INF/shopizer-functions.tld b/sm-shop/src/main/webapp/WEB-INF/shopizer-functions.tld
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/WEB-INF/shopizer-tags.tld b/sm-shop/src/main/webapp/WEB-INF/shopizer-tags.tld
old mode 100755
new mode 100644
index 23af691..0a4a56a
--- a/sm-shop/src/main/webapp/WEB-INF/shopizer-tags.tld
+++ b/sm-shop/src/main/webapp/WEB-INF/shopizer-tags.tld
@@ -8,7 +8,7 @@
<uri>/shopizer-tags</uri>
<tag>
- <!-- Builds the image URL -->
+ <!-- Builds the image URL (in admin section only)-->
<name>contentImage</name>
<tag-class>com.salesmanager.web.tags.ContentImageUrlTag</tag-class>
<body-content>scriptless</body-content>
@@ -16,12 +16,19 @@
<attribute>
<name>imageName</name>
- <required>true</required>
+ <required>false</required>
<rtexprvalue>true</rtexprvalue>
<type>java.lang.String</type>
</attribute>
<attribute>
+ <name>merchantStore</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>com.salesmanager.core.business.merchant.model.MerchantStore</type>
+ </attribute>
+
+ <attribute>
<name>imageType</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
@@ -46,6 +53,24 @@
</tag>
+
+<tag>
+ <!-- Core configuration -->
+ <name>config</name>
+ <tag-class>com.salesmanager.web.tags.ConfigurationTag</tag-class>
+ <body-content>scriptless</body-content>
+
+
+ <attribute>
+ <name>configurationCode</name>
+ <required>true</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>java.lang.String</type>
+ </attribute>
+
+</tag>
+
+
<tag>
<!-- Builds the manufacturer image URL -->
<name>manufacturerImage</name>
diff --git a/sm-shop/src/main/webapp/WEB-INF/spring/appServlet/controllers.xml b/sm-shop/src/main/webapp/WEB-INF/spring/appServlet/controllers.xml
old mode 100755
new mode 100644
index 5bd9be2..6dd47bc
--- a/sm-shop/src/main/webapp/WEB-INF/spring/appServlet/controllers.xml
+++ b/sm-shop/src/main/webapp/WEB-INF/spring/appServlet/controllers.xml
@@ -4,28 +4,24 @@
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:task="http://www.springframework.org/schema/task"
xmlns:context="http://www.springframework.org/schema/context"
- xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
- http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd
- http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.2.xsd
- http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd">
+ xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
+ http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
+ http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.1.xsd
+ http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd">
<context:annotation-config />
-
-
-
<context:component-scan base-package="com.salesmanager.web" />
<context:component-scan base-package="com.salesmanager.core.business" />
<context:component-scan base-package="com.salesmanager.core.utils" />
-
-
<!-- Async -->
<bean id="executorService" class="java.util.concurrent.Executors"
factory-method="newFixedThreadPool">
<constructor-arg value="10" />
</bean>
-
+
+
<task:executor id="threadPoolTaskExecutor" pool-size="10" />
<task:annotation-driven executor="executorService" />
@@ -42,10 +38,6 @@
</bean>
-->
-
-
-<mvc:annotation-driven content-negotiation-manager="contentNegotiationManager"/>
-
<!-- Maps '/' requests to the 'home' view -->
<mvc:view-controller path="/" view-name="shop"/>
diff --git a/sm-shop/src/main/webapp/WEB-INF/spring/appServlet/servlet-context.xml b/sm-shop/src/main/webapp/WEB-INF/spring/appServlet/servlet-context.xml
old mode 100755
new mode 100644
index 94bf749..c2047bd
--- a/sm-shop/src/main/webapp/WEB-INF/spring/appServlet/servlet-context.xml
+++ b/sm-shop/src/main/webapp/WEB-INF/spring/appServlet/servlet-context.xml
@@ -5,15 +5,15 @@
xmlns:task="http://www.springframework.org/schema/task"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
- http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
- http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
- http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.2.xsd
- http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd">
+ http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd
+ http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
+ http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.1.xsd
+ http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd">
<!-- DispatcherServlet Context: defines this servlet's request-processing infrastructure -->
<!-- Enables the Spring MVC @Controller programming model -->
- <annotation-driven content-negotiation-manager="contentNegotiationManager">
+ <annotation-driven>
<!-- Device object in controller method -->
<argument-resolvers>
@@ -33,11 +33,6 @@
</message-converters>
</annotation-driven>
-
- <beans:bean id="contentNegotiationManager" class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean">
- <!-- Turn off working out content type based on URL file extension, should fall back to looking at the Accept headers -->
- <beans:property name="favorPathExtension" value="false" />
- </beans:bean>
<!-- Handles HTTP GET requests for /resources/** by efficiently serving up static resources in the ${webappRoot}/resources/ directory -->
<resources mapping="/resources/**" location="/resources/" />
@@ -91,7 +86,13 @@
<beans:bean id="messages" class="com.salesmanager.web.utils.LabelUtils">
</beans:bean>
-
+
+ <!-- load images from local web server [com.salesmanager.web.utils.LocalImageFilePathUtils] -->
+ <beans:bean id="img" class="com.salesmanager.web.utils.LocalImageFilePathUtils">
+ <beans:property name="basePath" value="/sm-shop/static" />
+ <!-- /static --><!-- /sm-shop/static -->
+ </beans:bean>
+
<beans:import resource="controllers.xml" />
diff --git a/sm-shop/src/main/webapp/WEB-INF/spring/appServlet/shopizer-properties.xml b/sm-shop/src/main/webapp/WEB-INF/spring/appServlet/shopizer-properties.xml
old mode 100755
new mode 100644
index f24c1df..feae7b2
--- a/sm-shop/src/main/webapp/WEB-INF/spring/appServlet/shopizer-properties.xml
+++ b/sm-shop/src/main/webapp/WEB-INF/spring/appServlet/shopizer-properties.xml
@@ -2,13 +2,13 @@
xmlns:context="http://www.springframework.org/schema/context" xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:task="http://www.springframework.org/schema/task"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="
- http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
- http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
- http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd
- http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.2.xsd
- http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
- http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.2.xsd
- http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.2.xsd">
+ http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
+ http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
+ http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
+ http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.1.xsd
+ http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd
+ http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.1.xsd
+ http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.1.xsd">
<!--
@@ -33,13 +33,17 @@
<prop key="IMAGE_FORMATS">jpg|png|gif</prop>
<prop key="POPULATE_TEST_DATA">false</prop>
-
- <prop key="ORDER_SCHEME">http</prop>
- <prop key="CONTEXT_PATH">sm-shop</prop>
+ <prop key="SHOP_SCHEME">http</prop>
+ <!-- when removing the context path from the url put that value to blank (nothing) -->
+ <prop key="CONTEXT_PATH">/sm-shop</prop>
<prop key="URL_EXTENSION">.html</prop>
+ <!-- Google maps key -->
+ <prop key="shopizer.googlemaps_key">YOUR-KEY-HERE</prop>
<!-- #https://www.google.com/recaptcha/admin/create -->
- <prop key="shopizer.recapatcha_public_key">6Lc1Pe0SAAAAADQDlWbv3MYYj7lGEeCEanwC42bv</prop>
- <prop key="shopizer.recapatcha_private_key">6Lc1Pe0SAAAAAFMolDugwnZN9Xe3CnapokqoQjhg</prop>
+ <!-- to be used with localhost
+ <prop key="shopizer.recapatcha_public_key">6LefQwsTAAAAAJWgJfNq_LgUwYunqct2x-EBr_CY</prop>
+ <prop key="shopizer.recapatcha_private_key">6LefQwsTAAAAAM667PyQxTLkSfQ4P0YYeN5DQDTc</prop>
+ <prop key="shopizer.recapatcha_url"><![CDATA[https://www.google.com/recaptcha/api/siteverify]]></prop>
<!-- express checkout url -->
<prop key="PAYPAL_EXPRESSCHECKOUT_SANDBOX"><![CDATA[https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=]]></prop>
<prop key="PAYPAL_EXPRESSCHECKOUT_PRODUCTION"><![CDATA[https://www.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=]]></prop>
diff --git a/sm-shop/src/main/webapp/WEB-INF/spring/appServlet/shopizer-security.xml b/sm-shop/src/main/webapp/WEB-INF/spring/appServlet/shopizer-security.xml
old mode 100755
new mode 100644
index 478a951..d3006d3
--- a/sm-shop/src/main/webapp/WEB-INF/spring/appServlet/shopizer-security.xml
+++ b/sm-shop/src/main/webapp/WEB-INF/spring/appServlet/shopizer-security.xml
@@ -1,11 +1,11 @@
<beans:beans xmlns="http://www.springframework.org/schema/security"
xmlns:beans="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
+ http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/jdbc
- http://www.springframework.org/schema/jdbc/spring-jdbc-3.2.xsd
+ http://www.springframework.org/schema/jdbc/spring-jdbc-3.1.xsd
http://www.springframework.org/schema/security
- http://www.springframework.org/schema/security/spring-security-3.2.xsd">
+ http://www.springframework.org/schema/security/spring-security-3.1.xsd">
<global-method-security secured-annotations="enabled" jsr250-annotations="enabled" pre-post-annotations="enabled"/>
@@ -48,8 +48,8 @@
<http pattern="/admin/**" auto-config="true" use-expressions="true" authentication-manager-ref="userAuthenticationManager">
<intercept-url pattern="/admin/logon.html*" access="permitAll" />
- <intercept-url pattern="/admin/denied.html" access="permitAll"/>
- <intercept-url pattern="/admin/unauthorized.html" access="permitAll"/>
+ <intercept-url pattern="/admin/denied.html" access="permitAll" />
+ <intercept-url pattern="/admin/unauthorized.html" access="permitAll" />
<intercept-url pattern="/admin/users/resetPassword.html*" access="permitAll" />
<intercept-url pattern="/admin/users/resetPasswordSecurityQtn.html*" access="permitAll" />
<intercept-url pattern="/admin" access="hasRole('AUTH')" />
@@ -83,8 +83,8 @@
<intercept-url pattern="/shop/customer/logon.html*" access="permitAll" />
<intercept-url pattern="/shop/customer/registration.html*" access="permitAll" />
<intercept-url pattern="/shop/customer/customLogon.html*" access="permitAll" />
- <intercept-url pattern="/shop/customer/denied.html" access="permitAll"/>
- <intercept-url pattern="/shop/customer/j_spring_security_check" access="permitAll"/>
+ <intercept-url pattern="/shop/customer/denied.html" access="permitAll" />
+ <intercept-url pattern="/shop/customer/j_spring_security_check" access="permitAll" />
<intercept-url pattern="/shop/customer" access="hasRole('AUTH_CUSTOMER')" />
<intercept-url pattern="/shop/customer/" access="hasRole('AUTH_CUSTOMER')" />
<intercept-url pattern="/shop/customer/*.html*" access="hasRole('AUTH_CUSTOMER')" />
diff --git a/sm-shop/src/main/webapp/WEB-INF/spring/root-context.xml b/sm-shop/src/main/webapp/WEB-INF/spring/root-context.xml
old mode 100755
new mode 100644
index e5f58b4..2982314
--- a/sm-shop/src/main/webapp/WEB-INF/spring/root-context.xml
+++ b/sm-shop/src/main/webapp/WEB-INF/spring/root-context.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd">
+ xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd">
<!-- Root Context: defines shared resources visible to all other web components -->
diff --git a/sm-shop/src/main/webapp/WEB-INF/tiles/tiles-admin.xml b/sm-shop/src/main/webapp/WEB-INF/tiles/tiles-admin.xml
old mode 100755
new mode 100644
index bf39eba..5f5cc93
--- a/sm-shop/src/main/webapp/WEB-INF/tiles/tiles-admin.xml
+++ b/sm-shop/src/main/webapp/WEB-INF/tiles/tiles-admin.xml
@@ -129,6 +129,10 @@
<put-attribute name="body" value="/pages/admin/products/productImages.jsp" />
</definition>
+ <definition name="admin-products-images-url" template="/layout/admin/layout.jsp">
+ <put-attribute name="body" value="/pages/admin/products/productImagesUrl.jsp" />
+ </definition>
+
<definition name="admin-products-manufacturer" template="/layout/admin/layout.jsp">
<put-attribute name="body" value="/pages/admin/products/manufacturers.jsp" />
</definition>
diff --git a/sm-shop/src/main/webapp/WEB-INF/tiles/tiles-shop.xml b/sm-shop/src/main/webapp/WEB-INF/tiles/tiles-shop.xml
old mode 100755
new mode 100644
index 06cdd9c..f9bcd65
--- a/sm-shop/src/main/webapp/WEB-INF/tiles/tiles-shop.xml
+++ b/sm-shop/src/main/webapp/WEB-INF/tiles/tiles-shop.xml
@@ -41,6 +41,14 @@
<put-attribute name="footer" value="/pages/shop/templates/{1}/sections/footer.jsp" />
</definition>
+
+ <definition name="items.manufacturer.*" template="/pages/shop/templates/{1}/catalogLayout.jsp">
+ <put-attribute name="header" value="/pages/shop/templates/{1}/sections/header.jsp" />
+ <put-attribute name="navbar" value="/pages/shop/templates/{1}/sections/navbar.jsp" />
+ <put-attribute name="body" value="/pages/shop/templates/{1}/pages/items.jsp" />
+ <put-attribute name="footer" value="/pages/shop/templates/{1}/sections/footer.jsp" />
+ </definition>
+
<definition name="product.*" template="/pages/shop/templates/{1}/catalogLayout.jsp">
<put-attribute name="header" value="/pages/shop/templates/{1}/sections/header.jsp" />
<put-attribute name="navbar" value="/pages/shop/templates/{1}/sections/navbar.jsp" />
diff --git a/sm-shop/src/main/webapp/WEB-INF/views/admin/logon.jsp b/sm-shop/src/main/webapp/WEB-INF/views/admin/logon.jsp
old mode 100755
new mode 100644
index 1585f83..f597033
--- a/sm-shop/src/main/webapp/WEB-INF/views/admin/logon.jsp
+++ b/sm-shop/src/main/webapp/WEB-INF/views/admin/logon.jsp
@@ -105,13 +105,6 @@
- <script SRC="<c:url value="/resources/smart-client/system/modules/ISC_Core.js" />"></script>
- <script SRC="<c:url value="/resources/smart-client/system/modules/ISC_Foundation.js" />"></script>
- <script SRC="<c:url value="/resources/smart-client/system/modules/ISC_Containers.js" />"></script>
- <script SRC="<c:url value="/resources/smart-client/system/modules/ISC_Grids.js" />"></script>
- <script SRC="<c:url value="/resources/smart-client/system/modules/ISC_DataBinding.js" />"></script>
-
-
<script language="javascript">
diff --git a/sm-shop/src/main/webapp/WEB-INF/views/admin/unauthorized.jsp b/sm-shop/src/main/webapp/WEB-INF/views/admin/unauthorized.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/WEB-INF/views/error/access_denied.jsp b/sm-shop/src/main/webapp/WEB-INF/views/error/access_denied.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/WEB-INF/views/error/generic_error.jsp b/sm-shop/src/main/webapp/WEB-INF/views/error/generic_error.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/WEB-INF/views/shop.jsp b/sm-shop/src/main/webapp/WEB-INF/views/shop.jsp
old mode 100755
new mode 100644
diff --git a/sm-shop/src/main/webapp/WEB-INF/web.xml b/sm-shop/src/main/webapp/WEB-INF/web.xml
old mode 100755
new mode 100644
diff --git a/sm-shop/src/test/java/com/salesmanager/test/shop/controller/category/rest/CategoryManagementAPITest.java b/sm-shop/src/test/java/com/salesmanager/test/shop/controller/category/rest/CategoryManagementAPITest.java
old mode 100755
new mode 100644
diff --git a/sm-shop/src/test/java/com/salesmanager/test/shop/controller/customer/rest/CustomerRESTControllerTest.java b/sm-shop/src/test/java/com/salesmanager/test/shop/controller/customer/rest/CustomerRESTControllerTest.java
old mode 100755
new mode 100644
diff --git a/sm-shop/src/test/java/com/salesmanager/test/shop/controller/product/rest/ProductManagementAPITest.java b/sm-shop/src/test/java/com/salesmanager/test/shop/controller/product/rest/ProductManagementAPITest.java
old mode 100755
new mode 100644
index 4a0dd98..567039c
--- a/sm-shop/src/test/java/com/salesmanager/test/shop/controller/product/rest/ProductManagementAPITest.java
+++ b/sm-shop/src/test/java/com/salesmanager/test/shop/controller/product/rest/ProductManagementAPITest.java
@@ -156,7 +156,7 @@ public class ProductManagementAPITest {
HttpEntity<String> entity = new HttpEntity<String>(json, getHeader());
- ResponseEntity response = restTemplate.postForEntity("http://localhost:8080/sm-shop/services/private//DEFAULT/product/review", entity, PersistableProductReview.class);
+ ResponseEntity response = restTemplate.postForEntity("http://localhost:8080/sm-shop/services/private/DEFAULT/product/review", entity, PersistableProductReview.class);
PersistableProductReview rev = (PersistableProductReview) response.getBody();
System.out.println("New ProductReview ID : " + rev.getId());
diff --git a/sm-shop/src/test/java/com/salesmanager/test/shop/controller/store/rest/ContactAPITest.java b/sm-shop/src/test/java/com/salesmanager/test/shop/controller/store/rest/ContactAPITest.java
old mode 100755
new mode 100644
diff --git a/sm-shop/src/test/java/com/salesmanager/test/shop/controller/system/rest/SystemAPITest.java b/sm-shop/src/test/java/com/salesmanager/test/shop/controller/system/rest/SystemAPITest.java
new file mode 100644
index 0000000..f2d956a
--- /dev/null
+++ b/sm-shop/src/test/java/com/salesmanager/test/shop/controller/system/rest/SystemAPITest.java
@@ -0,0 +1,81 @@
+package com.salesmanager.test.shop.controller.system.rest;
+
+import java.nio.charset.Charset;
+
+import org.junit.Ignore;
+import org.junit.Test;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
+import org.springframework.security.crypto.codec.Base64;
+import org.springframework.web.client.RestTemplate;
+
+import com.salesmanager.core.utils.ajax.AjaxResponse;
+
+public class SystemAPITest {
+
+ private RestTemplate restTemplate;
+
+
+ private HttpHeaders getHeader(){
+ HttpHeaders headers = new HttpHeaders();
+ MediaType mediaType = new MediaType("application", "json", Charset.forName("UTF-8"));
+ //MediaType.APPLICATION_JSON //for application/json
+ headers.setContentType(mediaType);
+ //Basic Authentication
+ String authorisation = "admin" + ":" + "password";
+ byte[] encodedAuthorisation = Base64.encode(authorisation.getBytes());
+ headers.add("Authorization", "Basic " + new String(encodedAuthorisation));
+ return headers;
+ }
+
+ /**
+ * Contact us email
+ * @throws Exception
+ */
+ //@Test
+ @Ignore
+ public void createIntegrationModule() throws Exception {
+ restTemplate = new RestTemplate();
+
+ String json =
+ /**
+ "{"
+ + "\"module\":\"PAYMENT\","
+ + "\"code\":\"stripe\","
+ + "\"type\":\"stripe\","
+ + "\"version\":\"1.0\","
+ + "\"regions\":[\"US\",\"CA\",\"GB\",\"AU\",\"FI\",\"DK\",\"IE\",\"NO\",\"SE\"],"
+ + "\"image\":\"stripe.png\","
+ + "\"configuration\":[{\"env\":\"TEST\",\"scheme\":\"https\",\"host\":\"www.stripe.com\",\"port\":\"443\",\"uri\":\"/\"},{\"env\":\"PROD\",\"scheme\":\"https\",\"host\":\"www.stripe.com\",\"port\":\"443\",\"uri\":\"/\"}]"
+ +"}";
+ **/
+
+
+ "{"
+ + "\"module\":\"SHIPPING\","
+ + "\"code\":\"priceByDistance\","
+ + "\"version\":\"1.0\","
+ + "\"regions\":[\"*\"]"
+ +"}";
+
+
+
+ System.out.println(json);
+
+ HttpEntity<String> httpEntity = new HttpEntity<String>(json, getHeader());
+
+ ResponseEntity<AjaxResponse> response = restTemplate.exchange("http://localhost:8080/sm-shop/services/private/system/module", HttpMethod.POST, httpEntity, AjaxResponse.class);
+
+ if(response.getStatusCode() != HttpStatus.OK){
+ throw new Exception();
+ }else{
+ System.out.println(response.getBody() + " Success creating module");
+ }
+ }
+
+
+}
sm-shop/src/test/resources/log4j.properties 14(+14 -0)
diff --git a/sm-shop/src/test/resources/log4j.properties b/sm-shop/src/test/resources/log4j.properties
new file mode 100644
index 0000000..38d6d36
--- /dev/null
+++ b/sm-shop/src/test/resources/log4j.properties
@@ -0,0 +1,14 @@
+log4j.appender.Stdout=org.apache.log4j.ConsoleAppender
+log4j.appender.Stdout.layout=org.apache.log4j.PatternLayout
+log4j.appender.Stdout.layout.ConversionPattern=[%d{ISO8601}] %-5p - %-26.26c{1} - %m\n
+
+log4j.rootLogger=WARN,Stdout
+
+# hibernate queries
+log4j.logger.org.hibernate.SQL=DEBUG
+log4j.logger.org.hibernate.type=INFO
+
+# schema initialization
+log4j.logger.org.hibernate.tool.hbm2ddl=DEBUG
+
+log4j.logger.org.springframework.transaction=DEBUG
sm-shop/src/test/resources/log4j.xml 0(+0 -0)
diff --git a/sm-shop/src/test/resources/log4j.xml b/sm-shop/src/test/resources/log4j.xml
old mode 100755
new mode 100644
sm-shop/target/classes/admin/menu.json 310(+310 -0)
diff --git a/sm-shop/target/classes/admin/menu.json b/sm-shop/target/classes/admin/menu.json
new file mode 100644
index 0000000..23fae73
--- /dev/null
+++ b/sm-shop/target/classes/admin/menu.json
@@ -0,0 +1,310 @@
+{"menus":[
+{
+"menu":{
+"code":"home",
+"icon":"icon-home",
+"url":"/admin/home.html",
+"role":"AUTH",
+"order":0
+}},
+{
+"menu":{
+"code":"store",
+"icon":"icon-file",
+"url":"/admin/store/store.html",
+"role":"STORE",
+"order":1,
+"menus":[
+ {"menu":{"code":"storeDetails","url":"/admin/store/store.html","role":"STORE","order":0, "menus":
+ [
+ {"menu":{
+ "code":"storeDetails","url":"/admin/store/store.html","role":"STORE","order":0
+ }},
+ {"menu":{
+ "code":"create-store","url":"/admin/store/createStore.html","role":"SUPERADMIN","order":1
+ }},
+ {"menu":{
+ "code":"store-list","url":"/admin/store/list.html","role":"SUPERADMIN","order":1
+ }}
+ ]
+ }},
+ {"menu":{"code":"storeBranding","url":"/admin/store/branding.html","role":"STORE","order":1}},
+ {"menu":{"code":"storeLanding","url":"/admin/store/storeLanding.html","role":"STORE","order":2}}
+]
+}},
+{
+"menu":{
+"code":"profile",
+"icon":"icon-info-sign",
+"url":"/admin/users/displayUser.html",
+"role":"AUTH",
+"order":2,
+"menus":[
+ {"menu":{
+ "code":"user","url":"","role":"AUTH","order":0,"menus":
+ [
+ {"menu":{
+ "code":"myprofile","url":"/admin/user/profile.html","role":"AUTH","order":0
+ }},
+ {"menu":{
+ "code":"change-password","url":"/admin/user/password.html","role":"AUTH","order":1
+ }},
+ {"menu":{
+ "code":"users","url":"","role":"ADMIN","order":2
+ }},
+ {"menu":{
+ "code":"create-user","url":"","role":"ADMIN","order":3
+ }}
+ ]
+
+ }},
+ {"menu":{
+ "code":"security","url":"","role":"ADMIN","order":1,"menus":
+ [
+ {"menu":{
+ "code":"security-groups","url":"/admin/user/groups.html","role":"ADMIN","order":1
+ }}
+ ]
+ }}
+]
+}},
+{
+"menu":{
+"code":"catalogue",
+"icon":"icon-tags",
+"url":"/admin/products/products.html",
+"role":"PRODUCTS",
+"order":3,
+"menus":[
+ {"menu":{
+ "code":"catalogue-products","url":"","role":"PRODUCTS","order":0,"menus":
+ [
+ {"menu":{
+ "code":"catalogue-products-create","url":"/admin/products/product.html","role":"PRODUCTS","order":0
+ }},
+ {"menu":{
+ "code":"catalogue","url":"/admin/products/products.html","role":"PRODUCTS","order":2
+ }}
+ ]
+ }},
+ {"menu":{
+ "code":"catalogue-categories","url":"","role":"PRODUCTS","order":1,"menus":
+ [
+ {"menu":{
+ "code":"catalogue-categories-create","url":"/admin/categories/createCategory.html","role":"PRODUCTS","order":0
+ }},
+ {"menu":{
+ "code":"catalogue-categories-list","url":"/admin/categories/categories.html","role":"PRODUCTS","order":1
+ }},
+ {"menu":{
+ "code":"catalogue-categories-hierarchy","url":"/admin/categories/hierarchy.html","role":"PRODUCTS","order":2
+ }}
+ ]
+ }},
+ {"menu":{
+ "code":"catalogue-options","url":"","role":"PRODUCTS","order":2,"menus":
+ [
+ {"menu":{
+ "code":"catalogue-options-list","url":"/admin/catalogue/options/options.html","role":"PRODUCTS","order":1
+ }},
+ {"menu":{
+ "code":"catalogue-options-create","url":"/admin/catalogue/options/option.html","role":"PRODUCTS","order":1
+ }},
+ {"menu":{
+ "code":"catalogue-optionsvalues-list","url":"/admin/catalogue/options/optionsvalues.html","role":"PRODUCTS","order":1
+ }},
+ {"menu":{
+ "code":"catalogue-optionsvalues-create","url":"/admin/options/createOptionValue.html","role":"PRODUCTS","order":1
+ }}
+ ]
+ }},
+ {"menu":{
+ "code":"catalogue-products-group","url":"/admin/catalogue/groups/list.html","role":"PRODUCTS","order":3,"menus":
+ [
+ {"menu":{
+ "code":"catalogue-featured","url":"/admin/catalogue/featured/list.html","role":"PRODUCTS","order":0
+ }},
+ {"menu":{
+ "code":"catalogue-products-custom-group","url":"/admin/catalogue/groups/list.html","role":"PRODUCTS","order":1
+ }}
+ ]
+ }},
+ {"menu":{
+ "code":"manufacturer-list","url":"","role":"PRODUCTS","order":4,"menus":
+ [
+ {"menu":{
+ "code":"manufacturer-list","url":"/admin/catalogue/manufacturer/list.html","role":"PRODUCTS","order":0
+ }},
+ {"menu":{
+ "code":"manufacturer-create","url":"/admin/catalogue/manufacturer/create.html","role":"PRODUCTS","order":1
+ }}
+ ]
+ }}
+]
+}},
+
+
+
+
+{
+"menu":{
+"code":"content",
+"icon":"icon-pencil",
+"url":"/admin/content/pages/list.html",
+"role":"CONTENT",
+"order":4,
+"menus":[
+ {"menu":{
+ "code":"content-pages","url":"","role":"CONTENT","order":0,"menus":
+ [
+ {"menu":{
+ "code":"content-pages","url":"/admin/content/pages/list.html","role":"CONTENT","order":0
+ }},
+ {"menu":{
+ "code":"content-pages-create","url":"/admin/content/pages/create.html","role":"CONTENT","order":1
+ }}
+ ]
+
+ }},
+ {"menu":{
+ "code":"content-boxes","url":"","role":"CONTENT","order":1,"menus":
+ [
+ {"menu":{
+ "code":"content-boxes","url":"/admin/content/boxes/list.html","role":"CONTENT","order":0
+ }},
+ {"menu":{
+ "code":"content-boxes-create","url":"/admin/content/boxes/create.html","role":"CONTENT","order":1
+ }}
+ ]
+
+ }},
+ {"menu":{"code":"content-images","url":"","role":"CONTENT","order":0}},
+ {"menu":{"code":"content-files","url":"","role":"CONTENT","order":0}}
+]
+}},
+{
+"menu":{
+"code":"shipping",
+"icon":"icon-plane",
+"url":"/admin/shipping/shippingConfigs.html",
+"role":"SHIPPING",
+"order":5,
+"menus":[
+ {"menu":{"code":"shipping-configs","url":"","role":"SHIPPING","order":0}},
+ {"menu":{"code":"shipping-methods","url":"","role":"SHIPPING","order":2}},
+ {"menu":{"code":"shipping-origin","url":"","role":"SHIPPING","order":3}},
+ {"menu":{"code":"shipping-options","url":"","role":"SHIPPING","order":4}},
+ {"menu":{"code":"shipping-packages","url":"","role":"SHIPPING","order":6}}
+]
+}},
+{
+"menu":{
+"code":"payment",
+"icon":"icon-cog",
+"url":"/admin/payments/paymentMethods.html",
+"role":"PAYMENT",
+"order":6
+}},
+{
+"menu":{
+"code":"customer",
+"icon":"icon-user",
+"url":"/admin/customers/list.html",
+"role":"CUSTOMER",
+"order":7,
+"menus":[
+ {"menu":{
+ "code":"customer-list","url":"","role":"CUSTOMER","order":0,"menus":
+ [
+ {"menu":{
+ "code":"customer-list","url":"/admin/customers/list.html","role":"CUSTOMER","order":0
+ }},
+ {"menu":{
+ "code":"customer-create","url":"/admin/customers/customer.html","role":"CUSTOMER","order":1
+ }}
+ ]
+ }},
+ {"menu":{
+ "code":"customer-options","url":"","role":"CUSTOMER","order":1,"menus":
+ [
+ {"menu":{
+ "code":"customer-options-list","url":"/admin/customers/options/list.html","role":"CUSTOMER","order":0
+ }},
+ {"menu":{
+ "code":"customer-options-create","url":"/admin/customers/options/create.html","role":"CUSTOMER","order":1
+ }},
+ {"menu":{
+ "code":"customer-options-values-list","url":"/admin/customers/options/values/list.html","role":"CUSTOMER","order":2
+ }},
+ {"menu":{
+ "code":"customer-options-values-create","url":"/admin/customers/options/values/create.html","role":"CUSTOMER","order":3
+ }},
+ {"menu":{
+ "code":"customer-options-set","url":"/admin/customers/optionsset/list.html","role":"CUSTOMER","order":4
+ }}
+ ]
+ }}
+]
+}},
+{
+"menu":{
+"code":"order",
+"icon":"icon-shopping-cart",
+"url":"/admin/orders/list.html",
+"role":"ORDER",
+"order":8,
+"menus":[
+ {"menu":{
+ "code":"order-list","url":"/admin/orders/list.html","role":"ORDER","order":0
+ }}
+]
+}},
+{
+"menu":{
+"code":"tax",
+"icon":"icon-book",
+"url":"/admin/tax/taxconfiguration/edit.html",
+"role":"TAX",
+"order":9,
+"menus":[
+ {"menu":{
+ "code":"taxconfiguration","url":"/admin/tax/taxconfiguration/edit.html","role":"TAX","order":0
+ }},
+ {"menu":{
+ "code":"taxclass","url":"/admin/tax/taxclass/list.html","role":"TAX","order":1
+ }},
+ {"menu":{
+ "code":"taxrates","url":"/admin/tax/taxrates/list.html","role":"TAX","order":2
+ }}
+]
+}},
+{
+"menu":{
+"code":"cache",
+"icon":"icon-th",
+"url":"/admin/cache/cacheManagement.html",
+"role":"AUTH",
+"order":10
+}},
+{
+"menu":{
+"code":"configuration",
+"icon":"icon-wrench",
+"url":"/admin/configuration/accounts.html",
+"role":"AUTH",
+"order":11,
+"menus":[
+ {"menu":{
+ "code":"accounts-conf","url":"/admin/configuration/accounts.html","role":"AUTH","order":0
+ }},
+ {"menu":{
+ "code":"email-conf","url":"/admin/configuration/email.html","role":"AUTH","order":1
+ }},
+ {"menu":{
+ "code":"system-configurations","url":"/admin/configuration/system.html","role":"AUTH","order":2
+ }}
+]
+}}
+]}
+
+
sm-shop/target/classes/bundles/messages.properties 210(+210 -0)
diff --git a/sm-shop/target/classes/bundles/messages.properties b/sm-shop/target/classes/bundles/messages.properties
new file mode 100644
index 0000000..9886cfa
--- /dev/null
+++ b/sm-shop/target/classes/bundles/messages.properties
@@ -0,0 +1,210 @@
+message.success=Request completed with success
+message.error=An error occurred in this request
+message.email.success=Your message has been sent
+message.productreview.created=You have successfully created a product review
+message.email.error=An error occurred while sending your message, pleas try again later
+message.access.denied=Access denied
+message.error.shoppingcart.update=An error occurred while updating the shopping cart
+message.username.password=Login Failed. Username or Password is incorrect.
+message.resource.notfound=The requested page does not exist.
+message.fielderror=Field error
+message.timeout=The session timed out.
+message.error.shipping=An error occurred while estimating shipping costs
+NotEmpty=Field required
+currentpassword.not.empty=Current password should not be empty
+password.notequal=New password and check password should be equals
+newpassword.not.empty=New password should not be empty and should be 6 characters long
+repeatpassword.not.empty=Check password should not be empty and should be 6 characters long
+
+NotEmpty.store.storename=The store name should not be empty
+NotEmpty.store.storeEmailAddress=Store email address should not be empty
+Email.store.storeEmailAddress=Store email address is invalid
+NotEmpty.product.productPrice=The product price must be specified
+NotEmpty.product.manufacturer=The product manufacturer is required
+NotEmpty.price.code=The price code is required
+Pattern.price.code=The price code must be alphanumeric
+Pattern.product.sku=The sku must be alphanumeric
+Pattern.merchant.code=The merchant store code must be alphanumeric
+Pattern.optionValue.code=The code must be alphanumeric
+NotEmpty.optionValue.code=The code should not be empty
+Pattern.option.code=The code must be alphanumeric
+NotEmpty.option.code=The code should not be empty
+NotEmpty.keyword.keyword=The keyword cannot be empty
+NotEmpty.review.description=Your opinion is required
+
+NotEmpty.customer.userName=User name is required
+NotEmpty.customer.firstName=First name is required
+NotEmpty.customer.lastName=Last name is required
+NotEmpty.customer.address=Street address is required
+NotEmpty.customer.address2=Street address is required
+NotEmpty.customer.postalCode=Postal code is required
+NotEmpty.customer.stateProvince=State / Province is required
+NotEmpty.customer.phone=Phone number is required
+NotEmpty.customer.city=City is required
+NotEmpty.customer.agreement=Please agree to our terms and conditions
+
+NotEmpty.origin.address=Street address is required
+NotEmpty.origin.postalCode=Postal code is required
+NotEmpty.origin.city=City is required
+NotEmpty.origin.country=Country is required
+
+NotEmpty.customer.emailAddress=Email address is required
+Email.customer.emailAddress=Email address is invalid
+NotEmpty.customer.billing.phone=Phone number is required
+NotEmpty.customer.billing.address=Street address is required
+NotEmpty.customer.billing.city=City is required
+NotEmpty.customer.billing.postalCode=Postal code is required
+NotEmpty.customer.billing.country=Country is required
+NotEmpty.customer.billing.stateProvince=State / Province is required
+
+NotEmpty.customer.shipping.firstName=Shipping first name should not be empty
+NotEmpty.customer.shipping.lastName=Shipping last name should not be empty
+NotEmpty.customer.shipping.address=Shipping street address should not be empty
+NotEmpty.customer.shipping.city=Shipping city should not be empty
+NotEmpty.customer.shipping.postalCode=Shipping postal code should not be empty
+NotEmpty.customer.shipping.phone=Shipping phone should not be empty
+NotEmpty.customer.shipping.stateProvince=Shipping State / Province is required
+
+NotEmpty.order.creditcard.number=A valid credit card number is required
+NotEmpty.order.creditcard.name=Credit card holder's name is required
+NotEmpty.order.creditcard.cvv=Credit card validation digit is required
+NotEmpty.contact.name=Contact name is required
+NotEmpty.contact.subject=Contact subject is required
+NotEmpty.contact.comment=Comment is required
+Email.contact.email=Email format is invalid
+NotEmpty.contact.captchaResponseField=Captcha answer is required
+NotEmpty.contact.captchaChallengeField=Captcha challenge question is required
+
+message.order.canprocess=The order can be completed
+message.name.required=The object name is required
+
+message.code.exist=This code already exist
+message.invalid.amount=Invalid amount
+message.region.exists=Region already exist
+message.region.null=Region cannot be empty
+message.invalid.price=Price format is invalid
+message.invalid.rate=Rate format is invalid
+message.invalid.date=Invalid date format
+message.maximumWeight.null=Maximum weight cannot be empty
+message.maximumWeight.invalid=Maximum weight needs to be greater than 0
+message.unauthorized=This transaction cannot be completed
+message.code.available=This code is available
+message.image.height=Image height too large
+message.image.width=Image width too large
+message.image.size=Image too big
+message.number.invalid=Must be a valid number (eg 5)
+message.productoption.required=A product attribute/option is required
+message.productoptionvalue.required=A product attribute/option value is required
+message.product.language=The product has not been configured with this language. Edit the product and configure it with this language.
+
+message.password.required=A password is required
+message.password.repeat.required=Repeated password is required
+message.username.required=User name is required
+message.username.notfound=User name not found
+message.price.cents=Please enter a maximum of 99 cents
+message.security.cannotrevoke.superadmin=Can't revoke Super Admin group
+message.cannot.empty=can't be empty
+message.password.different=New password and repeat password must be identical
+message.password.invalid=Invalid password
+message.password.length=Password must be at least 6 characters
+message.password.reset=Password has been reset
+message.password.checkpassword.identical=Both password must match
+
+message.security.caanotremovesuperadmin=Can't remove super admin user
+
+message.group.alerady.exists=The group {0} already exists
+message.group.required=The group is required
+
+message.product.association=This entity is attached to one or more products, remove the association before trying to delete.
+message.notexist.customer=Customer does not exist
+message.optionset.optionassociationexists=The option association already exist
+message.optionset.noassociation=Select an option and an option value
+
+messages.error.creditcard.number=Credit card number is not valid
+messages.error.creditcard.dateformat=Credit card expiration date is invalid
+messages.error.creditcard.cvc=Credit card verification digits are invalid
+
+
+message.payment.declined=Payment transaction has been declined
+message.payment.error=Got an error while processing the payment, please use another payment method
+
+message.content.missing.agreement=Content with code 'agreement' does not exist
+
+merchant.storeId.invalid=Please provide a merchant store
+merchant.files.invalid=Please provide file(s) to be uploaded.
+merchant.zone.invalid=Store state/province is required
+
+NotEmpty.order.customerFirstName=Customer first name should not be empty
+NotEmpty.order.customerLastName=Customer last name should not be empty
+NotEmpty.order.customerStreetAddress=Customer street address should not be empty
+NotEmpty.order.customerCity=Customer city should not be empty
+NotEmpty.order.customerPostCode=Customer postal code should not be empty
+NotEmpty.order.customerTelephone=Customer phone should not be empty
+Email.order.customerEmailAddress=Customer email address is invalid
+NotEmpty.order.customerEmailAddress=Customer email address should not be empty
+
+
+NotEmpty.order.billingName=Billing name should not be empty
+NotEmpty.order.billingStreetAddress=Billing street address should not be empty
+NotEmpty.order.billingCity=Billing city should not be empty
+NotEmpty.order.billingState=Billing state should not be empty
+NotEmpty.order.billingPostCode=Billing postal code should not be empty
+
+
+NotEmpty.customer.FirstName=Customer first name should not be empty
+NotEmpty.customer.LastName=Customer last name should not be empty
+NotEmpty.customer.StreetAddress=Customer street address should not be empty
+NotEmpty.customer.City=Customer city should not be empty
+NotEmpty.customer.Country=Customer country should not be empty
+NotEmpty.customer.PostCode=Customer postal code should not be empty
+NotEmpty.customer.Telephone=Customer phone should not be empty
+Email.customer.EmailAddress=Customer email address is invalid
+NotEmpty.customer.EmailAddress=Customer email address should not be empty
+
+NotEmpty.customer.billingCompany=Billing company name should not be empty
+NotEmpty.customer.billingFirstName=Billing first name should not be empty
+NotEmpty.customer.billingLastName=Billing last name should not be empty
+NotEmpty.customer.billingStreetAddress=Billing street address should not be empty
+NotEmpty.customer.billingCity=Billing city should not be empty
+NotEmpty.customer.billingState=Billing state should not be empty
+NotEmpty.customer.billingCountry=Billing country should not be empty
+NotEmpty.customer.billingPostCode=Billing postal code should not be empty
+
+NotEmpty.customer.shippingCountry=Shipping country should not be empty
+
+NotEmpty.taxClass.code=Tax Class code is required
+NotEmpty.taxClass.title=Tax Class name is required
+message.taxclass.alreadyexist=Tax Class code already exist
+NotEmpty.taxRate.code=Tax Rate code must not be empty
+NotEmpty.taxRate.unique.code=Tax Rate code must be unique
+NotEmpty.taxRate.rateText=Tax Rate must not be empty
+NotEmpty.taxRateDescription.name=Tax Rate name must not be empty
+NotNull.taxRate.parent=Parent tax rate must be selected
+
+message.noshipping.configured=No shipping method configured
+message.noshipping=No shipping available
+message.noshippingerror=No shipping available, please check your shipping country, state / province and postal code
+
+message.login.duallogin=Dual login not authorized on the same browser
+
+User.resetPassword.resetSuccess=Successfully changed password, please check your Email
+User.resetPassword.wrongSecurityQtn=Wrong Security Question/Answer Entered
+User.resetPassword.userNotFound=Specified User Not Found
+User.resetPassword.Error=An error occured, please contact the administrator
+
+validaion.recaptcha.not.matched=Recaptcha does not matched with user input
+registration.username.not.empty=Please provide user name
+registration.username.length.invalid=User name must be at least 6 characters long
+registration.password.not.empty=Please provide a valid password
+registration.firstName.invalid=Please provide first name
+registration.lastName.invalid=Please provide last name
+messages.invalid.email=Please provide a valid email address.
+registration.username.already.exists = User with user name already exists for this store.
+registration.failed=Unable to complete registration, please try again later
+currentpassword.not.empty=Please provide your current password
+newpassword.not.empty=Please provide a new password
+repeatpassword.not.empty=Please provide repeated password
+message.invalidpassword=Invalid password
+
+error.code.99=An error occured while trying to process the payment
+
diff --git a/sm-shop/target/classes/bundles/messages_fr.properties b/sm-shop/target/classes/bundles/messages_fr.properties
new file mode 100644
index 0000000..1b3ef4e
--- /dev/null
+++ b/sm-shop/target/classes/bundles/messages_fr.properties
@@ -0,0 +1,210 @@
+message.success=Requête compétée avec succès
+message.error=Une erreur est survenue avec cette requête
+message.email.success=Votre message a été envoyé avec succès
+message.productreview.created=Votre avez créé une revue de produit avec succès
+message.email.error=Une erreur est survenue avec l''envoi du message, veuillez essayer plus tard
+message.error.shoppingcart.update=Une erreur est survenue pendant la mise à jour du panier d'achat
+message.access.denied=Accès refusé
+message.username.password=Authentication échouée. Le nom d\\'usager ou le mot de passe est invalide.
+message.resource.notfound=La page demandée n'existe pas
+message.fielderror=Entrée erronnée
+message.timeout=La session est expirée.
+message.error.shipping=Une erreur est survenue lors du calcul des coûts d'expédition
+NotEmpty=Champs requis
+currentpassword.not.empty=Le mot de passe courant ne doit pas être vide
+password.notequal=Le nouveau mot de passe et le mot de passe de vérification doivent être identiques
+newpassword.not.empty=Le nouveau mot de passe ne doit pas être vide et doit être d''au moins 6 caractères
+repeatpassword.not.empty=Le mot de passe de vérification ne doit pas être vide et doit être d''au moins 6 caractères
+
+NotEmpty.store.storename=Le nom de la boutique ne doit pas être vide
+NotEmpty.store.storeEmailAddress=Le email de la boutique ne doit pas être vide
+Email.store.storeEmailAddress=Le email est invalide
+NotEmpty.product.productPrice=Le prix du produit doit être spécifié
+NotEmpty.product.manufacturer=Le manufacturier du produit doit être spécifié
+NotEmpty.price.code=Le code de prix doit être spécifié
+Pattern.price.code=Le code de prix doit être aplha-numérique
+Pattern.product.sku=Le sku doit être aplha-numérique
+Pattern.merchant.code=Le code du marchand doit être aplha-numérique
+Pattern.optionValue.code=Le code doit être aplha-numérique
+NotEmpty.optionValue.code=Le code ne doit pas être vide
+Pattern.option.code=Le code doit être aplha-numérique
+NotEmpty.option.code=Le code ne doit pas être vide
+NotEmpty.keyword.keyword=Le mot clé ne doit pas être vide
+NotEmpty.review.description=Votre opinion est requise
+
+NotEmpty.customer.userName=Un nom d''usager est requis
+NotEmpty.customer.firstName=Le prénom est requis
+NotEmpty.customer.lastName=Le nom est requis
+NotEmpty.customer.address=L''addresse est requise
+NotEmpty.customer.address2=L'addresse est requise
+NotEmpty.customer.postalCode=Le code postal est requis
+NotEmpty.customer.stateProvince=L''état / province est requis
+NotEmpty.customer.phone=Le téléphone est requis
+NotEmpty.customer.city=La ville est requise
+
+NotEmpty.origin.address=L'addresse est requise
+NotEmpty.origin.postalCode=Le code postal est requis
+NotEmpty.origin.city=La ville est requise
+NotEmpty.origin.country=Le pays est requis
+
+
+NotEmpty.customer.emailAddress=L'adresse couriel est requise
+Email.customer.emailAddress=L'adresse couriel est invalide
+NotEmpty.customer.billing.phone=Le téléphone est requis
+NotEmpty.customer.billing.address=L'addresse est requise
+NotEmpty.customer.billing.city=La ville est requise
+NotEmpty.customer.billing.postalCode=Le code postal est requis
+NotEmpty.customer.billing.country=Le pays est requis
+NotEmpty.customer.billing.stateProvince=L'état / province est requis
+NotEmpty.customer.agreement=Veuillez accepter nos termes et conditions
+
+NotEmpty.customer.shipping.firstName=Le prénom à la livraison ne doit pas être vide
+NotEmpty.customer.shipping.lastName=Le nom de famille à la livraisonne doit pas être vide
+NotEmpty.customer.shipping.address=L'adresse de livraison ne doit pas être vide
+NotEmpty.customer.shipping.city=La ville de livraison ne doit pas être vide
+NotEmpty.customer.shipping.postalCode=Le code postal de livraison ne doit pas être vide
+NotEmpty.customer.shipping.phone=Le numéro de telephone de livraison ne doit pas être vide
+NotEmpty.customer.shipping.stateProvince=L'état / province de la livraison est requis
+
+NotEmpty.order.creditcard.number=Un numéro de carte de crédit valide est requis
+NotEmpty.order.creditcard.name=Le nom aparaissant sur la carte de crédit est requis
+NotEmpty.order.creditcard.cvv=Les numéros de vérification aparaisasant sur la carte de crédit sont requis
+NotEmpty.contact.name=Le nom de la personne contact est requis
+NotEmpty.contact.subject=Le sujet du formulaire de contact est requis
+NotEmpty.contact.comment=Les commentaires sont requis
+Email.contact.email=L'adresse couriel est invalide
+NotEmpty.contact.captchaResponseField=La réponse 'Captcha' est requise
+NotEmpty.contact.captchaChallengeField=La question 'Captcha' est requise
+
+message.payment.declined=La transaction a été refusée
+message.payment.error=Une erreur est survenue en essayant de compléter le paiement, si possible utiliser une autre méthode de paiement.
+messages.error.creditcard.cvc=Le numéro de vérification inscrit sur la carte est invalide
+
+message.order.canprocess=La commande peut être complétée
+message.name.required=Le nom de l'objet est reuis
+
+message.code.exist=Ce code existe déjà
+message.invalid.amount=Montant invalide
+message.region.exists=cette région existe déjà
+message.region.null=La région ne peut être vide
+message.invalid.price=Le format du prix est invalide
+message.invalid.rate=Le format du taux est invalide
+message.invalid.date=Format de la date invalide
+message.maximumWeight.null=Poids maximum ne peut être vide
+message.maximumWeight.invalid=Poids maximum doit être supérieur é 0
+message.unauthorized=Cette transaction ne peut être complétée
+message.code.available=Ce code est disponible
+message.image.height=Hauteur de l'image trop grande
+message.image.width=Largeur de l'image trop grande
+message.image.size=Image trop volumineuse
+message.number.invalid=Doit être un nombre valide (ex 5)
+
+message.password.required=Un mot de passe est requis
+message.password.repeat.required=Le mot de passe répété est requis
+message.username.required=Le code d'usager est requis
+message.username.notfound=Le code d'usager n'existe pas
+message.price.cents=SVP entrer un maximum de 99 sous
+message.security.cannotrevoke.superadmin=Le groupe Super Admin ne peut être révoqué
+message.cannot.empty=ne peut être vide
+message.password.different=Le nouveau mot de passe et le mot de passe répété doivent être identiques
+message.password.invalid=Mot de passe invalide
+message.password.length=Le mot de passe doit avoir au moins 6 caractéres
+message.password.reset=Le mot de passe a été ré-initialisé
+message.password.checkpassword.identical=Les deux mots de passe doivent être identiques
+
+message.security.caanotremovesuperadmin=Il n'est pas possible de détruire un usager super admin
+
+message.group.alerady.exists=Le groupe {0} existe déjà
+
+message.product.association=Cette entité est associée é un ou plusieurs produits. Veuillez détruire les associations et ré-essayer é nouveau.
+message.notexist.customer=Le client n'existe pas
+
+message.optionset.optionassociationexists=Cette association d'options existe déjà
+message.optionset.noassociation=Choisir une option et une valeur d'option
+
+
+message.productoption.required=Un attribut/option de produit est requis
+message.productoptionvalue.required=Une valeur d'attribut/option de produit est requis
+message.product.language=Le produit n'a pas été configuré pour ce language. Veuillez éditer le produit et ajouter les informations pour cette langue.
+
+messages.error.creditcard.number=Le numéro de carte de crédit est invalide
+messages.error.creditcard.dateformat=La date d\\'expiration de la carte de crédit est invalide
+
+message.content.missing.agreement=Le contenu défini avec le code 'agreement' n'existe pas
+
+merchant.storeId.invalid=Le numéro de marchand est invalide
+merchant.files.invalid=Veuillez fournir un ou plusieurs fichiers é charger
+merchant.zone.invalid=L'état / province est requise
+
+NotEmpty.order.customerFirstName=Le prénom du client ne doit pas être vide
+NotEmpty.order.customerLastName=Le nom de famille du client ne doit pas être vide
+NotEmpty.order.customerStreetAddress=L'adresse du client ne doit pas être vide
+NotEmpty.order.customerCity=La ville du client ne doit pas être vide
+NotEmpty.order.customerPostCode=Le code postal du client ne doit pas être vide
+NotEmpty.order.customerTelephone=Le numero de telephone du client ne doit pas être vide
+Email.order.customerEmailAddress=Le email du client est invalide
+NotEmpty.order.customerEmailAddress=Le email du client ne doit pas être vide
+
+NotEmpty.order.billingName=Le nom de facturation ne doit pas être vide
+NotEmpty.order.billingStreetAddress=L'adresse de facturation ne doit pas être vide
+NotEmpty.order.billingCity=La ville de facturation ne doit pas être vide
+NotEmpty.order.billingState=La province de facturation ne doit pas être vide
+NotEmpty.order.billingPostCode=Le code postal de facturation ne doit pas être vide
+
+NotEmpty.customer.FirstName=Le prenom du client ne doit pas être vide
+NotEmpty.customer.LastName=Le nom de famille du client ne doit pas être vide
+NotEmpty.customer.StreetAddress=L'adresse du client ne doit pas être vide
+NotEmpty.customer.City=La ville du client ne doit pas être vide
+NotEmpty.customer.PostCode=Le code postal du client ne doit pas être vide
+NotEmpty.customer.Telephone=Le numero de telephone du client ne doit pas être vide
+Email.customer.EmailAddress=Le email du client est invalide
+NotEmpty.customer.EmailAddress=Le email du client ne doit pas être vide
+
+NotEmpty.customer.billingCompany=Le nom de compagnie ne doit pas être vide
+NotEmpty.customer.billingFirstName=Le prénom de facturation ne doit pas être vide
+NotEmpty.customer.billingLastName=Le nom de facturation ne doit pas être vide
+NotEmpty.customer.billingStreetAddress=L'adresse de facturation ne doit pas être vide
+NotEmpty.customer.billingCity=La ville de facturation ne doit pas être vide
+NotEmpty.customer.billingState=La province de facturation ne doit pas être vide
+NotEmpty.customer.billingCountry=Le pays de facturation ne doit pas être vide
+NotEmpty.customer.billingPostCode=Le code postal de facturation ne doit pas être vide
+
+NotEmpty.customer.shippingCountry=Le pays de livraison ne doit pas être vide
+
+NotEmpty.taxClass.code=Le code de la classe de taxe est requis
+NotEmpty.taxClass.title=Le nom de la classe de taxe est requis
+message.taxclass.alreadyexist=Le code de classe existe déjà
+NotEmpty.taxRate.code=Le code du taux de taxation est requis
+NotEmpty.taxRate.unique.code=Le code du taux de taxation doit être unique
+NotEmpty.taxRate.rateText=Le taux de taxation est requis
+NotEmpty.taxRateDescription.name=Le nom du taux de taxation est requis
+NotNull.taxRate.parent=Le taux de taxation parent doit être sélectionné
+
+
+message.noshipping.configured=Aucune méthode de livraison configurée
+message.noshipping=La livraison n'est pas disponible
+message.noshippingerror=La livraison n'est pas disponible, veuillez valider le pays, la province ou l'état ainsi que le code postal de livraison
+
+message.login.duallogin=Le système ne supporte pas 2 authentifications sur le même fureteur
+
+User.resetPassword.resetSuccess=Le mot de passe a été changé. Vous recevrez votre nouveau mot de passe par courriel.
+User.resetPassword.wrongSecurityQtn=La réponse à la question de sécurité est invalide
+User.resetPassword.userNotFound=L'usager spécifié n`existe pas
+User.resetPassword.Error=Une erreur s'est produite, contactez l'administrateur
+
+validaion.recaptcha.not.matched=Saisie du champs 'captcha' invalide
+registration.username.not.empty=Veuillez fournir un nom d'usager
+registration.password.not.empty=Veuillez fournir un mot de passe valide
+registration.username.length.invalid=Le nom d\\'usager doit contenir au moins 6 caractères
+registration.firstName.invalid=Le prénom est obligatoire
+registration.lastName.invalid=Le nom est obligatoire
+messages.invalid.email=Veuillez fournir une adress courriel valide
+registration.username.already.exists = Ce nom d'usager existe déjà
+registration.failed=Une erreur est survenue lors de l'enregistrement veuillez recommencer plus tard
+currentpassword.not.empty=Veuillez fournir votre mot de passe actuel
+newpassword.not.empty=Veuillez fournir un nouveau mot de passe valide
+repeatpassword.not.empty=Veuillez répéter le nouveau mot de passe
+message.invalidpassword=Mot de passe invalide
+
+error.code.99=Une erreur s\\'est produite en essayant de traîter le paiement (99)
+
diff --git a/sm-shop/target/classes/bundles/payment.properties b/sm-shop/target/classes/bundles/payment.properties
new file mode 100644
index 0000000..169a67d
--- /dev/null
+++ b/sm-shop/target/classes/bundles/payment.properties
@@ -0,0 +1,52 @@
+payment.type.MONEYORDER=Money order
+payment.type.PAYPAL=PayPal
+payment.type.CREDITCARD=Credit card
+payment.type.STRIPE=Credit card
+
+module.payment.paypal=PayPal
+module.payment.beanstream=Beanstream
+module.payment.authorizenet=Authorize Net
+module.payment.moneyorder=Money order
+module.payment.paypal-express-checkout=PayPal express checkout
+module.payment.stripe=Stripe
+
+
+module.payment.transactiontype=Transaction type
+module.payment.transactiontype.preauth=Pre-authorization
+module.payment.transactiontype.capture=Capture
+module.payment.transactiontype.sale=Sale
+module.payment.transactiontype.refund=Refund
+
+#PayPal
+module.payment.paypal-express-checkout.userid=PayPal API user name
+module.payment.paypal-express-checkout.apikey=PayPal API password
+module.payment.paypal-express-checkout.signature=PayPal API signature
+module.payment.paypal-express-checkout.applicationid=PayPal application id
+module.payment.paypal-express-checkout.note=Follow the instructions here to create you PayPal API user name, password and signature (https://developer.paypal.com/docs/classic/api/apiCredentials/#creating-classic-api-credentials)
+
+
+
+#paypal rest
+module,payment.paypal.clientId=PayPal clientId
+module,payment.paypal.secret=PayPal secret
+module.payment.paypal.note=Create a PayPal seller account (www.paypal.com). Once completed, login to PayPal developer website (https://developer.paypal.com/webapps/developer/index) using your PayPal seller credentials. Click Applications on the upper nav bar to access the My Applications page. Click on Create App button, this action will provide your client id and secret keys.
+module.payment.paypal.message.clientId=PayPal clientId is required
+module.payment.paypal.message.secret=PayPal secret is required
+
+module.payment.paypal.message.identifier=PayPal API user name required
+module.payment.paypal.message.api=PayPal API user name required
+module.payment.paypal.message.password=PayPal API password required
+module.payment.paypal.message.signature=PayPal API signature required
+
+#Beanstream
+module.payment.beanstream.merchantid=Merchant id
+module.payment.beanstream.username=User name
+module.payment.beanstream.password=Password
+
+module.payment.beanstream.message.merchantid=Merchant id required
+module.payment.beanstream.message.username=Username is required
+module.payment.beanstream.message.password=Password is required
+
+#Moneyorder
+module.payment.moneyorder.adress=Cheque to be made to this address
+module.payment.moneyorder.message.address=Address is required
\ No newline at end of file
diff --git a/sm-shop/target/classes/bundles/payment_fr.properties b/sm-shop/target/classes/bundles/payment_fr.properties
new file mode 100644
index 0000000..ab8837b
--- /dev/null
+++ b/sm-shop/target/classes/bundles/payment_fr.properties
@@ -0,0 +1,48 @@
+payment.type.MONEYORDER=Chèque
+payment.type.PayPal=PayPal
+payment.type.CREDITCARD=Carte de crédit
+payment.type.STRIPE=Carte de crédit
+
+module.payment.PayPal=PayPal
+module.payment.beanstream=Beanstream
+module.payment.authorizenet=Authorize Net
+module.payment.moneyorder=Chèque
+module.payment.paypal-express-checkout=PayPal express checkout
+module.payment.stripe=Stripe
+
+module.payment.transactiontype=Type de transaction
+module.payment.transactiontype.preauth=Pré-authorization
+module.payment.transactiontype.capture=Capture
+module.payment.transactiontype.sale=Vente
+module.payment.transactiontype.refund=Remboursement
+
+#PayPal
+module.payment.paypal-express-checkout.userid=Usager PayPal API
+module.payment.paypal-express-checkout.apikey=Mot de pass API
+module.payment.paypal-express-checkout.signature=PayPal API signature
+module.payment.paypal-express-checkout.applicationid=PayPal identifiant de l'application
+module.payment.paypal-express-checkout.note=Suivez les instructions afin de créer votre usager, mot de passe et signature PayPal (https://developer.paypal.com/docs/classic/api/apiCredentials/#creating-classic-api-credentials)
+
+module,payment.paypal.clientId=PayPal clientId
+module,payment.paypal.secret=PayPal secret
+module.payment.paypal.note=Créez un compte PayPal (www.PayPal.com). Une fois terminé, connectez-vous au site PayPal pour développeur (https://developer.paypal.com/webapps/developer/index) en utilisant votre compte PayPal. Cliquez sur Applications sur la barre de navigation supérieure pour accéder à la page Mes applications. Cliquez sur le bouton Créer une Application, cette action vous fournira votre numéro de client et la clé secrète.
+module.payment.paypal.message.clientId=PayPal clientId est requis
+module.payment.paypal.message.secret=PayPal secret est requis
+
+module.payment.paypal.message.identifier=Usager API PayPal requis
+module.payment.paypal.message.api=Clée API PayPal requise
+module.payment.paypal.message.password=PayPal API mot de passe requis
+module.payment.paypal.message.signature=PayPal API signature requise
+
+#Beanstream
+module.payment.beanstream.merchantid=Identifiant marchand
+module.payment.beanstream.username=Nom d'usager
+module.payment.beanstream.password=Mot de passe
+
+module.payment.beanstream.message.merchantid=Identifiant marchand requis
+module.payment.beanstream.message.username=Nom d'usager requis
+module.payment.beanstream.message.password=Mot de passe requis
+
+#Moneyorder
+module.payment.moneyorder.adress=Le chèque doit être fait à cette adresse
+module.payment.moneyorder.message.address=L'adresse est requise
\ No newline at end of file
sm-shop/target/classes/bundles/shipping.properties 143(+143 -0)
diff --git a/sm-shop/target/classes/bundles/shipping.properties b/sm-shop/target/classes/bundles/shipping.properties
new file mode 100644
index 0000000..a759560
--- /dev/null
+++ b/sm-shop/target/classes/bundles/shipping.properties
@@ -0,0 +1,143 @@
+module.shipping.canadapost=Canada Post
+module.shipping.ups=UPS
+module.shipping.usps=United States Postal Service
+module.shipping.fedex=Fedex
+module.shipping.weightBased=Weight based shipping price
+module.shipping.customQuotesRules=Shipping by {0}
+module.shipping.storePickUp=Store pick up
+module.shipping.priceByDistance=Shipping by {0}
+
+module.shipping.storePickUp.note=This option let you reserve you order items through the onlne system and pick up your order by yourself at the store. This option is also ooered when no other shipping option is available for your region.
+
+#custom
+module.shipping.customQuotesRules.title=Create your own shipping quotes rules
+module.shipping.customQuotesRules.text=Use the rule system to create your own shipping rate decision table. The custom shipping rate decision table can be edited in sm-core/src/main/resources/rules/shipping-custom-rules.xls
+
+#custom
+module.shipping.priceByDistance.title=Create your own shipping quote based on distance
+module.shipping.priceByDistance.text=Set your shipping price (by kilometer). Requires the pre-processor distance calculator.
+
+module.shipping.canada=Canada
+module.shipping.usa=United states
+module.shipping.international=International
+
+
+
+#Canada Post
+module.shipping.canadapost.identifier=Canada Post identifier (CPC number)
+module.shipping.canadapost.username=Canada Post user name (first part of the API key before semi column)
+module.shipping.canadapost.password=Canada Post password (second part of the API key after semi column)
+module.shipping.canadapost.apikey=Canada Post API key
+module.shipping.canadapost.packages=Package type
+module.shipping.canadapost.services=Services to be rated
+module.shipping.canadapost.message.identifier=Canada Post identifier required
+module.shipping.canadapost.message.username=Canada Post user name required
+module.shipping.canadapost.message.password=Canada Post password required
+module.shipping.canadapost.message.apikey=Canada Post API key required
+
+module.shipping.canadapost.DOM.RP=Regular Parcel
+module.shipping.canadapost.DOM.EP=Expedited Parcel
+module.shipping.canadapost.DOM.XP=Xpresspost
+module.shipping.canadapost.DOM.XP.CERT=Xpresspost Certified
+module.shipping.canadapost.DOM.PC=Priority
+module.shipping.canadapost.DOM.DT=Delivered Tonight
+module.shipping.canadapost.DOM.LIB=Library Books
+
+module.shipping.canadapost.USA.EP=Expedited Parcel USA
+module.shipping.canadapost.USA.PW.ENV=Priority Worldwide Envelope USA
+module.shipping.canadapost.USA.PW.PAK=Priority Worldwide pak USA
+module.shipping.canadapost.USA.PW.PARCEL=Priority Worldwide Parcel USA
+module.shipping.canadapost.USA.SP.AIR=Small Packet USA Air
+module.shipping.canadapost.USA.TP=Tracked Packet - USA
+module.shipping.canadapost.USA.TP.LVM=Tracked Packet - USA - (LVM - large volume mailers)
+module.shipping.canadapost.USA.XP=Xpresspost USA
+
+
+module.shipping.canadapost.INT.XP=Xpresspost International
+module.shipping.canadapost.INT.IP.AIR=International Parcel Air
+module.shipping.canadapost.INT.IP.SURF=International Parcel Surface
+module.shipping.canadapost.INT.PW.ENV=Priority Worldwide Envelope International
+module.shipping.canadapost.INT.PW.PAK=Priority Worldwide pak International
+module.shipping.canadapost.INT.PW.PARCEL=Priority Worldwide parcel International
+module.shipping.canadapost.INT.SP.AIR=Small Packet International Air
+module.shipping.canadapost.INT.SP.SURF=Small Packet International Surface
+module.shipping.canadapost.INT.TP=Tracked Packet - International
+
+
+#USPS
+module.shipping.usps.identifier=USPS account identifier
+module.shipping.usps.packages=Package type
+module.shipping.usps.shippingmethods=Select up to 3 shipping methods
+module.shipping.usps.message.identifier=USPS account identifier required
+module.shipping.usps.message.packages=You must select one package type
+
+
+module.shipping.usps.package.01=Variable
+module.shipping.usps.package.02=Flat Rate Box
+module.shipping.usps.package.03=Flat Rate Envelope
+module.shipping.usps.package.04=Rectangular
+module.shipping.usps.package.05=Non Rectangular
+module.shipping.usps.package.06=LG Flat Rate Box
+
+module.shipping.usps.package.07=Envelope
+module.shipping.usps.package.08=Package
+
+module.shipping.usps.method.01=First-Class Mail
+module.shipping.usps.method.02=Priority Mail
+module.shipping.usps.method.03=Express Mail
+module.shipping.usps.method.04=Express SH
+module.shipping.usps.method.05=Express HFP
+module.shipping.usps.method.06=BPM
+module.shipping.usps.method.07=Parcel Post
+
+#UPS
+module.shipping.ups.identifier=UPS access key
+module.shipping.ups.userid=User ID
+module.shipping.ups.password=Password
+module.shipping.ups.packages=Package type
+module.shipping.ups.shippingmethods=Select a shipping method
+module.shipping.ups.message.identifier=UPS account identifier required
+module.shipping.ups.message.packages=You must select one package type
+
+
+
+module.shipping.ups.package.02=Customer Package
+module.shipping.ups.packagel.01=UPS Letter
+module.shipping.ups.package.03=UPS Tube
+module.shipping.ups.package.04=UPS Pak
+module.shipping.ups.package.21=UPS Express Box
+module.shipping.ups.package.24=UPS 25kg Box
+module.shipping.ups.package.10=UPS 10kg box
+module.shipping.ups.package.25=Unknown
+
+
+
+
+module.shipping.ups.method.01=UPS Next Day Air
+module.shipping.ups.method.02=UPS Second Day Air
+module.shipping.ups.method.03=UPS Ground
+module.shipping.ups.method.07=UPS Worldwide Express
+module.shipping.ups.method.08=UPS Worldwide Expedited
+module.shipping.ups.method.11=UPS Standard
+module.shipping.ups.method.12=UPS Three-Day Select
+module.shipping.ups.method.13=UPS Next Day Air Saver
+module.shipping.ups.method.14=UPS Next Day Air Early A.M.
+module.shipping.ups.method.54=UPS Worldwide Express Plus
+module.shipping.ups.method.59=UPS Second Day Air A.M.
+module.shipping.ups.method.65=UPS Saver
+
+#module.shipping.ups.method.68=UPS Express
+#module.shipping.ups.method.69=UPS Worldwide Expedited
+#module.shipping.ups.method.70=UPS Standard
+#module.shipping.ups.method.71=UPS Worldwide Express Plus
+#module.shipping.ups.method.72=UPS Saver
+module.shipping.ups.method=UPS shipping methods
+module.shipping.ups.method.select=Select a specific UPS shipping method
+module.shipping.ups.method.unselect=Let UPS propose all available shipping methods
+
+
+#store pick up
+module.shipping.storePickUp.address=Pick up address that will be displayed to the client
+module.shipping.storePickUp.address.message=Pick up address is a required field
+module.shipping.storePickUp.price=Price for store pick up in numeric format (usually 0)
+module.shipping.storePickUp.price.message=Price for store pick up is required (in numeric format)
\ No newline at end of file
diff --git a/sm-shop/target/classes/bundles/shipping_fr.properties b/sm-shop/target/classes/bundles/shipping_fr.properties
new file mode 100644
index 0000000..fbfb891
--- /dev/null
+++ b/sm-shop/target/classes/bundles/shipping_fr.properties
@@ -0,0 +1,94 @@
+module.shipping.canadapost=Postes Canada
+module.shipping.ups=UPS
+module.shipping.usps=United States Postal Service
+module.shipping.fedex=Fedex
+module.shipping.weightBased=Prix d'expédition basé sur le poids
+module.shipping.customQuotesRules=Livraison par {0}
+module.shipping.storePickUp=Ramassage en magasin
+module.shipping.priceByDistance=Livraison par {0}
+
+module.shipping.storePickUp.note=Cette option vous permet de réserver votre commande via le système web et de ramasser par vous même l'item ou les items en magasin. Cette option est également offerte lorsque aucune autre option de livraison est disponible dans votre secteur.
+
+#custom
+module.shipping.customQuotesRules.title=Vous pouvez produire vos propre règles de coûts d'expédition
+module.shipping.customQuotesRules.text=Utilisez le système de règles d'affaires afin de créer votre propre table de décision des coûts d'expédition. Le fichier de règles d'affaires des coûts d'expédition peut être édité sous sm-core/src/main/resources/rules/shipping-custom-rules.xls
+
+#custom
+module.shipping.priceByDistance.title=Vous pouvez produire vos propre règles de coûts d'expédition basées sur la distance
+module.shipping.priceByDistance.text=Calcul du prix de livraison sur un prix fixe par kilomètre. Requiert le pré-processeur permettant de calculer la distance de livraison.
+
+module.shipping.canada=Canada
+module.shipping.usa=États-Unis
+module.shipping.international=International
+
+#Canada Post
+module.shipping.canadapost.identifier=Identifiant Postes Canada (numéro CPC)
+module.shipping.canadapost.username=Nom d'usager Postes Canada (première partie de la clé API avant les 2 points :)
+module.shipping.canadapost.password=Mot de passe Postes Canada (deuxième partie de la clé API après les 2 points :)
+module.shipping.canadapost.apikey=Clé API Postes Canada
+module.shipping.canadapost.services=Services de postage à calculer
+module.shipping.canadapost.packages=Type d'emballage
+module.shipping.canadapost.message.identifier=Identifiant Postes Canada requis
+module.shipping.canadapost.message.packages=Au moins un type d'emballage
+module.shipping.canadapost.message.apikey=Clé API requise
+
+module.shipping.canadapost.DOM.RP=Colis standard
+module.shipping.canadapost.DOM.EP=Colis accélérés
+module.shipping.canadapost.DOM.XP=Xpresspost
+module.shipping.canadapost.DOM.XP.CERT=Xpresspost certifié
+module.shipping.canadapost.DOM.PC=Priorité
+module.shipping.canadapost.DOM.DT=Service Livré ce soir
+module.shipping.canadapost.DOM.LIB=Livres de bibliothèque
+
+module.shipping.canadapost.USA.EP=Colis accélérés É.-U.
+module.shipping.canadapost.USA.PW.ENV=Enveloppe Priorité Mondial – É.-U.
+module.shipping.canadapost.USA.PW.PAK=Paquet Priorité Mondial – É.-U.
+module.shipping.canadapost.USA.PW.PARCEL=Colis Priorité Mondial – É.-U.
+module.shipping.canadapost.USA.SP.AIR=Petits paquets-avion à destination des É.-U.
+module.shipping.canadapost.USA.TP=Paquet repérable – É.-U.
+module.shipping.canadapost.USA.TP.LVM=Paquet repérable – É.-U. (GEC - gros expéditeur de courrier)
+module.shipping.canadapost.USA.XP=Xpresspost É.-U.
+
+module.shipping.canadapost.INT.XP=Xpresspost International
+module.shipping.canadapost.INT.IP.AIR=Colis-avion du régime international
+module.shipping.canadapost.INT.IP.SURF=Colis de surface du régime international
+module.shipping.canadapost.INT.PW.ENV=Enveloppe Priorité Mondial – International
+module.shipping.canadapost.INT.PW.PAK=Paquet Priorité Mondial – International
+module.shipping.canadapost.INT.PW.PARCEL=Colis Prioritié Mondial – International
+module.shipping.canadapost.INT.SP.AIR=Petits paquets-avion du régime international
+module.shipping.canadapost.INT.SP.SURF=Petits paquets de surface du régime international
+module.shipping.canadapost.INT.TP=Paquet repérable – International
+
+#USPS
+module.shipping.usps.identifier=Numéro de compte USPS
+module.shipping.usps.packages=Type d'emballage
+module.shipping.usps.shippingmethods=Choisir jusqu'a 3 méthodes d'expédition
+module.shipping.usps.message.identifier=Identifiant USPS requis
+module.shipping.usps.message.packages=Vous devez choisir un type d'emballage
+
+
+module.shipping.usps.package.01=Variable
+module.shipping.usps.package.02=Flat Rate Box
+module.shipping.usps.package.03=Flat Rate Envelope
+module.shipping.usps.package.04=Rectangular
+module.shipping.usps.package.05=Non Rectangular
+module.shipping.usps.package.06=LG Flat Rate Box
+
+module.shipping.usps.package.07=Envelope
+module.shipping.usps.package.08=Package
+
+module.shipping.usps.method.01=First-Class Mail
+module.shipping.usps.method.02=Priority Mail
+module.shipping.usps.method.03=Express Mail
+module.shipping.usps.method.04=Express SH
+module.shipping.usps.method.05=Express HFP
+module.shipping.usps.method.06=BPM
+module.shipping.usps.method.07=Parcel Post
+module.shipping.canadapost.packages.package=Paquet
+module.shipping.canadapost.packages.envelope=Enveloppe
+
+#store pick up
+module.shipping.storePickUp.address=Adresse de ramassage affichée au client
+module.shipping.storePickUp.address.message=L'Adresse de ramassage est un champ requis
+module.shipping.storePickUp.price=Prix de l'option de ramassage en magasin (normalement 0)
+module.shipping.storePickUp.price.message=Le prix de l'option de ramassage est requis (en format numérique)
sm-shop/target/classes/bundles/shopizer.properties 748(+748 -0)
diff --git a/sm-shop/target/classes/bundles/shopizer.properties b/sm-shop/target/classes/bundles/shopizer.properties
new file mode 100644
index 0000000..9fbb0a8
--- /dev/null
+++ b/sm-shop/target/classes/bundles/shopizer.properties
@@ -0,0 +1,748 @@
+label.quantity=Quantity
+
+label.defaultlanguage=Default language
+lang.en=English
+lang.fr=French
+
+label.entity.id=Id
+label.entity.name=Name
+label.entity.code=Code
+label.entity.visible=Visible
+label.entity.enabled=Enabled
+label.entity.active=Active
+label.entity.public=Public
+label.entity.details=Details
+label.entity.type=Type
+label.entity.remove.confirm=Do you really want to remove this entity?
+label.entity.setAsDefault.confirm=Do you really want to set this entity as default?
+label.entity.order=Order
+label.entity.status=Status
+label.generic.all=All
+label.generic.email=Email address
+label.generic.address=Address
+label.generic.city=City
+label.generic.country=Country
+label.generic.price=Price
+label.generic.phone=Phone number
+label.generic.back=Back
+label.generic.setAsDefault=Set as default
+label.generic.country.code=Country code
+label.generic.stateprovince=State / province
+label.generic.postalcode=Postal code
+label.generic.item=item
+label.generic.item.title=Item
+label.generic.items=items
+label.generic.displayonly=Display only
+label.generic.url=URL
+label.generic.sortby=Sort by
+label.generic.default=Default
+label.generic.name=Name
+label.generic.next=Next
+label.generic.genre=Genre
+label.generic.male=Male
+label.generic.female=Female
+label.generic.register=Register
+label.generic.youropinion=Your opinion
+label.generic.comments=Comments
+label.generic.subject=Subject
+label.generic.minimum=Minimum
+label.generic.maximum=Maximum
+label.generic.pictures=Pictures
+label.generic.videos=Videos
+label.generic.imageType=Media type
+label.generic.today=Today
+
+label.generic.welcome=Welcome
+label.generic.weightunit.LB=Pounds
+label.generic.weightunit.KG=Kilograms
+label.generic.language=Language
+label.generic.search=Search
+
+label.generic.sizeunit.CM=Centimeters
+label.generic.sizeunit.IN=Inches
+label.generic.remove=Remove
+label.generic.yes=Yes
+label.generic.no=No
+label.generic.alphanumeric=Alphanumeric
+label.generic.add=Add
+label.generic.username=User name
+label.generic.edit=Edit
+label.generic.print=Print
+
+label.generic.environment=Environment
+label.generic.providedby=Powered by
+
+label.generic.title=Title
+label.generic.keywords=Keywords
+label.generic.amount=Amount
+
+label.generic.changepassword=Change password
+
+label.generic.confirm=Please confirm!
+label.generic.firstname=First name
+label.generic.lastname=Last name
+label.generic.streetaddress=Street address
+label.generic.postalcode=Postal code
+label.generic.city=City
+label.generic.country=Country
+label.generic.hi=Hi
+label.generic.send=Send
+
+label.soldout=Sold out
+
+#merchant store
+label.store.information.title=Information
+label.store.title=Merchant Store
+label.store.information=Store information
+label.storeadministration=Store administration
+label.storeadministrator=Store administrator
+label.storename=Store Name
+label.storecode=Unique Store Code
+label.currency=Currency
+label.bgcolorcode=Background Color
+label.storelogo=Store Logo
+label.storebanner=Store Banner
+label.storephone=Store Phone
+label.accepteddomains=Accepted Domains
+label.storeaddress=Store Address
+label.storecity=Store City
+label.storepostalcode=Store Postal Code
+label.storecountry=Store Country
+label.storezone=Store State / Province
+label.supportedlanguages=Supported languages
+label.storeemailaddress=Store email address
+label.storesetup=Store setup
+label.store.template=Theme
+label.store.baseurl=Store base url (domain)
+label.store.inbusinesssince=Web site operating since
+label.changepasswordrequest = Change password request
+label.store.weightunit=Weight units
+label.store.sizeunits=Size units
+label.store.list=Stores
+label.store.useCache=Use cache
+label.store.currency.format=National currency format
+label.store.currency.format.help=National currency format ex $1,345.79 or International currency format ex USD1,345.79
+
+label.store.displaycontactussection=Display contact us page
+label.store.displaystoreaddress=Display store address
+label.store.displaysearchbox=Display search box
+label.store.testmode=Test mode (hide category and product details)
+label.store.debugmode=Debug mode (add additional debug)
+label.store.allowPurchaseItems=Allow purchase items
+label.store.displayaddtocartfeatured=Allow add to cart on featured items
+label.store.tofindus=Where to find us
+
+label.storefront.landingpage=Landing page information
+label.storefront.storetext=Landing page main text
+label.storefront.metatags.keywords=Meta tags keywords
+label.storefront.metatags.description=Meta tags description
+label.storefront.landingpage.title=Landing page title
+
+#user
+label.profile.title=User profile
+label.my.profile=My profile
+label.profile.lastaccess=Last access
+
+#search
+label.search.searchQuery=Search query
+label.search.items.found=item(s) found
+
+
+label.generic.password=Password
+label.generic.repeatpassword=Repeat password
+label.generic.newpassword=New password
+label.generic.newpassword.repeat=Repeat new password
+
+security.question.1=What was the color of your first car?
+security.question.2=In what city were you born?
+security.question.3=What was the name of your first pet?
+security.question.4=What is your preferred musical genre?
+security.question.5=Who was your childhood hero?
+security.question.6=In what city or town was your first job?
+security.question.7=Where were you when you had your first kiss?
+security.question.8=In which city did you met your spouse/significant other?
+security.question.9=What was your childhood nickname?
+
+
+security.questions.differentmessages=Please select 3 different questions
+
+security.question1=Question 1
+security.question2=Question 2
+security.question3=Question 3
+security.answer.question1.message=Please answer to security question 1
+security.answer.question2.message=Please answer to security question 2
+security.answer.question3.message=Please answer to security question 3
+
+
+security.group.description.SUPERADMIN=A single user can be superadmin. The user admin is created by default as the superadmin user. This user can do everything in the system and is the only one who can manage stores.
+security.group.description.ADMIN=An admin user is a user with most privileges for a store administration. An admin user can do everything as a store manager and can also create users with more restricted access.
+security.group.description.ADMIN_CATALOGUE=A user part of that group can create products, categories and featured items.
+security.group.description.ADMIN_STORE=A user part of that group can manage the store he is assigned too. He will be able to change the branding and modify anything under store menu. This group gives also access to the shipping and payment configuration
+security.group.description.ADMIN_ORDER=A user part of that group can manage orders, search for orders, modify customer information, apply refund to an order.
+security.group.description.ADMIN_CONTENT=A user assigned to that group will be able to manage the site dynamic and static content, add images, aand files to the system.
+
+label.security.loggedinas=You are logged in as
+label.security.nologinacces.store=We can't display store logon box
+
+#customer
+label.customer.myaccount=My Account
+label.customer.contactus=Contact us
+label.customer.list=Customer list
+label.customer.name=Customer name
+label.customer.lastname=Customer last name
+label.customer.firstname=Customer first name
+label.customer.id=Customer id
+label.customer.companyname=Company name
+label.customer.email=Customer email address
+label.customer.streetaddress=Customer street address
+label.customer.suburb=Customer suburb
+label.customer.postalcode=Customer postal code
+label.customer.telephone=Customer phone
+label.customer.city=Customer city
+label.customer.zone=Customer state / province
+label.customer.country=Customer country
+label.customer.registered=Registered customer
+label.customer.editcustomer=Edit Customer
+label.customer.createcustomer=Create Customer
+label.customer.order.date= Order date
+label.customer.order.agreement=I agree with the terms and conditions
+label.customer.order.agreement.title=Terms and conditions
+label.customer.options.edit=Edit option
+label.customer.option=Customer option
+label.customer.option.value=Customer option value
+
+label.customer.billinginformation=Billing information
+label.customer.shippinginformation=Shipping information
+label.customer.shippingaddress=Shipping Address
+label.customer.billingaddress=Billing Address
+label.customer.billingshipping=Billing & shipping information
+
+label.customer.edit.billingaddress=Edit Billing Address
+label.customer.edit.shippinginformation=Edit Shipping information
+
+label.customer.billing.company=Billing company
+label.customer.billing.streetaddress=Billing street address
+label.customer.billing.suburb=Billing suburb
+label.customer.billing.postalcode=Billing postal code
+label.customer.billing.city=Billing city
+label.customer.billing.zone=Billing state / province
+label.customer.billing.country=Billing country
+label.customer.billing.firstname=Billing first name
+label.customer.billing.lastname=Billing last name
+label.customer.billing.name=Billing name
+
+label.customer.shipping.company=Shipping company
+label.customer.shipping.streetaddress=Shipping street address
+label.customer.shipping.suburb=Shipping suburb
+label.customer.shipping.postalcode=Shipping postal code
+label.customer.shipping.city=Shipping city
+label.customer.shipping.zone=Shipping state / province
+label.customer.shipping.country=Shipping country
+label.customer.shipping.firstname=Shipping first name
+label.customer.shipping.lastname=Shipping last name
+label.customer.shipping.name=Shipping name
+label.customer.shipping.shipaddress=Ship to this address
+
+label.customer.confirmshippingaddress=Shipping address confirmation
+
+label.customer.optionv.edit=Edit option
+label.customer.option.name=Option name
+label.customer.option.code=Option code
+label.customer.option.type=Display type
+
+label.customer.optionvalue.edit=Edit option value
+label.customer.optionvalue.name=Option value name
+label.customer.optionvalue.code=Option value code
+
+label.customer.displaycustomersection=Display customer section
+label.customer.accessportal=You can access the customer section using the following url
+label.customer.accessnow=Access now!
+
+label.customer.resetpasswor.confirm=Are you sure you want to reset the customer password?
+label.customer.moredetails=More details!
+label.order.editcustomer=Edit customer
+label.order.displayagreement=Display customer terms and policy agreement in order page
+
+label.customer.currentpassword=Current password
+label.customer.newpassword=New password
+label.customer.repeatpassword=Repeat password
+
+#permission
+label.permissions.title=Permissions
+label.permission.editpermission=Edit permission
+label.permission.createpermission=Create permission
+label.permission.name=Permission name
+
+#groups
+label.groups.title=Groups
+label.group.editgroup=Edit group
+label.group.creategroup=Create group
+label.group.root=Root
+label.group.groupId=Group Id
+
+#category
+label.category.title=Category title
+label.category.highlight=Short category highlight
+label.categories.title=Categories
+label.categories.hierarchy.title=Categories hierarchy
+label.category.root=Root
+label.productedit.categoryname=Category name
+label.productedit.choosecategory=Choose a category
+label.category.categogydetails=Category details
+label.category.editcategory=Edit category
+label.category.movecategory=Move category
+label.category.moveundercategory=Move under category
+label.category.createcategory=Create category
+label.category.code=Category code
+label.category.categoryvisible=Category visible
+label.category.categorydescription=Category description
+label.category.parentcategory=Parent category
+label.category.hierarchy.text=Drag categories to re-organize the hierarchy
+label.category.maincategories=Main categories
+
+#manufacturer
+label.manufacturer.brand=Brands
+label.manufacturer.edit=Edit manufacturer
+label.manufacturer.create=Create a manufacturer
+label.manufactureredit.manufacturername=Manufacturer name
+label.manufactureredit.manufacturertitle=Manufacturer title
+label.manufactureredit.manufacturerurl=URL
+label.manufactureredit.manufacturerurlclicked=URL clicked
+label.manufactureredit.manufacturerdescription=Manufacturer description
+label.manufacturer.image=Image
+label.manufactureredit.manufacturerorder=Order
+
+
+#product
+label.product.create=Create a product
+label.product.edit=Edit product
+label.sefurl=Search engine friendly url
+label.metatags.description = (Meta tags) Description
+label.metatags.keywords = (Meta tags) Keywords
+label.product.sku=Sku
+label.product.refsku=Reference system identifier
+label.product.available=Available
+label.productedit.productname=Product name
+label.productedit.producthl=Short product highlight
+label.productedit.productdesc=Product description
+label.product.title=Product title
+label.product.price=Product price
+label.product.price.code=Product price code
+label.product.preorder=Pre-order
+label.product.price.name=Product price name
+label.product.price.default=Default product price
+label.product.price.special=Special price
+label.product.price.special.startdate=Special start date
+label.product.price.special.enddate=Special end date
+label.taxclass =Tax class
+label.product.ordermax=Quantity order max
+label.product.ordermin=Quantity order min
+label.product.visible=Product visible
+label.product.status=Status
+label.product.weight=Weight
+label.product.height=Height
+label.product.length=Length
+label.product.width=Width
+label.product.image=Image
+label.product.uploadfile=Upload file
+label.product.details=Product details
+label.product.prices=Product prices
+label.product.attributes=Product options / attributes
+label.product.attribute=Option / attribute
+label.product.attribute.default=Default option
+label.product.attribute.required=Required option
+label.product.attribute.display=Use attribute for display only
+label.product.attribute.otherweight=Additional weight
+label.product.attribute.option.name=Option / attribute name
+label.product.attribute.value=Attribute value
+label.product.attribute.specifications=Specifications
+label.product.price.create=Create product price
+label.product.attribute.create=Create product option / attribute
+label.product.category.association=Associate product in categories
+label.product.customer.reviews=Customer review(s)
+label.product.reviews=Reviews
+label.product.reviews.rating=Rating
+label.product.reviews.write=Write a review
+label.product.reviews.logon.write=You have to be authenticated to write a review
+label.product.reviews.evaluated=You have evaluated this product
+label.product.featured.meassage=To add a product to the featured items list drag the desired product from the list of available products to the featured items box.
+label.product.group.meassage=To add a product to the product group list drag the desired product from the list of available products to the product group box.
+label.product.related.title=Related items
+label.product.related.meassage=To add a product to the related items list drag the desired product from the list of available products to the related items box.
+label.product.createsimilar=Create similar product
+label.product.configure=Product definition
+label.product.specification=Specification
+label.product.digitalproduct=Digital product
+label.product.specials=Specials
+label.product.brand=Brand
+label.product.code=Product code
+label.product.nomoreitems=No more items available
+label.product.moreitems=Display more items
+label.product.searchkeywords=Search keywords
+label.product.shipeable=Product will be shipped
+label.product.outofstock=Out of stock
+label.product.defaultImage.message=When selecting default, this image will be the image displayed in the product page
+
+#options
+label.product.productoptions.edit.title=Edit product option
+label.product.productoptions.create.title=Create product option
+label.product.productoptions.title=Product option
+label.product.productoptions.name=Option name
+label.product.productoptions.price=Option price
+label.product.productoptions.comments=Option comments
+label.product.productoptions.type=Option type
+label.product.productoptions.list=Options list
+
+label.product.productoption.type.text=Text
+label.product.productoption.type.radio=Radio
+label.product.productoption.type.select=Select
+label.product.productoption.type.checkbox=Checkbox
+
+label.product.option.displayonly=Option for display only
+label.product.option.code=Option code
+label.product.option.codehelp=Option code is required for querying products by attributes
+
+#options values
+label.product.productoptionsvalues.title=Product option values
+label.product.productoptionsvalues.list=Product options values list
+label.product.productoptiosvalue.title=Product option value
+label.product.productoptionvalue.edit.title=Edit product option value
+label.product.productoptionvalue.create.title=Create product option value
+label.product.productoptionvalue=Option value image
+
+label.product.customGroup.title=Product group
+label.product.customgroup.add=Add custom product group
+label.product.customgroup.code=Custom product group code (must be unique)
+
+label.product.rate=Rate product
+label.product.clickrate=Product rating (click on the stars to activate rating)
+
+#content Images - Files
+label.contentImages.store=Merchant Store
+label.content.images=Images library
+label.content.files=Files library
+label.content.pages=Content pages
+label.content.pages.manage.content=Manage content pages
+label.content.manage.content=Manage content
+label.content.pages.page.name=Page name
+label.content.pages.page.content=Page content
+label.content.boxes=Content boxes
+label.content.boxes.position=Box position
+label.content.boxes.name=Box name
+label.content.sections=Content sections
+label.content.friendlyurl=Friendly url
+label.content.metatag.description=Description metatag
+
+#shipping
+label.shipping.title=Shipping configuration
+label.shipping.national=National
+label.shipping.international=International
+label.shipping.mode=Shipping mode
+label.shipping.methods=Shipping methods
+label.shipping.countries=Ship to countries
+label.shipping.options=Shipping options
+label.shipping.taxonshipping=Apply tax on shipping
+label.shipping.freeshipping=Apply free shipping
+label.shipping.freeshippingamount=Free shipping on order amount over
+label.shipping.handlingfees=Handling fees
+label.shipping.packaging.title=Packaging information
+label.shipping.packaging.individual=Items will be shipped individually
+label.shipping.packaging.boxes=Items will be combined and shipped in a box
+label.shipping.packaging.box.height=Box height
+label.shipping.packaging.box.length=Box length
+label.shipping.packaging.box.width=Box width
+label.shipping.packaging.box.weight=Box weight
+label.shipping.packaging.box.maxweight=Maximum weight in box
+label.shipping.packaging.box.maxitems=Maximum items in a box
+label.shipping.addregion=Add region
+label.shipping.region=Region
+label.shipping.allquotes=Display all shipping quotes
+label.shipping.leastexpensivequotes=Display least expensive shipping quotes
+label.shipping.moreexpensivequotes=Display highest expensive shipping quotes
+label.message.region.available=Region available
+label.message.region.exist=Region already exists
+label.shipping.maximumWeight=Maximum weight
+label.shipping.shippingaddress=Shipping address
+label.shipping.billingaddress=Billing address
+label.message.maximumWeight.exist=Maximum weight already exists
+label.shipping.fees=Shipping fees
+label.shipping.freeshipping=Free shipping!
+label.shipping.freeshipping.over=Free shipping for orders over
+label.shipping.freeshippingandhandling=Free shipping and handling
+label.shipping.origin.title=Shipping address origin
+label.shipping.origin.description=Shipping origin will help calculate the distance between the origin to the destination of the delivery. If the origin is not set the system will use the merchant store address as the shipping origin.
+
+#order
+label.order.title=Orders
+label.order.total=Total
+label.order.date=Order date
+label.order.module=Payment module
+label.order.paymentmode=Payment mode
+label.order.shippingmethod=Shipping mode
+label.order.refund=Apply refund
+label.order.capture=Capture transaction
+label.order.item=Item
+label.order.price=Price
+label.order.sendinvoice=Send email invoice
+label.order.printinvoice=Print invoice
+label.order.packing=Print packing slip
+label.order.updatestatus=Send order status email
+label.order.downloademail=Send download email
+label.order.history=History
+label.order.recent=Recent orders
+label.order.pastorders=Past orders
+label.order.summary=Order summary
+label.order.details=Order details
+label.order.PROCESSING=Processing
+label.order.ORDERED=Ordered
+label.order.PAID=Paid
+label.order.SHIPPED=Delivered
+label.order.PREPARED=Prepared
+label.order.REFUNDED=Refunded
+label.order.DELIVERED=Delivered
+refund=Refund
+
+order.total.subtotal=Sub-total
+order.total.total=Total
+order.total.shipping=Shipping
+order.total.handling=Handling
+
+label.order.recalculate=Recalculate
+
+label.order.transactions=Transactions list
+
+#payment
+label.payment.title=Payment methods
+label.payment.module.title=Payment method
+
+label.payment.paypal.usepaypal=Use PayPal
+label.payment.moneyorder.usemoneyorder=Use money order
+label.payment.creditcard.usecredicard=Use your credit card
+label.payment.creditcard.cardowner=Card Holder's Name
+label.payment.creditcard.cardnumber=Card number
+label.payment.creditcard.cardexpiry=Card expiry date
+label.payment.creditcard.cardcvv=Card validation number
+label.payment.creditcard.whatiscvv=What is a credit card validation number?
+
+
+#tax
+label.tax.taxclass.title=Tax classes
+label.tax.taxclass=Tax class
+label.tax.taxclass.name=Tax class name
+label.tax.taxconfiguration=Tax basis calculation
+label.tax.storeaddress=Store address
+label.tax.piggyback=Piggy back
+label.tax.compound=Compound
+
+#configuration
+label.configuration.options=Configuration options
+label.configuration.configurations=Configurations
+label.configuration.google_analytics_url=Google Analytics URL (UC-XXXXXX)
+label.configuration.google_api_key=Google API key (For maps)
+label.configuration.facebook_page_url=FaceBook Page
+label.configuration.twitter_handle=Twitter handle
+label.configuration.pinterest=Pinterest
+label.configuration.instagram=Instagram
+label.social.connect=Connect with us
+label.social.facebook=FaceBook
+label.social.twitter=Twitter
+label.configuration.useglobalsearch_suggestions=Use global pre-defined search suggestions
+label.configuration.globalsearch_suggestions_path=Global pre-defined search suggestions file path
+
+#cart
+label.emptycart=No items in your shopping cart
+label.cart=Shopping cart
+label.mycart=My cart
+label.cart.revieworder=Review your order
+label.cart.placeorder=Place your order
+
+label.shipping.nopostalcode=A shipping quote will be available after filling the postal code
+
+#checkout
+label.checkout=Checkout
+label.subtotal=Sub-total
+label.checkout.confirmation=Order completed
+
+#register
+label.register.notyetregistered=Not yet registered?
+label.register.whyregister=Why register?
+label.register.registerreasons=Simplify a checkout process by having your information filed in, re-order an item from one click and get access to premium information.
+label.register.confirmation=Registration has been completed with success! An email was sent to {0} with all authentication details. Got to {1} and use your authentication information to login.
+
+label.notification.message.passwordchanged=We would like to inform you that your password was recently changed on {0}
+label.notification.title.passwordchanged=Password changed notification
+
+
+#Email configuration
+label.emailconfig.options=Email Configuration Options
+label.emailconfig.protocol=Protocol
+label.emailconfig.host=Host
+label.emailconfig.port=Port
+label.emailconfig.username=Username
+label.emailconfig.password=Password
+label.emailconfig.smtpauth=Requires authentication
+label.emailconfig.starttls=STARTTLS
+label.emailconfig.requiresauthentication=Email server requires authentication (should be true)
+label.emailconfig.requiresstarttls=Some email servers such as Google mail requires starttls encryption
+
+label.adminurl=Administration url
+
+email.username.label=Username : {0}
+email.password.label=Password : {0}
+email.administration.url=Administration url : {0}
+
+email.newuser.title=New user created
+email.newstore.title=New store created
+email.newstore.text=A new store has been created
+email.newuser.text=A new user has been created
+email.newstore.name=Store name : {0}
+email.newstore.info=User informations will be sent on a separate email.
+
+email.order.title={0} - Order confirmation: {1}
+email.order.confirmation=Order confirmation: {0}
+email.order.ordered=Ordered on : {0}
+email.order.updated=Updated on : {0}
+email.order.status.title=Order {0} updated
+email.order.status=Last order status: {0}
+email.order.thanks=Thanks for your purchase!
+email.order.download.title=Download your files - Order confirmation: {0}
+email.order.download.text=Your download files will be available for {0} days. You should have received an email with your login information to the system. Once logged in the system, navigate to the order details <strong>{1}</strong> and click on 'Download files'. You can get access to the customer section by clicking on the following link {2}. If you are having any difficulty with acceding to the customer section please send an email to {3}.
+
+email.contact=A new contact email - {0}
+email.contact.title=Email contact form
+label.checkout.logon=Logon or signup to simplify the online purchase process!
+
+label.checkout.text=Thank you for ordering from {0}.
+label.checkout.orderid=Your order id is {0}.
+label.checkout.email=An email with your order details has been sent to {0}.
+label.checkout.additionaltext=If you have any comments or suggestions for us, please send us an email with your order id. We value your feedback.
+label.checkout.downloads.completed=Here are your download files.
+label.checkout.downloads.processing=An email with your file(s) download instructions will be sent once the payment for this order will be completed.
+
+label.entitylist.paging=Showing {0} - {1} of {2} result(s)
+
+label.checkout.moneyorder=Please make your check or money order payable to:
+
+email.user.resetpassword.text=A request has been made to reset you password. You will find herein your new password.
+email.customer.resetpassword.text=A request has been made to reset you password. You will find herein your new password.
+email.disclaimer=This email address was given to us by you or by one of our customers. If you feel that you have received this email in error, please send an email to {0} for de-activation
+email.contactowner=If you have any questions on this request, please send an email to {0} in order to receive more details.
+email.spam.disclaimer=This email is sent in accordance with the US CAN-SPAM Law in effect 2004-01-01. Removal requests can be sent to this address and will be honored and respected.
+email.copyright=Copyright @ {0} {1}, All Rights Reserved
+email.message.from=Message from {0}
+email.greeting=Hi {0},
+email.customer.greeting=Thanks for joining {0}, you will be able to get access to the customer section by clicking on the following link {1}. Log on to the system and navigate to your order details. Informations to log in are included in this email. If you are having any difficulty with acceding to the customer section please send an email to {2}.
+email.order.statustext=An update on the status has been made on order {0} ordered on {1}
+email.order.status=Updated on {0} - Last order status {1}
+
+
+# General Form
+button.label.close=Close
+button.label.esc=Esc key
+button.label.submit=Save
+button.label.submit2=Submit
+button.label.submitorder=Submit order
+button.label.ok=Ok
+button.label.cancel=Cancel
+button.label.edit=Edit
+button.label.crop=Crop
+button.label.reset=Reset
+button.label.clear=Clear
+button.label.clear.all=Clear all
+button.label.add=Add
+button.label.update=Update
+button.label.removeservice=Remove Service
+button.label.getcode=Get code
+button.label.logout=Logout
+button.label.logon=Logon
+button.label.login=Login
+button.label.signin=Signin
+button.label.register=Register
+button.label.select=Select
+button.label.subscribe=Subscribe
+button.label.printreport=Print report
+button.label.upload.images=Upload Images
+button.label.upload.files=Upload Files
+button.label.resetpassword=Reset Password
+button.label.view=Details
+button.label.addToCart=Add to cart
+button.label.continue=Continue shopping
+
+#menus
+menu.home=Home
+menu.catalogue=Catalogue
+menu.store=Store
+menu.storeDetails=Store
+menu.storeLanding=Store home page
+menu.storeBranding=Store branding
+menu.catalogue-products=Products
+menu.catalogue-products-create=Create product
+menu.catalogue-categories=Categories
+menu.catalogue-categories-create=Create category
+menu.catalogue-categories-list=List of categories
+menu.catalogue-categories-hierarchy=Category hierarchy
+menu.catalogue-products-categories=Products to categories
+menu.catalogue-options=Options
+menu.catalogue-products-images=Product images
+menu.catalogue-products-images-url=Product images external url
+menu.catalogue-options-create=Create option
+menu.catalogue-options-list=Options list
+menu.catalogue-optionsvalues-create=Create option value
+menu.catalogue-optionsvalues-list=Options values list
+menu.catalogue-products-group=Products group
+menu.catalogue-featured=Featured items
+menu.catalogue-products-custom-group=Products custom groups
+menu.customer=Customers
+menu.profile=Profile
+menu.users=Users
+menu.user=User
+menu.myprofile=My profile
+menu.change-password=Change password
+menu.create-user=Create a user
+menu.create-store=Create a store
+menu.store-list=Stores
+menu.security=Security
+menu.security-permissions=Permissions
+menu.security-groups=Groups
+menu.order=Orders
+menu.order-list=List of orders
+menu.shipping=Shipping
+menu.shipping-configs=Shipping configurations
+menu.shipping-methods=Shipping methods
+menu.shipping-options=Shipping options
+menu.shipping-packages=Packaging
+menu.shipping-origin=Shipping origin
+menu.configuration=Configurations
+menu.cache=Cache management
+menu.customer-list=List of customers
+menu.customer-create=Create customer
+menu.customer-options=Customer options
+menu.customer-options-list=List of customer options
+menu.customer-options-create=Create customer option
+menu.customer-options-values-list=List of customer option values
+menu.customer-options-values-create=Create customer option value
+menu.customer-options-set=Manage customer options set
+menu.content=Manage content
+menu.content-pages=Manage pages
+menu.content-boxes=Manage boxes
+menu.content-images=Manage images
+menu.content-images-create=Create images
+menu.content-pages-create=Create page
+menu.content-boxes-create=Create box
+menu.content-files=Manage files
+menu.payment=Payment
+menu.tax=Manage taxes
+menu.taxconfiguration=Tax configuration
+menu.taxclass=Tax classes
+menu.taxrates=Tax rates
+menu.taxrates.rate=Tax rate
+menu.taxrates.code=Tax rate code
+menu.taxrates.name=Tax rate name
+menu.product.category=Associate to categories
+menu.accounts-conf=Accounts configuration
+menu.email-conf=Email settings
+menu.system-configurations=System configurations
+menu.manufacturer-list=List of manufacturers
+menu.manufacturer-create=Create manufacturer
+menu.addaddress=Add a new address
+menu.editaddress=Change address
\ No newline at end of file
diff --git a/sm-shop/target/classes/bundles/shopizer_fr.properties b/sm-shop/target/classes/bundles/shopizer_fr.properties
new file mode 100644
index 0000000..fff6a77
--- /dev/null
+++ b/sm-shop/target/classes/bundles/shopizer_fr.properties
@@ -0,0 +1,742 @@
+label.quantity=Quantité
+
+label.defaultlanguage=Langue par défaut
+lang.en=Anglais
+lang.fr=Français
+
+
+label.entity.id=Identifiant
+label.entity.name=Nom
+label.entity.code=Code
+label.entity.visible=Visible
+label.entity.active=Actif
+label.entity.public=Public
+label.entity.details=Détails
+label.entity.type=Type
+label.entity.remove.confirm=Désirez-vous vraiement détruire cette entitée ?
+label.entity.setAsDefault.confirm=Désirez-vous assigner cette entité par défaut ?
+label.entity.order=Ordre
+label.entity.status=Status
+label.generic.all=Tout
+label.generic.email=Adresse courriel
+label.generic.address=Adresse
+label.generic.city=Ville
+label.generic.country=Pays
+label.generic.price=Prix
+label.generic.phone=Téléphone
+label.generic.back=Retour
+label.generic.setAsDefault=Configurer par défaut
+label.generic.country.code=Code du pays
+label.generic.stateprovince=État / province
+label.generic.postalcode=Code postal
+label.generic.item=article
+label.generic.item.title=Article
+label.generic.items=articles
+label.generic.displayonly=Affichage seulement
+label.generic.url=URL
+label.generic.sortby=Ordonner par
+label.generic.default=Défaut
+label.generic.name=Nom
+label.generic.next=Suivant
+label.generic.genre=Genre
+label.generic.male=Homme
+label.generic.female=Femme
+label.generic.register=Enregistrer
+label.generic.youropinion=Votre opinion
+label.generic.date=Date
+label.generic.comments=Commentaires
+label.generic.subject=Sujet
+label.generic.minimum=Minimum
+label.generic.maximum=Maximum
+label.generic.pictures=Photos
+label.generic.videos=Vidéos
+label.generic.imageType=Type de média
+label.generic.today=Aujourd'hui
+
+label.generic.welcome=Bienvenue
+label.generic.weightunit.LB = Livres
+label.generic.weightunit.KG = Kilogrammes
+label.generic.language=Langue
+label.generic.search=Recherche
+
+label.generic.sizeunit.CM = Centimètres
+label.generic.sizeunit.IN = Pouces
+label.generic.remove=Retirer
+label.generic.yes=Oui
+label.generic.no=Non
+label.generic.alphanumeric=Alpha numérique
+label.generic.add=Ajouter
+label.generic.username=Nom d'usager
+label.generic.edit=Changer
+label.generic.print=Imprimer
+
+label.generic.environment=Environnement
+label.generic.providedby=Propulsé par
+
+label.generic.title=Titre
+label.generic.keywords=Mots clés
+label.generic.amount=Montant
+label.generic.changepassword=Change password
+
+label.generic.confirm=Veuillez confirmer!
+label.generic.firstname=Prénom
+label.generic.lastname=Nom
+label.generic.streetaddress=Adresse civique
+label.generic.postalcode=Code postal
+label.generic.city=Ville
+label.generic.country=Pays
+label.generic.hi=Bonjour
+label.generic.send=Envoyer
+
+label.soldout=Non disponible
+
+#merchant store
+label.store.information.title=Informations
+label.store.title=Boutique
+label.store.information=Informations sur la boutique
+label.storeadministration=Administration de la boutique
+label.storeadministrator = Administrateur de la boutique
+label.storename = Nom de la boutique
+label.storecode=Code unique de la boutique
+label.currency = Devise
+label.bgcolorcode = Couleur de fond
+label.storelogo = Logo de la boutique
+label.storebanner = Banniére de la boutique
+label.storephone = Téléphone de la boutique
+label.accepteddomains = Domaines acceptÈs
+label.storeaddress = Adresse de la boutique
+label.storecity = Ville de la boutique
+label.storepostalcode = Code postal de la boutique
+label.storecountry = Pays de la boutique
+label.storezone = État / Région / Province de la boutique
+label.supportedlanguages = Langues prises en charge
+label.storeemailaddress = Adresse e-mail de la boutique
+label.storesetup = Configuration de la boutique
+label.store.template=Thème
+label.store.baseurl=Url de base de la boutique (domaine)
+label.store.inbusinesssince=Boutique web en opération depuis
+label.changepasswordrequest = Demande de changement de mot de passe
+label.store.weightunit=Unités de poids
+label.store.sizeunits=Unités de grandeur
+label.store.list=Boutiques
+label.store.useCache=Utiliser la cache
+label.store.currency.format=Format de la monaie national
+label.store.currency.format.help=Format de la monaie national ex $1,345.79 ou Format de la monaie international ex USD1,345.79
+
+label.store.displaycontactussection=Afficher la page contactez-nous
+label.store.displaystoreaddress=Afficher l'adresse de la boutique
+label.store.displaysearchbox=Afficher la boîte de recheche
+label.store.testmode=Mode tests (cache les catégories et le détail des produits)
+label.store.debugmode=Mode 'debug' (ajoute des traces additionnelles)
+label.store.allowPurchaseItems=Permettre l'achat d'items
+label.store.displayaddtocartfeatured=Permettre l'ajout au panier à partir des articles recommandés
+label.store.tofindus=Notre adresse
+
+label.storefront.storetext = Contenu de la page principale
+label.storefront.metatags.keywords = (Meta tags) Mots-clés
+label.storefront.metatags.description = (Meta tags) Description
+label.storefront.landingpage.title = Titre de la page principale
+
+#user
+label.profile.title=Profile de l'utilisateur
+label.my.profile=Mon profile
+label.profile.lastaccess=Dernier accès
+
+#search
+label.search.searchQuery=mots recherchés
+label.search.items.found=article(s) trouvé(s)
+
+
+label.generic.password=Mot de passe
+label.generic.repeatpassword=Répéter le mot de passe
+label.generic.newpassword=Nouveau mot de passe
+label.generic.newpassword.repeat=Répéter le nouveau mot de passe
+
+security.question.1=Quelle était la couleur de votre première voiture ?
+security.question.2=Dans quelle ville êtes-vous né ?
+security.question.3=Quel était le nom de votre premier animal de compagnie ?
+security.question.4=Quel est votre genre de musique préféré ?
+security.question.5=Qui était le héro de votre enfance ?
+security.question.6=Dans quelle ville était votre premier emploi ?
+security.question.7=À quel endroit étiez-vous lors de votre premier baiser ?
+security.question.8=Dans quelle ville avez vous rencontré votre conjoint/conjointe ?
+security.question.9=Quel surnom aviez-vous dans votre enfance ?
+
+security.questions.differentmessages=Choisir 3 questions différentes
+
+security.question1=Question 1
+security.question2=Question 2
+security.question3=Question 3
+security.answer.question1.message=Veuillez répondre à la question de sécurité 1
+security.answer.question2.message=Veuillez répondre à la question de sécurité 2
+security.answer.question3.message=Veuillez répondre à la question de sécurité 3
+
+
+security.group.description.SUPERADMIN=Un seul usager est créé super admin. L'usager 'admin' créé par défaut par le systeème est l'usager superadmin. Cet usager peut tout administrer et il est le seul usager pouvant créeer et supprimer une boutique.
+security.group.description.ADMIN=Un usager admin possède le plus de privilèges dans lèadministration de la boutique.Un usager admin peut tout administrer dans une boutique et peut également créer d'autres usagers ayant des accès plus restreints.
+security.group.description.ADMIN_CATALOGUE=Un usager appartenant à ce groupe peut gérer les catégories et les produits. Il peut également configurer les produits vedettes.
+security.group.description.ADMIN_STORE=Un usager appartenant à ce groupe peut administrer toutes configurations reliées à la boutique. L'usager peut également administrer les configurations de paiement et de livraison.
+security.group.description.ADMIN_ORDER=A user part of that group can manage orders, search for orders, modify customer information, apply refund to an order.
+security.group.description.ADMIN_CONTENT=A user assigned to that group will be able to manage the site dynamic and static content, add images, aand files to the system.
+
+label.security.loggedinas=Vous êtes authentifié avec
+label.security.nologinacces.store=Impossible de s'authentifier dans cette section.
+
+#customer
+label.customer.myaccount=Mon Compte
+label.customer.contactus=Contactez-nous
+label.customer.list=Liste de clients
+label.customer.customerlist.title = Liste des clients
+label.customer.customerdetails.title = Détails du client
+label.customer.name = Nom du client
+label.customer.lastname = Nom de famille du client
+label.customer.firstname = Prénom du client
+label.customer.id = Identifiant du client
+label.customer.companyname = Nom de l'entreprise
+label.customer.email = Adresse e-mail du client
+label.customer.streetaddress = Adresse
+label.customer.suburb = Banlieue
+label.customer.postalcode = Code postal
+label.customer.telephone = Téléphone
+label.customer.city = Ville
+label.customer.zone = État / Province
+label.customer.country = Pays
+label.customer.registered = Client inscrit (enregistré)
+label.customer.editcustomer=Éditer un client
+label.customer.createcustomer=Créer un client
+label.customer.order.date= Date de la commande
+label.customer.order.agreement=Je suis d'accord avec les termes et conditions
+label.customer.order.agreement.title=Termes et conditions
+label.customer.options.edit=Éditer l'option
+
+label.customer.billinginformation =Informations sur la facturation
+label.customer.shippinginformation =Informations sur la facturation et la livraison
+label.customer.billingshipping=Informations de facturation et de livraison
+label.customer.shippingaddress=Adresse de livraison
+label.customer.billingaddress=Adresse de facturation
+
+
+label.customer.edit.billingaddress=Modifier l'adresse de facturation
+label.customer.edit.shippinginformation=Modifier l'adresse de livraison
+
+
+label.customer.billing.company=Nom de l'entreprise
+label.customer.billing.streetaddress = Adresse de facturation
+label.customer.billing.suburb = Banlieue de facturation
+label.customer.billing.postalcode = Code postal de facturation
+label.customer.billing.city = Ville de facturation
+label.customer.billing.zone =État / province de facturation
+label.customer.billing.country = Pays de facturation
+label.customer.billing.firstname = Prénom sur la facturation
+label.customer.billing.lastname = Nom de famille sur la facturation
+label.customer.billing.name=Nom sur la facturation
+
+label.customer.shipping.company=Company de livraison
+label.customer.shipping.streetaddress=Adresse de livraison
+label.customer.shipping.suburb=Banlieue de livraison
+label.customer.shipping.postalcode=Code postal de livraison
+label.customer.shipping.city=Ville de livraison
+label.customer.shipping.zone=État / province de livraison
+label.customer.shipping.country=Pays de livraison
+label.customer.shipping.firstname=Prénom à la livraison
+label.customer.shipping.lastname=Nom de famille à la livraison
+label.customer.shipping.name=Nom à la livraison
+label.customer.shipping.shipaddress=Livrer à cette adresse
+
+label.customer.confirmshippingaddress=Confirmation de l'adresse de livraison
+
+
+
+label.customer.optionv.edit=Éditer une option
+label.customer.option.name=Nom de l'option
+label.customer.option.code=Code de l'option
+label.customer.option.type=Type d'affichage
+
+label.customer.optionvalue.edit=Éditer la valeur d'option
+label.customer.optionvalue.name=Nom de la valeur d'option
+label.customer.optionvalue.code=Code de la valeur d'option
+
+label.customer.displaycustomersection=Afficher la section client
+label.customer.accessportal=Vous pouvez accéder à la section des utilisateurs en suivant ce lien
+label.customer.accessnow=Accéder maintenant !
+
+label.customer.resetpasswor.confirm=Êtes-vous certain de vouloir ré-initialiser le mot de passe ?
+label.customer.moredetails=Plus de détails !
+label.order.editcustomer=Éditer le client
+label.order.displayagreement=Afficher les termes et conditions dans la page d'achat
+
+#permission
+label.permissions.title=Permissions
+label.permission.editpermission=Éditer les permissions
+label.permission.createpermission=Créer une permission
+label.permission.name=Nom de la permission
+
+#groups
+label.groups.title=Groupes
+label.group.editgroup=éditer un groupe
+label.group.creategroup=Créer un groupe
+label.group.root=Racine
+label.group.groupId=Identifiant du groupe
+
+#category
+label.category.title=Titre de la catégorie
+label.category.highlight=Description éclair
+label.categories.title=Catégories
+label.categories.hierarchy.title=Hierarchie des catégories
+label.category.root=Racine
+label.productedit.categoryname = Nom de la catégorie
+label.productedit.choosecategory = Choisissez une catégorie
+label.category.categogydetails = Détails de la catégorie
+label.category.editcategory = Modifier la catégorie
+label.category.movecategory = Déplacer la catégorie
+label.category.moveundercategory = Déplacer sous la catégorie
+label.category.createcategory = Créer une catégorie
+label.category.code=Code de la catégorie
+label.category.categoryvisible = Catégorie visible
+label.category.categorydescription = Description de la catégorie
+label.category.parentcategory = Catégorie parent
+label.category.hierarchy.text=Glisser les catégories pour ré-organiser la hierarchie
+label.category.maincategories=Main categories
+
+#manufacturer
+label.manufacturer.brand=Marques
+label.manufacturer.edit=éditer le manufacturier
+label.manufacturer.create=Créer un manufacturier
+label.manufactureredit.manufacturername=Nom du manufacturier
+label.manufactureredit.manufacturertitle=Titre du manufacturier
+label.manufactureredit.manufacturerurl=URL
+label.manufactureredit.manufacturerurlclicked=URL clique
+label.manufactureredit.manufacturerdescription=Description du manufacturier
+label.manufacturer.image=Image
+label.manufactureredit.manufacturerorder=Sequence
+
+#product
+label.sefurl=Lien convivial
+label.metatags.description = (Meta tags) Description
+label.metatags.keywords = (Meta tags) Mots-clés
+label.product.sku=Sku
+label.product.refsku=Identifiant de l'item dans le système de référence
+label.product.available=Disponible
+label.product.create=Créer a produit
+label.product.edit=éditer le produit
+label.productedit.productname=Nom du produit
+label.productedit.producthl=Description éclair
+label.productedit.productdesc=Description du produit
+label.product.title=Titre du produit
+label.product.price=Prix du produit
+label.product.price.code=Code de prix du produit
+label.product.preorder=Pré-commande
+label.product.price.name=Nom du prix
+label.product.price.default=Prix par défaut
+label.product.price.special=Prix rabais
+label.product.price.special.startdate=Date de début du rabais
+label.product.price.special.enddate=Date de fin du rabais
+label.taxclass = Classe de taxe
+label.product.ordermax=Quantitée maximum permise
+label.product.ordermin=Quantity minimum permise
+label.product.weight =Poids
+label.product.height =Hauteur
+label.product.length =Profondeur
+label.product.width =Largeur
+label.product.image =Image
+label.product.uploadfile = Importer un fichier
+label.product.details=Détails du produit
+label.product.prices=Prix du produit
+label.product.attributes=Options du produit / Attributs
+label.product.attribute=Option du produit / Attribut
+label.product.attribute.default=Option par défault
+label.product.attribute.required=Option requise
+label.product.attribute.display=Attribut utilisé pour lecture seulement
+label.product.attribute.otherweight=Poids additionnel
+label.product.attribute.option.name=Nom de l'option / attribut
+label.product.attribute.value=Valeur de l'attribut
+label.product.price.create=Créer un prix
+label.product.attribute.create=Créer une option / attribut
+label.product.attribute.specifications=Spécifications
+label.product.category.association=Associer le produit aux catégories
+label.product.customer.reviews=Revues du client
+label.product.reviews=Revue(s) du produit
+label.product.reviews.rating=Évaluation
+label.product.reviews.write=Évaluer ce produit
+label.product.reviews.logon.write=Vous devez vous authentifier afin d'évaluer ce produit
+label.product.reviews.evaluated=Vous avez évalué ce produit
+label.product.featured.meassage=Pour ajouter un produit à la liste des produits vedettes faites glisser le produit du contenant des produits vers la boîte des produits vedetted.
+label.product.group.meassage=Pour ajouter un produit à la liste du groupe de produits faites glisser le produit du contenant des produits vers la boîte du groupe de produit courant.
+label.product.related.title=Produits connexes
+label.product.related.meassage=Pour ajouter un produit à la liste des produits connexes faites glisser le produit du contenant des produits vers la boîte des produits connexes.
+label.product.createsimilar=Créer un produit similaire
+label.product.configure=Définition du produit
+label.product.specification=Spécification
+label.product.digitalproduct=Produit virtuel
+label.product.specials=Spéciaux
+label.product.brand=Marque
+label.product.code=Code de produit
+label.product.nomoreitems=Fin des articles à afficher
+label.product.moreitems=Afficher plus d'articles
+label.product.searchkeywords=Mots clés de recherche
+label.product.shipeable=Le produit doit être livré
+label.product.outofstock=Non disponible
+label.product.defaultImage.message=En choisissant l'option défaut, cette image sera affichée comme image principale dans le page de produit
+
+#options
+label.product.productoptions.edit.title=Modifier une option de produit
+label.product.productoptions.create.title=Créer une option de produit
+label.product.productoptions.title=Option du produit
+label.product.productoptions.name =Nom de l'option
+label.product.productoptions.price=Prix de l'option
+label.product.productoptions.comments=Commentaires
+label.product.productoptions.type=Type d'option
+
+label.product.productoption.type.text=Texte
+label.product.productoption.type.radio=Radio
+label.product.productoption.type.select=Select
+label.product.productoption.type.checkbox=Checkbox
+
+label.product.customGroup.title=Groupe de produits
+label.product.customgroup.add=Ajouter un groupe de produits
+label.product.customgroup.code=Code du groupe de produit (doit être unique)
+
+label.product.rate=Évaluer ce produit
+label.product.clickrate=Évaluation du produit (cliquez sur les images pour activer l'évaluation)
+
+
+label.product.option.displayonly=Option pour affichage seulement
+label.product.option.code=Code de l'option
+label.product.option.codehelp=Code de l'option requis pour effectuer des recherches de produits par attribut
+
+
+#options values
+label.product.productoptionsvalues.title=Valeurs des options de produit
+label.product.productoptionsvalues.list=Liste des valeurs des options de produit
+label.product.productoptiosvalue.title=Valeur d'option
+label.product.productoptionvalue.edit.title=Modifier une valeur d'option
+label.product.productoptionvalue.create.title=Créer une valeur d'option
+label.product.productoptionvalue=Image de valeur d'option
+
+#content Images - Files
+label.contentImages.store=Boutique marchand
+label.content.images=Librairie d'images
+label.content.files=Librairie de fichiers
+label.content.pages=Pages de contenu
+label.content.pages.manage.content=Gestion du contenu des pages
+label.content.manage.content=Gestion du contenu
+label.content.pages.page.name=Nom de la page
+label.content.pages.page.content=Contenu de la page
+label.content.boxes=Boîtes de contenu
+label.content.boxes.position=Position de la boîte
+label.content.boxes.name=Nom de la boîte
+label.content.sections=Sections de contenu
+label.content.friendlyurl=URL simplifié
+label.content.metatag.description=Méta donnée de description
+
+
+#shipping
+label.shipping.title=Configuration expédition
+label.shipping.national=National
+label.shipping.international=International
+label.shipping.mode=Statut d'expédition
+label.shipping.methods=Méthodes d'expédition
+label.shipping.countries=Pays d'expédition
+label.shipping.options=Options d'expédition
+label.shipping.taxonshipping=Appliquer la taxe sur l'expédition
+label.shipping.freeshipping=Livraison gratuite
+label.shipping.freeshippingamount=Livraison gratuite sur une commande dont le montant est supérieur à
+label.shipping.handlingfees=Frais de manutention
+label.shipping.packaging.title=Packaging information
+label.shipping.packaging.individual=Les items seront expédiés séparément
+label.shipping.packaging.boxes=Les items seront combinés et expédiés dans une boîte
+label.shipping.packaging.box.height=Hauteur de la boîte
+label.shipping.packaging.box.length=Longueur de la boîte
+label.shipping.packaging.box.width=Largeur de la boîte
+label.shipping.packaging.box.weight=Poids de la boîte
+label.shipping.packaging.box.maxweight=Poids maximum supporté par la boîte
+label.shipping.packaging.box.maxitems=Nombre maximum d'items dans la boîte
+label.shipping.addregion=Ajouter une région
+label.shipping.region=Région
+label.shipping.allquotes=Afficher toutes les catations obtenues
+label.shipping.leastexpensivequotes=Afficher la catations obtenue la moins dispendieuse
+label.shipping.moreexpensivequotes=Afficher la catations obtenue la plus dispendieuse
+label.message.region.available=Région disponible
+label.message.region.exist=Région existe déjà
+label.shipping.maximumWeight=Poids maximum
+label.shipping.shippingaddress=Adresse de livraison
+label.shipping.billingaddress=Adresse de facturation
+label.message.maximumWeight.exist=Poids maximum existe déjà
+label.shipping.fees=Frais de livraison
+label.shipping.freeshipping=Livraison gratuite !
+label.shipping.freeshipping.over=Livraison gratuite pour les commandes dont le montant est supérieur à
+label.shipping.freeshippingandhandling=Livraison et manutention gratuits
+label.shipping.origin.title=Adresse source de la livraison
+label.shipping.origin.description=L'adresse source de la livraison sert à calculer la distance entre l'origine et la destination d'une livraison. Si elle n'est pas populée, le système utilisera l'adresse de la boutique comme adresse d'origine.
+
+
+#order
+label.order.title=Commandes
+label.order.total=Total
+label.order.date=Date de la commande
+label.order.module=Module du paiement
+label.order.shippingmethod=Mode d'expédition
+label.order.paymentmode=Mode de paiement
+label.order.refund=Appliquer un remboursement
+label.order.capture=Compléter la transaction
+label.order.item=Article
+label.order.price=Prix
+label.order.sendinvoice=Envoyer la facture par courriel
+label.order.printinvoice=Imprimer la facture
+label.order.packing=Imprimer l'étiquette d'expédition
+label.order.updatestatus=Envoyer un statut de la commande
+label.order.downloademail=Envoyer les instructions de téléchargement
+label.order.history=Historique
+label.order.recent=Dernières commandes
+label.order.pastorders=Historique des commandes
+label.order.summary=Sommaire de la commande
+label.order.details=Détails de la commande
+label.order.PROCESSING=En traîtement
+label.order.ORDERED=Commandée
+label.order.PAID=Payée
+label.order.SHIPPED=Livrée
+label.order.PREPARED=Préparés
+label.order.REFUNDED=Remboursée
+label.order.DELIVERED=Livrée
+refund=Remboursement
+
+order.total.subtotal=Sous-total
+order.total.total=Total
+order.total.shipping=Livraison
+order.total.handling=Manutention
+
+label.order.recalculate=Recalculer
+label.order.transactions=Liste des transactions
+
+#payment
+label.payment.title=Méthodes de paiement
+label.payment.module.title=Méthode de paiement
+
+label.payment.paypal.usepaypal=Utiliser PayPal
+label.payment.moneuorder.usemoneyorder=Utiliser une traîte bancaire
+label.payment.creditcard.usecredicard=Utitliser votre carte de crédit
+label.payment.creditcard.cardowner=Nom inscrit sur la carte
+label.payment.creditcard.cardnumber=Numéro de la carte
+label.payment.creditcard.cardexpiry=Date d'expiration de la carte de crédit
+label.payment.creditcard.cardcvv=Numéro de validation de la carte de crédit
+label.payment.creditcard.whatiscvv=Qu'est-ce que le numéro de validation de la carte de crédit
+
+#tax
+label.tax.taxclass.title=Classes de taxes
+label.tax.taxclass=Classe de taxe
+label.tax.taxclass.name=Nom de la classe de taxe
+label.tax.taxconfiguration=Bases du calcul des taxes
+label.tax.storeaddress=Adresse de la boutique
+label.tax.piggyback=Cumulée à une autre taxe
+label.tax.compound=Composée à une autre taxe
+
+#configuration
+label.configuration.options=Options de configuration
+label.configuration.configurations=Configurations
+label.configuration.google_analytics_url=URL Google Analytics (UC-XXXXXX)
+label.configuration.google_api_key=Clée Google pour API (pour les cartes)
+label.configuration.facebook_page_url=URL de la page FaceBook
+label.configuration.twitter_handle=Compte Twitter
+label.configuration.pinterest=Pinterest
+label.configuration.instagram=Instagram
+label.social.connect=Restons en contact
+label.social.facebook=FaceBook
+label.social.twitter=Twitter
+label.configuration.useglobalsearch_suggestions=Utiliser un fichier global de recherches pré-défini
+label.configuration.globalsearch_suggestions_path=Chemin d'accès du fichier global de recherches pré-défini
+
+#cart
+label.emptycart=Aucun item dans le panier d'achat
+label.cart=Panier d'achat
+label.mycart=Mes achats
+label.cart.revieworder=Revoir votre commande
+label.cart.placeorder=Passez votre commande
+
+#checkout
+label.checkout=Paiement
+label.subtotal=Sous-total
+label.checkout.confirmation=La commande a été complétée
+
+label.shipping.nopostalcode=Les frais de livraison seront ajustés après avoir inscrit votre code postal.
+
+#register
+label.register.notyetregistered=Pas encore enregistré ?
+label.register.whyregister=Pourquoi s'enregistrer ?
+label.register.registerreasons=Simplifiez le processus d'achat en créant au préalables les informations de facturation et d'envoi des commandes. Vous aurez accès à une section vous permettant de faire le suivi de vos commandes et d'imprimer vos factures d'achats.
+label.register.confirmation=L'enregistrement a été complété avec succès ! Un couriel a été envoyé à {0} comprenant les informations permettant de se connecter. Allez à {1} afin de vous connecter au système.
+
+label.notification.message.passwordchanged=Nous désirons vous informer qu'une demande de changement de votre mot de passe a été faite le {0}
+label.notification.title.passwordchanged=Notification d'un changement de mot de passe
+
+
+#Email configuration
+label.emailconfig.options=Configurations du serveur email
+label.emailconfig.protocol=Protocole
+label.emailconfig.host=Hôte
+label.emailconfig.port=Port
+label.emailconfig.username=Nom d'usager
+label.emailconfig.password=Mot de passe
+label.emailconfig.smtpauth=Authentication requise
+label.emailconfig.starttls=STARTTLS
+label.emailconfig.requiresauthentication=Le serveur email requiert une authentification (devrait être vrai)
+label.emailconfig.requiresstarttls=Certains serveurs email tels que Google mail requierent l'utilisation de l'encryption STARTTLS
+
+label.adminurl=Adresse du site d'administration
+email.newuesr.title=Nouvel usager créé
+
+email.username.label=Code d'usager : {0}
+email.password.label=Mot de passe : {0}
+email.administration.url=Lien administration : {0}
+
+email.newstore.title=Création d'un nouveau marchand
+email.newstore.text=Un nouveau marchand a été créé
+email.newuser.text=Un nouvel usager a été créé
+email.newstore.name=Nom du marchand : {0}
+email.newstore.info=Les informations de l'usager seront envoyées dans un couriel différent.
+
+email.order.title={0} - Confirmation : {1}
+email.order.confirmation=Numéro de confirmation de la commande : {0}
+email.order.ordered=Commandé le : {0}
+email.order.updated=Mis à jour le : {0}
+email.order.status.title=Commande {0} mise à jour
+email.order.status=Dernier statut de la commande : {0}
+email.order.thanks=Merci pour cette commande !
+email.order.download.title=Téléchargez vos fichiers - Commande : {0}
+email.order.download.text=Vos fichiers prêts à télécharger seront disponibles pendant {0} jours. Vous devriez avoir reçu un courriel avec les informations nécessaires à l'accès au système. Une fois authentifié dans le système, naviguez vers le détail de la commande <strong>{1}</strong> et cliquez sur 'Télécharger mes fichiers'. Vous avez accès au système en suivant ce lien {2}. Si vous avez des difficultées à accéder à la section client, envoyez un couriel à {3}.
+
+email.contact=Nouveau contact - {0}
+email.contact.title=Formulaire de contact
+label.checkout.logon=Vous pouvez vous authentifier ou vous abonner afin de simplifier le processus d'achats !
+
+
+label.checkout.text={0} vous remercie d'avoir acheté chez nous.
+label.checkout.orderid=Votre numéro de commande est {0}.
+label.checkout.email=Un courriel contenant le détail de la commande a été envoyé à {0}.
+label.checkout.additionaltext=Si vous avez des commentaires ou suggestions à nous envoyez vous pouvez le faire par courriel en prenant le soin de mentionner le numéro de votre commande.
+label.checkout.downloads.completed=Voici le(s) fichier(s) à télécharger.
+label.checkout.downloads.processing=Un courriel contenant un lien vers le(s) fichier(s) à télécharger vous sera envoyé dès que le paiement pour cette commande sera complété.
+
+label.entitylist.paging=Affichage de {0} - {1} de {2} résultat(s)
+
+label.checkout.moneyorder=S'il vous plaît faire votre chèque ou mandat à l'ordre de :
+
+email.user.resetpassword.text=Une requête a été faite afin de ré-initialiser votre mot de passe. Vous trouverez ci-joint votre nouveau mot de passe.
+email.customer.resetpassword.text=Une requête a été faite afin de ré-initialiser votre mot de passe. Vous trouverez ci-joint votre nouveau mot de passe.
+email.disclaimer = Cette adresse de courriel nous a été donnée par vous ou par un de nos clients. Si vous pensez que vous avez reçu ce courriel par erreur, s''il vous plaît envoyez un courriel à {0} pour procéder à la désactivation
+email.contactowner=Si vous avez des questions concernant cette requête, envoyez un message courriel à {0} afin de recevoir plus de détails.
+email.spam.disclaimer = Ce courriel est envoyé en conformité avec la loi CAN-SPAM américaine en vigueur le 2004-01-01. Les demandes de suppression peuvent être envoyées à cette adresse et seront honorées et respectées.
+email.copyright=Tous droits réservés {0} {1}
+email.message.from = Message de {0}
+email.greeting=Bonjour {0},
+email.customer.greeting=Merci de vous joindre à {0}, vous pourrez accéder à la section des clients en utilisant ce lien {1}. Authentifiez-vous au système et naviguez vers la section de détail des commandes. Les informations vous permettant de vous authentifier sont incluses dans ce couriel. Si vous avez des difficultées à accéder à la section client, envoyez un couriel à {2}.
+email.order.statustext=Une mise à jour a été faite à la commande {0} commandée le {1}
+email.order.status=Mis à jour le {0} - Dernier statut de la commande {1}
+
+
+# Formulaire général
+button.label.close = Fermer
+button.label.esc = Touche Esc
+button.label.submit=Sauvegarder
+button.label.submit2=Soumettre
+button.label.submitorder=Envoyer la commande
+button.label.ok=Ok
+button.label.edit=éditer
+button.label.cancel = Annuler
+button.label.crop = Redimensioner
+button.label.reset = Ré-initialiser
+button.label.clear = Effacer
+button.label.clear.all=Effacer tout
+button.label.add = Ajouter
+button.label.update = Mise à jour
+button.label.removeservice = Supprimer le Service
+button.label.getcode = Obtenir le code
+button.label.logout = Déconnection
+button.label.logon = Authentifier
+button.label.login = Connection
+button.label.signin=Authentification
+button.label.register=S'enregistrer
+button.label.select = Sélectionner
+button.label.subscribe = S'abonner
+button.label.printreport=Imprimer un rapport
+button.label.upload.images=Ajouter des fichiers
+button.label.resetpassword=Ré-initialiser le mot de passe
+button.label.view=Détails
+button.label.addToCart=Ajouter au panier
+button.label.continue=Continuez votre magasinage
+
+menu.home=Page d'accueil
+menu.catalogue=Catalogue
+menu.store=Boutique
+menu.storeDetails=Boutique
+menu.storeLanding=Boutique - page principale
+menu.storeBranding=Boutique - image de marque
+menu.catalogue-products=Produits
+menu.catalogue-products-create=Créer un produit
+menu.catalogue-categories=Catégories
+menu.catalogue-categories-create=Créer une catégorie
+menu.catalogue-categories-list=Liste des catégories
+menu.catalogue-categories-hierarchy=Structure des catégories
+menu.catalogue-products-categories=Produits - Catégories
+menu.catalogue-options=Options
+menu.catalogue-products-images=Images du produit
+menu.catalogue-products-images-url=Url de l'image du produit
+menu.catalogue-options-create=Créer une option
+menu.catalogue-options-list=Liste des options
+menu.catalogue-optionsvalues-create=Créer une valeur d'option
+menu.catalogue-optionsvalues-list=Liste des valeurs d'options
+menu.catalogue-products-group=Groupes de produits
+menu.catalogue-featured=Articles vedettes
+menu.catalogue-products-custom-group=Autres groupes de produits
+menu.customer=Clients
+menu.profile=Profile
+menu.users=Utilisateurs
+menu.user=Utilisateur
+menu.myprofile=Mon profile
+menu.change-password=Changement de mot de passe
+menu.create-user=Créer un utilisateur
+menu.create-store=Créer une boutique
+menu.store-list=Liste des boutiques
+menu.security=Securité
+menu.security-permissions=Permissions
+menu.security-groups=Groupes
+menu.order=Commandes
+menu.order-list=Liste des commandes
+menu.shipping=Expédition
+menu.shipping-configs=Configurations de l'expédition
+menu.shipping-methods=Méthodes d'expédition
+menu.shipping-options=Options d'expédition
+menu.shipping-packages=Emballage
+menu.shipping-origin=Adresse d'origine de la livraison
+menu.cache=Gestion de la cache
+menu.configuration=Configurations
+menu.customer-list=Liste des clients
+menu.customer-create=Créer un client
+menu.customer-options=Options du client
+menu.customer-options-list=Liste des options du client
+menu.customer-options-create=Créer une option de client
+menu.customer-options-values-list=Liste de valeurs des options du client
+menu.customer-options-values-create=Créer une valeur option d'option du client
+menu.customer-options-set=Gérer les options possibles du client
+menu.content=Gestion du contenu
+menu.content-pages=Gérer les pages
+menu.content-pages-create=Créer une page
+menu.content-boxes-create=Créer une boîte
+menu.content-boxes=Gérer les boîtes
+menu.content-images=Gérer les images
+menu.content-files=Gérer les fichiers
+menu.payment=Paiement
+menu.tax=Taxes de vente
+menu.taxconfiguration=Configuration des taxes
+menu.taxclass=Classes de taxes
+menu.taxrates=Taux des taxes
+menu.taxrates.rate=Taux
+menu.taxrates.code=Code du taux de taxe
+menu.taxrates.name=Nom de la taxe
+menu.product.category=Asscoier aux catégories
+menu.accounts-conf=Configuration des comptes
+menu.email-conf=Configuration du courriel
+menu.system-configurations=Configurations du système
+menu.manufacturer-list=Liste des fabricants
+menu.manufacturer-create=Créer un fabricant
+menu.addaddress=Ajouter une nouvelle adresse
+menu.editaddress=Changer l'adresse
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/controller/AdminController.class b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/AdminController.class
new file mode 100644
index 0000000..9bfbf00
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/AdminController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/controller/categories/CategoryController.class b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/categories/CategoryController.class
new file mode 100644
index 0000000..923eb0b
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/categories/CategoryController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/controller/configurations/CacheController.class b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/configurations/CacheController.class
new file mode 100644
index 0000000..9508973
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/configurations/CacheController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/controller/configurations/ConfigurationController.class b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/configurations/ConfigurationController.class
new file mode 100644
index 0000000..10a83f9
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/configurations/ConfigurationController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/controller/configurations/SystemConfigurationController.class b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/configurations/SystemConfigurationController.class
new file mode 100644
index 0000000..b5fa276
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/configurations/SystemConfigurationController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/controller/content/ContentBoxesController.class b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/content/ContentBoxesController.class
new file mode 100644
index 0000000..93e443f
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/content/ContentBoxesController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/controller/content/ContentImageController.class b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/content/ContentImageController.class
new file mode 100644
index 0000000..4b6547d
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/content/ContentImageController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/controller/content/ContentPagesController.class b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/content/ContentPagesController.class
new file mode 100644
index 0000000..1b29271
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/content/ContentPagesController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/controller/content/StaticContentController.class b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/content/StaticContentController.class
new file mode 100644
index 0000000..745d73b
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/content/StaticContentController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/controller/ControllerConstants$Tiles$Configuration.class b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/ControllerConstants$Tiles$Configuration.class
new file mode 100644
index 0000000..fa1a45c
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/ControllerConstants$Tiles$Configuration.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/controller/ControllerConstants$Tiles$Content.class b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/ControllerConstants$Tiles$Content.class
new file mode 100644
index 0000000..31fb953
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/ControllerConstants$Tiles$Content.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/controller/ControllerConstants$Tiles$ContentFiles.class b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/ControllerConstants$Tiles$ContentFiles.class
new file mode 100644
index 0000000..07dc109
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/ControllerConstants$Tiles$ContentFiles.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/controller/ControllerConstants$Tiles$ContentImages.class b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/ControllerConstants$Tiles$ContentImages.class
new file mode 100644
index 0000000..f16e4cc
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/ControllerConstants$Tiles$ContentImages.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/controller/ControllerConstants$Tiles$Customer.class b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/ControllerConstants$Tiles$Customer.class
new file mode 100644
index 0000000..da9fbbb
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/ControllerConstants$Tiles$Customer.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/controller/ControllerConstants$Tiles$Order.class b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/ControllerConstants$Tiles$Order.class
new file mode 100644
index 0000000..b500c5b
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/ControllerConstants$Tiles$Order.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/controller/ControllerConstants$Tiles$Payment.class b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/ControllerConstants$Tiles$Payment.class
new file mode 100644
index 0000000..f49b4b3
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/ControllerConstants$Tiles$Payment.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/controller/ControllerConstants$Tiles$Product.class b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/ControllerConstants$Tiles$Product.class
new file mode 100644
index 0000000..f891593
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/ControllerConstants$Tiles$Product.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/controller/ControllerConstants$Tiles$Shipping.class b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/ControllerConstants$Tiles$Shipping.class
new file mode 100644
index 0000000..17c3103
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/ControllerConstants$Tiles$Shipping.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/controller/ControllerConstants$Tiles$Store.class b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/ControllerConstants$Tiles$Store.class
new file mode 100644
index 0000000..42f2485
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/ControllerConstants$Tiles$Store.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/controller/ControllerConstants$Tiles$Tax.class b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/ControllerConstants$Tiles$Tax.class
new file mode 100644
index 0000000..1c63dd8
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/ControllerConstants$Tiles$Tax.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/controller/ControllerConstants$Tiles$User.class b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/ControllerConstants$Tiles$User.class
new file mode 100644
index 0000000..0504871
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/ControllerConstants$Tiles$User.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/controller/ControllerConstants$Tiles.class b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/ControllerConstants$Tiles.class
new file mode 100644
index 0000000..45d59fd
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/ControllerConstants$Tiles.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/controller/ControllerConstants.class b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/ControllerConstants.class
new file mode 100644
index 0000000..7e5f85c
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/ControllerConstants.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/controller/customers/CustomerController.class b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/customers/CustomerController.class
new file mode 100644
index 0000000..796eb05
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/customers/CustomerController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/controller/customers/CustomerOptionsController.class b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/customers/CustomerOptionsController.class
new file mode 100644
index 0000000..c672909
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/customers/CustomerOptionsController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/controller/customers/CustomerOptionsSetController.class b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/customers/CustomerOptionsSetController.class
new file mode 100644
index 0000000..83f7b84
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/customers/CustomerOptionsSetController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/controller/customers/CustomerOptionsValueController.class b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/customers/CustomerOptionsValueController.class
new file mode 100644
index 0000000..03208f1
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/customers/CustomerOptionsValueController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/controller/merchant/MerchantStoreController.class b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/merchant/MerchantStoreController.class
new file mode 100644
index 0000000..fcf63f9
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/merchant/MerchantStoreController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/controller/merchant/StoreBrandingController.class b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/merchant/StoreBrandingController.class
new file mode 100644
index 0000000..34c07ec
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/merchant/StoreBrandingController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/controller/merchant/StoreLandingController.class b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/merchant/StoreLandingController.class
new file mode 100644
index 0000000..896264d
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/merchant/StoreLandingController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/controller/orders/OrderActionsControler.class b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/orders/OrderActionsControler.class
new file mode 100644
index 0000000..79ad855
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/orders/OrderActionsControler.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/controller/orders/OrderControler.class b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/orders/OrderControler.class
new file mode 100644
index 0000000..1fbb44e
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/orders/OrderControler.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/controller/orders/OrdersController.class b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/orders/OrdersController.class
new file mode 100644
index 0000000..e2fb58a
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/orders/OrdersController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/controller/payments/PaymentsController.class b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/payments/PaymentsController.class
new file mode 100644
index 0000000..515b3c1
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/payments/PaymentsController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/controller/products/CustomProductGroupsController.class b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/products/CustomProductGroupsController.class
new file mode 100644
index 0000000..f07e621
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/products/CustomProductGroupsController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/controller/products/DigitalProductController.class b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/products/DigitalProductController.class
new file mode 100644
index 0000000..f87396d
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/products/DigitalProductController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/controller/products/FeaturedItemsController.class b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/products/FeaturedItemsController.class
new file mode 100644
index 0000000..8a11094
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/products/FeaturedItemsController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/controller/products/ManufacturerController.class b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/products/ManufacturerController.class
new file mode 100644
index 0000000..e27a895
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/products/ManufacturerController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/controller/products/OptionsController.class b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/products/OptionsController.class
new file mode 100644
index 0000000..ed42d04
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/products/OptionsController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/controller/products/OptionsValueController.class b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/products/OptionsValueController.class
new file mode 100644
index 0000000..cee1bc1
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/products/OptionsValueController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/controller/products/ProductAttributeController.class b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/products/ProductAttributeController.class
new file mode 100644
index 0000000..0380d23
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/products/ProductAttributeController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/controller/products/ProductController.class b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/products/ProductController.class
new file mode 100644
index 0000000..68ea6f7
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/products/ProductController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/controller/products/ProductImagesController.class b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/products/ProductImagesController.class
new file mode 100644
index 0000000..4ea1cd6
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/products/ProductImagesController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/controller/products/ProductKeywordsController.class b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/products/ProductKeywordsController.class
new file mode 100644
index 0000000..16c553f
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/products/ProductKeywordsController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/controller/products/ProductPriceController.class b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/products/ProductPriceController.class
new file mode 100644
index 0000000..c0c7437
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/products/ProductPriceController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/controller/products/ProductReviewController.class b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/products/ProductReviewController.class
new file mode 100644
index 0000000..597befa
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/products/ProductReviewController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/controller/products/ProductsController.class b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/products/ProductsController.class
new file mode 100644
index 0000000..a1a179e
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/products/ProductsController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/controller/products/RelatedItemsController.class b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/products/RelatedItemsController.class
new file mode 100644
index 0000000..c53c69f
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/products/RelatedItemsController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/controller/shipping/CustomShippingMethodsController.class b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/shipping/CustomShippingMethodsController.class
new file mode 100644
index 0000000..051b7e9
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/shipping/CustomShippingMethodsController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/controller/shipping/ShippingConfigsController.class b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/shipping/ShippingConfigsController.class
new file mode 100644
index 0000000..89a903f
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/shipping/ShippingConfigsController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/controller/shipping/ShippingMethodsController.class b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/shipping/ShippingMethodsController.class
new file mode 100644
index 0000000..76ba4be
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/shipping/ShippingMethodsController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/controller/shipping/ShippingOptionsController.class b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/shipping/ShippingOptionsController.class
new file mode 100644
index 0000000..d026d52
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/shipping/ShippingOptionsController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/controller/shipping/ShippingOriginController.class b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/shipping/ShippingOriginController.class
new file mode 100644
index 0000000..8015a65
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/shipping/ShippingOriginController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/controller/shipping/ShippingPackagingController.class b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/shipping/ShippingPackagingController.class
new file mode 100644
index 0000000..26b4b28
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/shipping/ShippingPackagingController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/controller/tax/TaxClassController.class b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/tax/TaxClassController.class
new file mode 100644
index 0000000..7b6db9d
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/tax/TaxClassController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/controller/tax/TaxConfigurationController.class b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/tax/TaxConfigurationController.class
new file mode 100644
index 0000000..9889b32
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/tax/TaxConfigurationController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/controller/tax/TaxRatesController.class b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/tax/TaxRatesController.class
new file mode 100644
index 0000000..9f00a93
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/tax/TaxRatesController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/controller/user/GroupsController.class b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/user/GroupsController.class
new file mode 100644
index 0000000..f99f46c
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/user/GroupsController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/controller/user/LoginController.class b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/user/LoginController.class
new file mode 100644
index 0000000..726e90a
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/user/LoginController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/controller/user/PermissionController.class b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/user/PermissionController.class
new file mode 100644
index 0000000..98d49db
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/user/PermissionController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/controller/user/SecurityController.class b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/user/SecurityController.class
new file mode 100644
index 0000000..5ffe861
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/user/SecurityController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/controller/user/UserController.class b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/user/UserController.class
new file mode 100644
index 0000000..4965802
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/controller/user/UserController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/model/catalog/Keyword.class b/sm-shop/target/classes/com/salesmanager/shop/admin/model/catalog/Keyword.class
new file mode 100644
index 0000000..3d7be67
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/model/catalog/Keyword.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/model/catalog/Manufacturer.class b/sm-shop/target/classes/com/salesmanager/shop/admin/model/catalog/Manufacturer.class
new file mode 100644
index 0000000..15ca4d1
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/model/catalog/Manufacturer.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/model/catalog/Product.class b/sm-shop/target/classes/com/salesmanager/shop/admin/model/catalog/Product.class
new file mode 100644
index 0000000..1b52c2b
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/model/catalog/Product.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/model/catalog/ProductPrice.class b/sm-shop/target/classes/com/salesmanager/shop/admin/model/catalog/ProductPrice.class
new file mode 100644
index 0000000..513584f
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/model/catalog/ProductPrice.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/model/content/ContentFiles.class b/sm-shop/target/classes/com/salesmanager/shop/admin/model/content/ContentFiles.class
new file mode 100644
index 0000000..f335049
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/model/content/ContentFiles.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/model/content/ProductImages.class b/sm-shop/target/classes/com/salesmanager/shop/admin/model/content/ProductImages.class
new file mode 100644
index 0000000..24487d1
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/model/content/ProductImages.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/model/customer/attribute/CustomerAttributes.class b/sm-shop/target/classes/com/salesmanager/shop/admin/model/customer/attribute/CustomerAttributes.class
new file mode 100644
index 0000000..5cb034f
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/model/customer/attribute/CustomerAttributes.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/model/customer/attribute/CustomerOption.class b/sm-shop/target/classes/com/salesmanager/shop/admin/model/customer/attribute/CustomerOption.class
new file mode 100644
index 0000000..dd154ad
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/model/customer/attribute/CustomerOption.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/model/customer/attribute/CustomerOptionValue.class b/sm-shop/target/classes/com/salesmanager/shop/admin/model/customer/attribute/CustomerOptionValue.class
new file mode 100644
index 0000000..9bbb495
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/model/customer/attribute/CustomerOptionValue.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/model/digital/ProductFiles.class b/sm-shop/target/classes/com/salesmanager/shop/admin/model/digital/ProductFiles.class
new file mode 100644
index 0000000..e31740f
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/model/digital/ProductFiles.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/model/merchant/StoreLanding.class b/sm-shop/target/classes/com/salesmanager/shop/admin/model/merchant/StoreLanding.class
new file mode 100644
index 0000000..3b66a72
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/model/merchant/StoreLanding.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/model/merchant/StoreLandingDescription.class b/sm-shop/target/classes/com/salesmanager/shop/admin/model/merchant/StoreLandingDescription.class
new file mode 100644
index 0000000..38b5123
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/model/merchant/StoreLandingDescription.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/model/orders/Order.class b/sm-shop/target/classes/com/salesmanager/shop/admin/model/orders/Order.class
new file mode 100644
index 0000000..994172b
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/model/orders/Order.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/model/orders/Refund.class b/sm-shop/target/classes/com/salesmanager/shop/admin/model/orders/Refund.class
new file mode 100644
index 0000000..26ac895
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/model/orders/Refund.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/model/reference/Size.class b/sm-shop/target/classes/com/salesmanager/shop/admin/model/reference/Size.class
new file mode 100644
index 0000000..a02c2eb
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/model/reference/Size.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/model/reference/Weight.class b/sm-shop/target/classes/com/salesmanager/shop/admin/model/reference/Weight.class
new file mode 100644
index 0000000..ae85458
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/model/reference/Weight.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/model/secutity/Password.class b/sm-shop/target/classes/com/salesmanager/shop/admin/model/secutity/Password.class
new file mode 100644
index 0000000..6db2b86
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/model/secutity/Password.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/model/userpassword/UserReset.class b/sm-shop/target/classes/com/salesmanager/shop/admin/model/userpassword/UserReset.class
new file mode 100644
index 0000000..6cdc157
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/model/userpassword/UserReset.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/model/web/ConfigListWrapper.class b/sm-shop/target/classes/com/salesmanager/shop/admin/model/web/ConfigListWrapper.class
new file mode 100644
index 0000000..bd15eb7
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/model/web/ConfigListWrapper.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/model/web/Menu.class b/sm-shop/target/classes/com/salesmanager/shop/admin/model/web/Menu.class
new file mode 100644
index 0000000..608d9ca
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/model/web/Menu.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/security/SecurityDataAccessException.class b/sm-shop/target/classes/com/salesmanager/shop/admin/security/SecurityDataAccessException.class
new file mode 100644
index 0000000..3cd910b
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/security/SecurityDataAccessException.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/security/SecurityQuestion.class b/sm-shop/target/classes/com/salesmanager/shop/admin/security/SecurityQuestion.class
new file mode 100644
index 0000000..a3eeefb
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/security/SecurityQuestion.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/security/UserAuthenticationSuccessHandler.class b/sm-shop/target/classes/com/salesmanager/shop/admin/security/UserAuthenticationSuccessHandler.class
new file mode 100644
index 0000000..eba8fab
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/security/UserAuthenticationSuccessHandler.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/security/UserServicesImpl.class b/sm-shop/target/classes/com/salesmanager/shop/admin/security/UserServicesImpl.class
new file mode 100644
index 0000000..3450063
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/security/UserServicesImpl.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/admin/security/WebUserServices.class b/sm-shop/target/classes/com/salesmanager/shop/admin/security/WebUserServices.class
new file mode 100644
index 0000000..25a80e6
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/admin/security/WebUserServices.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/constants/ApplicationConstants.class b/sm-shop/target/classes/com/salesmanager/shop/constants/ApplicationConstants.class
new file mode 100644
index 0000000..fdf1eaf
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/constants/ApplicationConstants.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/constants/Constants.class b/sm-shop/target/classes/com/salesmanager/shop/constants/Constants.class
new file mode 100644
index 0000000..67fbf42
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/constants/Constants.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/constants/EmailConstants.class b/sm-shop/target/classes/com/salesmanager/shop/constants/EmailConstants.class
new file mode 100644
index 0000000..ef4ea5b
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/constants/EmailConstants.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/controller/FilesController.class b/sm-shop/target/classes/com/salesmanager/shop/controller/FilesController.class
new file mode 100644
index 0000000..68ea705
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/controller/FilesController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/controller/ImagesController.class b/sm-shop/target/classes/com/salesmanager/shop/controller/ImagesController.class
new file mode 100644
index 0000000..c332795
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/controller/ImagesController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/controller/ReferenceController.class b/sm-shop/target/classes/com/salesmanager/shop/controller/ReferenceController.class
new file mode 100644
index 0000000..6368946
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/controller/ReferenceController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/filter/AdminFilter.class b/sm-shop/target/classes/com/salesmanager/shop/filter/AdminFilter.class
new file mode 100644
index 0000000..c2d4f6e
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/filter/AdminFilter.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/filter/StoreFilter.class b/sm-shop/target/classes/com/salesmanager/shop/filter/StoreFilter.class
new file mode 100644
index 0000000..30b124f
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/filter/StoreFilter.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/init/data/InitData.class b/sm-shop/target/classes/com/salesmanager/shop/init/data/InitData.class
new file mode 100644
index 0000000..f6abb78
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/init/data/InitData.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/init/data/InitializationLoader.class b/sm-shop/target/classes/com/salesmanager/shop/init/data/InitializationLoader.class
new file mode 100644
index 0000000..5138342
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/init/data/InitializationLoader.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/init/data/InitStoreData.class b/sm-shop/target/classes/com/salesmanager/shop/init/data/InitStoreData.class
new file mode 100644
index 0000000..23d7fec
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/init/data/InitStoreData.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/catalog/CatalogEntity.class b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/CatalogEntity.class
new file mode 100644
index 0000000..246e6d3
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/CatalogEntity.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/catalog/category/Category.class b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/category/Category.class
new file mode 100644
index 0000000..7d5ce70
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/category/Category.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/catalog/category/CategoryDescription.class b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/category/CategoryDescription.class
new file mode 100644
index 0000000..3abc186
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/category/CategoryDescription.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/catalog/category/CategoryEntity.class b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/category/CategoryEntity.class
new file mode 100644
index 0000000..2c34c34
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/category/CategoryEntity.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/catalog/category/PersistableCategory.class b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/category/PersistableCategory.class
new file mode 100644
index 0000000..8e94ff6
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/category/PersistableCategory.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/catalog/category/ReadableCategory.class b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/category/ReadableCategory.class
new file mode 100644
index 0000000..209eb3e
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/category/ReadableCategory.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/catalog/manufacturer/Manufacturer.class b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/manufacturer/Manufacturer.class
new file mode 100644
index 0000000..4650422
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/manufacturer/Manufacturer.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/catalog/manufacturer/ManufacturerDescription.class b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/manufacturer/ManufacturerDescription.class
new file mode 100644
index 0000000..f45d7b0
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/manufacturer/ManufacturerDescription.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/catalog/manufacturer/ManufacturerEntity.class b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/manufacturer/ManufacturerEntity.class
new file mode 100644
index 0000000..45e38ec
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/manufacturer/ManufacturerEntity.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/catalog/manufacturer/PersistableManufacturer.class b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/manufacturer/PersistableManufacturer.class
new file mode 100644
index 0000000..053ada8
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/manufacturer/PersistableManufacturer.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/catalog/manufacturer/ReadableManufacturer.class b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/manufacturer/ReadableManufacturer.class
new file mode 100644
index 0000000..5182fa6
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/manufacturer/ReadableManufacturer.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/attribute/PersistableProductAttribute.class b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/attribute/PersistableProductAttribute.class
new file mode 100644
index 0000000..b01ffdd
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/attribute/PersistableProductAttribute.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/attribute/PersistableProductOption.class b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/attribute/PersistableProductOption.class
new file mode 100644
index 0000000..97b2016
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/attribute/PersistableProductOption.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/attribute/PersistableProductOptionValue.class b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/attribute/PersistableProductOptionValue.class
new file mode 100644
index 0000000..d0d4a4e
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/attribute/PersistableProductOptionValue.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/attribute/ProductAttribute.class b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/attribute/ProductAttribute.class
new file mode 100644
index 0000000..8a4e7f2
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/attribute/ProductAttribute.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/attribute/ProductAttributeEntity.class b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/attribute/ProductAttributeEntity.class
new file mode 100644
index 0000000..d2d815e
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/attribute/ProductAttributeEntity.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/attribute/ProductOption.class b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/attribute/ProductOption.class
new file mode 100644
index 0000000..7a2b9b8
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/attribute/ProductOption.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/attribute/ProductOptionDescription.class b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/attribute/ProductOptionDescription.class
new file mode 100644
index 0000000..21eeacb
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/attribute/ProductOptionDescription.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/attribute/ProductOptionEntity.class b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/attribute/ProductOptionEntity.class
new file mode 100644
index 0000000..8c8a294
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/attribute/ProductOptionEntity.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/attribute/ProductOptionValue.class b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/attribute/ProductOptionValue.class
new file mode 100644
index 0000000..444a260
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/attribute/ProductOptionValue.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/attribute/ProductOptionValueDescription.class b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/attribute/ProductOptionValueDescription.class
new file mode 100644
index 0000000..373520a
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/attribute/ProductOptionValueDescription.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/attribute/ProductOptionValueEntity.class b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/attribute/ProductOptionValueEntity.class
new file mode 100644
index 0000000..1cc6c3f
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/attribute/ProductOptionValueEntity.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/attribute/ReadableProductAttribute.class b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/attribute/ReadableProductAttribute.class
new file mode 100644
index 0000000..0618e8c
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/attribute/ReadableProductAttribute.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/PersistableImage.class b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/PersistableImage.class
new file mode 100644
index 0000000..35db0ed
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/PersistableImage.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/PersistableProduct.class b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/PersistableProduct.class
new file mode 100644
index 0000000..b671f10
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/PersistableProduct.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/PersistableProductPrice.class b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/PersistableProductPrice.class
new file mode 100644
index 0000000..3432339
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/PersistableProductPrice.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/PersistableProductReview.class b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/PersistableProductReview.class
new file mode 100644
index 0000000..5b6398a
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/PersistableProductReview.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/Product.class b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/Product.class
new file mode 100644
index 0000000..6da3370
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/Product.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/ProductDescription.class b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/ProductDescription.class
new file mode 100644
index 0000000..541f4e0
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/ProductDescription.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/ProductEntity.class b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/ProductEntity.class
new file mode 100644
index 0000000..03a7829
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/ProductEntity.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/ProductPrice.class b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/ProductPrice.class
new file mode 100644
index 0000000..255c3ce
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/ProductPrice.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/ProductPriceEntity.class b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/ProductPriceEntity.class
new file mode 100644
index 0000000..295a9cc
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/ProductPriceEntity.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/ProductReviewEntity.class b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/ProductReviewEntity.class
new file mode 100644
index 0000000..8596372
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/ProductReviewEntity.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/ReadableProduct.class b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/ReadableProduct.class
new file mode 100644
index 0000000..61c0af9
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/ReadableProduct.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/ReadableProductList.class b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/ReadableProductList.class
new file mode 100644
index 0000000..3ecaff5
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/ReadableProductList.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/ReadableProductPrice.class b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/ReadableProductPrice.class
new file mode 100644
index 0000000..1f5d877
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/ReadableProductPrice.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/ReadableProductReview.class b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/ReadableProductReview.class
new file mode 100644
index 0000000..256553f
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/ReadableProductReview.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/RelatedProduct.class b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/RelatedProduct.class
new file mode 100644
index 0000000..ab02aac
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/product/RelatedProduct.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/catalog/ProductList.class b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/ProductList.class
new file mode 100644
index 0000000..a74dda4
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/ProductList.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/catalog/ReadableImage.class b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/ReadableImage.class
new file mode 100644
index 0000000..45d654a
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/ReadableImage.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/catalog/SearchProductList.class b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/SearchProductList.class
new file mode 100644
index 0000000..0a65eac
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/catalog/SearchProductList.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/customer/Address.class b/sm-shop/target/classes/com/salesmanager/shop/model/customer/Address.class
new file mode 100644
index 0000000..4c862be
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/customer/Address.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/customer/AnonymousCustomer.class b/sm-shop/target/classes/com/salesmanager/shop/model/customer/AnonymousCustomer.class
new file mode 100644
index 0000000..e871bc0
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/customer/AnonymousCustomer.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/customer/attribute/CustomerAttribute.class b/sm-shop/target/classes/com/salesmanager/shop/model/customer/attribute/CustomerAttribute.class
new file mode 100644
index 0000000..cf68e7e
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/customer/attribute/CustomerAttribute.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/customer/attribute/CustomerAttributeEntity.class b/sm-shop/target/classes/com/salesmanager/shop/model/customer/attribute/CustomerAttributeEntity.class
new file mode 100644
index 0000000..0f001c9
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/customer/attribute/CustomerAttributeEntity.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/customer/attribute/CustomerOption.class b/sm-shop/target/classes/com/salesmanager/shop/model/customer/attribute/CustomerOption.class
new file mode 100644
index 0000000..d5cc42c
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/customer/attribute/CustomerOption.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/customer/attribute/CustomerOptionDescription.class b/sm-shop/target/classes/com/salesmanager/shop/model/customer/attribute/CustomerOptionDescription.class
new file mode 100644
index 0000000..5b6187b
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/customer/attribute/CustomerOptionDescription.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/customer/attribute/CustomerOptionEntity.class b/sm-shop/target/classes/com/salesmanager/shop/model/customer/attribute/CustomerOptionEntity.class
new file mode 100644
index 0000000..22a7359
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/customer/attribute/CustomerOptionEntity.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/customer/attribute/CustomerOptionValue.class b/sm-shop/target/classes/com/salesmanager/shop/model/customer/attribute/CustomerOptionValue.class
new file mode 100644
index 0000000..e796870
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/customer/attribute/CustomerOptionValue.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/customer/attribute/CustomerOptionValueDescription.class b/sm-shop/target/classes/com/salesmanager/shop/model/customer/attribute/CustomerOptionValueDescription.class
new file mode 100644
index 0000000..6788d06
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/customer/attribute/CustomerOptionValueDescription.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/customer/attribute/CustomerOptionValueEntity.class b/sm-shop/target/classes/com/salesmanager/shop/model/customer/attribute/CustomerOptionValueEntity.class
new file mode 100644
index 0000000..bbc78cd
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/customer/attribute/CustomerOptionValueEntity.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/customer/attribute/PersistableCustomerAttribute.class b/sm-shop/target/classes/com/salesmanager/shop/model/customer/attribute/PersistableCustomerAttribute.class
new file mode 100644
index 0000000..fb72443
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/customer/attribute/PersistableCustomerAttribute.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/customer/attribute/PersistableCustomerOption.class b/sm-shop/target/classes/com/salesmanager/shop/model/customer/attribute/PersistableCustomerOption.class
new file mode 100644
index 0000000..d630ecf
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/customer/attribute/PersistableCustomerOption.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/customer/attribute/PersistableCustomerOptionValue.class b/sm-shop/target/classes/com/salesmanager/shop/model/customer/attribute/PersistableCustomerOptionValue.class
new file mode 100644
index 0000000..7db607c
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/customer/attribute/PersistableCustomerOptionValue.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/customer/attribute/ReadableCustomerAttribute.class b/sm-shop/target/classes/com/salesmanager/shop/model/customer/attribute/ReadableCustomerAttribute.class
new file mode 100644
index 0000000..23f6aa8
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/customer/attribute/ReadableCustomerAttribute.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/customer/attribute/ReadableCustomerOption.class b/sm-shop/target/classes/com/salesmanager/shop/model/customer/attribute/ReadableCustomerOption.class
new file mode 100644
index 0000000..01ad83c
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/customer/attribute/ReadableCustomerOption.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/customer/attribute/ReadableCustomerOptionValue.class b/sm-shop/target/classes/com/salesmanager/shop/model/customer/attribute/ReadableCustomerOptionValue.class
new file mode 100644
index 0000000..bc6b5d6
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/customer/attribute/ReadableCustomerOptionValue.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/customer/Customer.class b/sm-shop/target/classes/com/salesmanager/shop/model/customer/Customer.class
new file mode 100644
index 0000000..441008c
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/customer/Customer.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/customer/CustomerEntity.class b/sm-shop/target/classes/com/salesmanager/shop/model/customer/CustomerEntity.class
new file mode 100644
index 0000000..7291839
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/customer/CustomerEntity.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/customer/CustomerPassword.class b/sm-shop/target/classes/com/salesmanager/shop/model/customer/CustomerPassword.class
new file mode 100644
index 0000000..5a2ae9d
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/customer/CustomerPassword.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/customer/DeliveryEntity.class b/sm-shop/target/classes/com/salesmanager/shop/model/customer/DeliveryEntity.class
new file mode 100644
index 0000000..e36492a
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/customer/DeliveryEntity.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/customer/PersistableCustomer.class b/sm-shop/target/classes/com/salesmanager/shop/model/customer/PersistableCustomer.class
new file mode 100644
index 0000000..899a5cf
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/customer/PersistableCustomer.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/customer/ReadableCustomer.class b/sm-shop/target/classes/com/salesmanager/shop/model/customer/ReadableCustomer.class
new file mode 100644
index 0000000..c094775
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/customer/ReadableCustomer.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/customer/ReadableDelivery.class b/sm-shop/target/classes/com/salesmanager/shop/model/customer/ReadableDelivery.class
new file mode 100644
index 0000000..835ec74
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/customer/ReadableDelivery.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/customer/SecuredCustomer.class b/sm-shop/target/classes/com/salesmanager/shop/model/customer/SecuredCustomer.class
new file mode 100644
index 0000000..f1ad49c
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/customer/SecuredCustomer.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/customer/SecuredShopPersistableCustomer.class b/sm-shop/target/classes/com/salesmanager/shop/model/customer/SecuredShopPersistableCustomer.class
new file mode 100644
index 0000000..a361aa6
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/customer/SecuredShopPersistableCustomer.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/Entity.class b/sm-shop/target/classes/com/salesmanager/shop/model/Entity.class
new file mode 100644
index 0000000..964cbb9
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/Entity.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/order/CartModificationException.class b/sm-shop/target/classes/com/salesmanager/shop/model/order/CartModificationException.class
new file mode 100644
index 0000000..e95616b
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/order/CartModificationException.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/order/Order.class b/sm-shop/target/classes/com/salesmanager/shop/model/order/Order.class
new file mode 100644
index 0000000..70b6d02
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/order/Order.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/order/OrderEntity.class b/sm-shop/target/classes/com/salesmanager/shop/model/order/OrderEntity.class
new file mode 100644
index 0000000..eecae48
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/order/OrderEntity.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/order/OrderProduct.class b/sm-shop/target/classes/com/salesmanager/shop/model/order/OrderProduct.class
new file mode 100644
index 0000000..6fdaad4
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/order/OrderProduct.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/order/OrderProductEntity.class b/sm-shop/target/classes/com/salesmanager/shop/model/order/OrderProductEntity.class
new file mode 100644
index 0000000..887abf7
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/order/OrderProductEntity.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/order/OrderTotal.class b/sm-shop/target/classes/com/salesmanager/shop/model/order/OrderTotal.class
new file mode 100644
index 0000000..9f6b2b3
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/order/OrderTotal.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/order/PersistableOrder.class b/sm-shop/target/classes/com/salesmanager/shop/model/order/PersistableOrder.class
new file mode 100644
index 0000000..989b7ea
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/order/PersistableOrder.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/order/PersistableOrderProduct.class b/sm-shop/target/classes/com/salesmanager/shop/model/order/PersistableOrderProduct.class
new file mode 100644
index 0000000..b7f90f0
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/order/PersistableOrderProduct.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/order/ReadableOrder.class b/sm-shop/target/classes/com/salesmanager/shop/model/order/ReadableOrder.class
new file mode 100644
index 0000000..de13ef9
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/order/ReadableOrder.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/order/ReadableOrderList.class b/sm-shop/target/classes/com/salesmanager/shop/model/order/ReadableOrderList.class
new file mode 100644
index 0000000..7903fd3
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/order/ReadableOrderList.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/order/ReadableOrderProduct.class b/sm-shop/target/classes/com/salesmanager/shop/model/order/ReadableOrderProduct.class
new file mode 100644
index 0000000..7356d82
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/order/ReadableOrderProduct.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/order/ReadableOrderProductAttribute.class b/sm-shop/target/classes/com/salesmanager/shop/model/order/ReadableOrderProductAttribute.class
new file mode 100644
index 0000000..44befa5
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/order/ReadableOrderProductAttribute.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/order/ReadableOrderProductDownload.class b/sm-shop/target/classes/com/salesmanager/shop/model/order/ReadableOrderProductDownload.class
new file mode 100644
index 0000000..d7bcead
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/order/ReadableOrderProductDownload.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/order/ReadableOrderTotal.class b/sm-shop/target/classes/com/salesmanager/shop/model/order/ReadableOrderTotal.class
new file mode 100644
index 0000000..5c281ce
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/order/ReadableOrderTotal.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/order/ReadableShippingSummary.class b/sm-shop/target/classes/com/salesmanager/shop/model/order/ReadableShippingSummary.class
new file mode 100644
index 0000000..f872a37
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/order/ReadableShippingSummary.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/order/ReadableShopOrder.class b/sm-shop/target/classes/com/salesmanager/shop/model/order/ReadableShopOrder.class
new file mode 100644
index 0000000..202df99
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/order/ReadableShopOrder.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/order/ShopOrder.class b/sm-shop/target/classes/com/salesmanager/shop/model/order/ShopOrder.class
new file mode 100644
index 0000000..35cdc8f
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/order/ShopOrder.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/ServiceEntity.class b/sm-shop/target/classes/com/salesmanager/shop/model/ServiceEntity.class
new file mode 100644
index 0000000..599b06d
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/ServiceEntity.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/shop/Breadcrumb.class b/sm-shop/target/classes/com/salesmanager/shop/model/shop/Breadcrumb.class
new file mode 100644
index 0000000..17c002a
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/shop/Breadcrumb.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/shop/BreadcrumbItem.class b/sm-shop/target/classes/com/salesmanager/shop/model/shop/BreadcrumbItem.class
new file mode 100644
index 0000000..35064ef
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/shop/BreadcrumbItem.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/shop/BreadcrumbItemType.class b/sm-shop/target/classes/com/salesmanager/shop/model/shop/BreadcrumbItemType.class
new file mode 100644
index 0000000..265c808
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/shop/BreadcrumbItemType.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/shop/ContactForm.class b/sm-shop/target/classes/com/salesmanager/shop/model/shop/ContactForm.class
new file mode 100644
index 0000000..ea84996
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/shop/ContactForm.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/shop/MerchantStoreEntity.class b/sm-shop/target/classes/com/salesmanager/shop/model/shop/MerchantStoreEntity.class
new file mode 100644
index 0000000..ac92f65
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/shop/MerchantStoreEntity.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/shop/PageInformation.class b/sm-shop/target/classes/com/salesmanager/shop/model/shop/PageInformation.class
new file mode 100644
index 0000000..6a2eb34
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/shop/PageInformation.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/shop/ReadableMerchantStore.class b/sm-shop/target/classes/com/salesmanager/shop/model/shop/ReadableMerchantStore.class
new file mode 100644
index 0000000..8b25705
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/shop/ReadableMerchantStore.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/ShopEntity.class b/sm-shop/target/classes/com/salesmanager/shop/model/ShopEntity.class
new file mode 100644
index 0000000..287400e
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/ShopEntity.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/shoppingcart/ShoppingCartAttribute.class b/sm-shop/target/classes/com/salesmanager/shop/model/shoppingcart/ShoppingCartAttribute.class
new file mode 100644
index 0000000..36cd2bc
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/shoppingcart/ShoppingCartAttribute.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/shoppingcart/ShoppingCartData.class b/sm-shop/target/classes/com/salesmanager/shop/model/shoppingcart/ShoppingCartData.class
new file mode 100644
index 0000000..15c81b7
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/shoppingcart/ShoppingCartData.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/model/shoppingcart/ShoppingCartItem.class b/sm-shop/target/classes/com/salesmanager/shop/model/shoppingcart/ShoppingCartItem.class
new file mode 100644
index 0000000..4e6b498
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/model/shoppingcart/ShoppingCartItem.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/populator/catalog/PersistableCategoryPopulator.class b/sm-shop/target/classes/com/salesmanager/shop/populator/catalog/PersistableCategoryPopulator.class
new file mode 100644
index 0000000..9ec0813
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/populator/catalog/PersistableCategoryPopulator.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/populator/catalog/PersistableProductOptionPopulator.class b/sm-shop/target/classes/com/salesmanager/shop/populator/catalog/PersistableProductOptionPopulator.class
new file mode 100644
index 0000000..24dc92a
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/populator/catalog/PersistableProductOptionPopulator.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/populator/catalog/PersistableProductOptionValuePopulator.class b/sm-shop/target/classes/com/salesmanager/shop/populator/catalog/PersistableProductOptionValuePopulator.class
new file mode 100644
index 0000000..966f8de
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/populator/catalog/PersistableProductOptionValuePopulator.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/populator/catalog/PersistableProductPopulator.class b/sm-shop/target/classes/com/salesmanager/shop/populator/catalog/PersistableProductPopulator.class
new file mode 100644
index 0000000..ccdd936
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/populator/catalog/PersistableProductPopulator.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/populator/catalog/PersistableProductReviewPopulator.class b/sm-shop/target/classes/com/salesmanager/shop/populator/catalog/PersistableProductReviewPopulator.class
new file mode 100644
index 0000000..439f0af
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/populator/catalog/PersistableProductReviewPopulator.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/populator/catalog/ReadableCategoryPopulator.class b/sm-shop/target/classes/com/salesmanager/shop/populator/catalog/ReadableCategoryPopulator.class
new file mode 100644
index 0000000..3f8e535
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/populator/catalog/ReadableCategoryPopulator.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/populator/catalog/ReadableFinalPricePopulator.class b/sm-shop/target/classes/com/salesmanager/shop/populator/catalog/ReadableFinalPricePopulator.class
new file mode 100644
index 0000000..934a401
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/populator/catalog/ReadableFinalPricePopulator.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/populator/catalog/ReadableProductPopulator.class b/sm-shop/target/classes/com/salesmanager/shop/populator/catalog/ReadableProductPopulator.class
new file mode 100644
index 0000000..5d5785d
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/populator/catalog/ReadableProductPopulator.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/populator/catalog/ReadableProductPricePopulator.class b/sm-shop/target/classes/com/salesmanager/shop/populator/catalog/ReadableProductPricePopulator.class
new file mode 100644
index 0000000..be99f14
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/populator/catalog/ReadableProductPricePopulator.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/populator/catalog/ReadableProductReviewPopulator.class b/sm-shop/target/classes/com/salesmanager/shop/populator/catalog/ReadableProductReviewPopulator.class
new file mode 100644
index 0000000..f5147be
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/populator/catalog/ReadableProductReviewPopulator.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/populator/customer/CustomerBillingAddressPopulator.class b/sm-shop/target/classes/com/salesmanager/shop/populator/customer/CustomerBillingAddressPopulator.class
new file mode 100644
index 0000000..f1d4b5c
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/populator/customer/CustomerBillingAddressPopulator.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/populator/customer/CustomerDeliveryAddressPopulator.class b/sm-shop/target/classes/com/salesmanager/shop/populator/customer/CustomerDeliveryAddressPopulator.class
new file mode 100644
index 0000000..e6939b6
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/populator/customer/CustomerDeliveryAddressPopulator.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/populator/customer/CustomerEntityPopulator.class b/sm-shop/target/classes/com/salesmanager/shop/populator/customer/CustomerEntityPopulator.class
new file mode 100644
index 0000000..9b33d7a
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/populator/customer/CustomerEntityPopulator.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/populator/customer/CustomerOptionPopulator.class b/sm-shop/target/classes/com/salesmanager/shop/populator/customer/CustomerOptionPopulator.class
new file mode 100644
index 0000000..a46d4a3
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/populator/customer/CustomerOptionPopulator.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/populator/customer/CustomerPopulator.class b/sm-shop/target/classes/com/salesmanager/shop/populator/customer/CustomerPopulator.class
new file mode 100644
index 0000000..ca1c07f
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/populator/customer/CustomerPopulator.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/populator/customer/PersistableCustomerBillingAddressPopulator.class b/sm-shop/target/classes/com/salesmanager/shop/populator/customer/PersistableCustomerBillingAddressPopulator.class
new file mode 100644
index 0000000..adc1d12
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/populator/customer/PersistableCustomerBillingAddressPopulator.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/populator/customer/PersistableCustomerOptionPopulator.class b/sm-shop/target/classes/com/salesmanager/shop/populator/customer/PersistableCustomerOptionPopulator.class
new file mode 100644
index 0000000..b842a15
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/populator/customer/PersistableCustomerOptionPopulator.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/populator/customer/PersistableCustomerOptionValuePopulator.class b/sm-shop/target/classes/com/salesmanager/shop/populator/customer/PersistableCustomerOptionValuePopulator.class
new file mode 100644
index 0000000..9337d1a
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/populator/customer/PersistableCustomerOptionValuePopulator.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/populator/customer/PersistableCustomerPopulator.class b/sm-shop/target/classes/com/salesmanager/shop/populator/customer/PersistableCustomerPopulator.class
new file mode 100644
index 0000000..f66dc11
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/populator/customer/PersistableCustomerPopulator.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/populator/customer/PersistableCustomerShippingAddressPopulator.class b/sm-shop/target/classes/com/salesmanager/shop/populator/customer/PersistableCustomerShippingAddressPopulator.class
new file mode 100644
index 0000000..e2cf47d
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/populator/customer/PersistableCustomerShippingAddressPopulator.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/populator/customer/ReadableCustomerDeliveryAddressPopulator.class b/sm-shop/target/classes/com/salesmanager/shop/populator/customer/ReadableCustomerDeliveryAddressPopulator.class
new file mode 100644
index 0000000..a72081a
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/populator/customer/ReadableCustomerDeliveryAddressPopulator.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/populator/customer/ReadableCustomerPopulator.class b/sm-shop/target/classes/com/salesmanager/shop/populator/customer/ReadableCustomerPopulator.class
new file mode 100644
index 0000000..76a40b5
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/populator/customer/ReadableCustomerPopulator.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/populator/manufacturer/PersistableManufacturerPopulator.class b/sm-shop/target/classes/com/salesmanager/shop/populator/manufacturer/PersistableManufacturerPopulator.class
new file mode 100644
index 0000000..e5d25bb
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/populator/manufacturer/PersistableManufacturerPopulator.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/populator/manufacturer/ReadableManufacturerPopulator.class b/sm-shop/target/classes/com/salesmanager/shop/populator/manufacturer/ReadableManufacturerPopulator.class
new file mode 100644
index 0000000..98341a7
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/populator/manufacturer/ReadableManufacturerPopulator.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/populator/order/OrderProductPopulator.class b/sm-shop/target/classes/com/salesmanager/shop/populator/order/OrderProductPopulator.class
new file mode 100644
index 0000000..e312fba
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/populator/order/OrderProductPopulator.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/populator/order/PersistableOrderPopulator.class b/sm-shop/target/classes/com/salesmanager/shop/populator/order/PersistableOrderPopulator.class
new file mode 100644
index 0000000..712cdca
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/populator/order/PersistableOrderPopulator.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/populator/order/PersistableOrderProductPopulator.class b/sm-shop/target/classes/com/salesmanager/shop/populator/order/PersistableOrderProductPopulator.class
new file mode 100644
index 0000000..d07f156
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/populator/order/PersistableOrderProductPopulator.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/populator/order/ReadableOrderPopulator.class b/sm-shop/target/classes/com/salesmanager/shop/populator/order/ReadableOrderPopulator.class
new file mode 100644
index 0000000..3dc0935
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/populator/order/ReadableOrderPopulator.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/populator/order/ReadableOrderProductDownloadPopulator.class b/sm-shop/target/classes/com/salesmanager/shop/populator/order/ReadableOrderProductDownloadPopulator.class
new file mode 100644
index 0000000..cca8e33
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/populator/order/ReadableOrderProductDownloadPopulator.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/populator/order/ReadableOrderProductPopulator.class b/sm-shop/target/classes/com/salesmanager/shop/populator/order/ReadableOrderProductPopulator.class
new file mode 100644
index 0000000..1c53de5
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/populator/order/ReadableOrderProductPopulator.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/populator/order/ReadableOrderTotalPopulator.class b/sm-shop/target/classes/com/salesmanager/shop/populator/order/ReadableOrderTotalPopulator.class
new file mode 100644
index 0000000..c79301a
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/populator/order/ReadableOrderTotalPopulator.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/populator/order/ReadableShippingSummaryPopulator.class b/sm-shop/target/classes/com/salesmanager/shop/populator/order/ReadableShippingSummaryPopulator.class
new file mode 100644
index 0000000..3bd314a
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/populator/order/ReadableShippingSummaryPopulator.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/populator/order/ReadableShopOrderPopulator.class b/sm-shop/target/classes/com/salesmanager/shop/populator/order/ReadableShopOrderPopulator.class
new file mode 100644
index 0000000..768ab21
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/populator/order/ReadableShopOrderPopulator.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/populator/order/ShoppingCartItemPopulator.class b/sm-shop/target/classes/com/salesmanager/shop/populator/order/ShoppingCartItemPopulator.class
new file mode 100644
index 0000000..f480c54
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/populator/order/ShoppingCartItemPopulator.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/populator/shoppingCart/ShoppingCartDataPopulator.class b/sm-shop/target/classes/com/salesmanager/shop/populator/shoppingCart/ShoppingCartDataPopulator.class
new file mode 100644
index 0000000..259ac97
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/populator/shoppingCart/ShoppingCartDataPopulator.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/populator/shoppingCart/ShoppingCartModelPopulator.class b/sm-shop/target/classes/com/salesmanager/shop/populator/shoppingCart/ShoppingCartModelPopulator.class
new file mode 100644
index 0000000..1450ae9
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/populator/shoppingCart/ShoppingCartModelPopulator.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/populator/store/ReadableMerchantStorePopulator.class b/sm-shop/target/classes/com/salesmanager/shop/populator/store/ReadableMerchantStorePopulator.class
new file mode 100644
index 0000000..2fcee13
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/populator/store/ReadableMerchantStorePopulator.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/store/controller/AbstractController.class b/sm-shop/target/classes/com/salesmanager/shop/store/controller/AbstractController.class
new file mode 100644
index 0000000..42971f5
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/store/controller/AbstractController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/store/controller/category/facade/CategoryFacade.class b/sm-shop/target/classes/com/salesmanager/shop/store/controller/category/facade/CategoryFacade.class
new file mode 100644
index 0000000..ac3822e
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/store/controller/category/facade/CategoryFacade.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/store/controller/category/facade/CategoryFacadeImpl.class b/sm-shop/target/classes/com/salesmanager/shop/store/controller/category/facade/CategoryFacadeImpl.class
new file mode 100644
index 0000000..73fb809
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/store/controller/category/facade/CategoryFacadeImpl.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/store/controller/category/ShoppingCategoryController.class b/sm-shop/target/classes/com/salesmanager/shop/store/controller/category/ShoppingCategoryController.class
new file mode 100644
index 0000000..b6e37e0
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/store/controller/category/ShoppingCategoryController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/store/controller/content/ShopContentController.class b/sm-shop/target/classes/com/salesmanager/shop/store/controller/content/ShopContentController.class
new file mode 100644
index 0000000..5830047
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/store/controller/content/ShopContentController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/store/controller/ControllerConstants$Tiles$Category.class b/sm-shop/target/classes/com/salesmanager/shop/store/controller/ControllerConstants$Tiles$Category.class
new file mode 100644
index 0000000..ea3b2c0
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/store/controller/ControllerConstants$Tiles$Category.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/store/controller/ControllerConstants$Tiles$Checkout.class b/sm-shop/target/classes/com/salesmanager/shop/store/controller/ControllerConstants$Tiles$Checkout.class
new file mode 100644
index 0000000..380a640
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/store/controller/ControllerConstants$Tiles$Checkout.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/store/controller/ControllerConstants$Tiles$Content.class b/sm-shop/target/classes/com/salesmanager/shop/store/controller/ControllerConstants$Tiles$Content.class
new file mode 100644
index 0000000..773c7c2
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/store/controller/ControllerConstants$Tiles$Content.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/store/controller/ControllerConstants$Tiles$Customer.class b/sm-shop/target/classes/com/salesmanager/shop/store/controller/ControllerConstants$Tiles$Customer.class
new file mode 100644
index 0000000..d97e443
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/store/controller/ControllerConstants$Tiles$Customer.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/store/controller/ControllerConstants$Tiles$Error.class b/sm-shop/target/classes/com/salesmanager/shop/store/controller/ControllerConstants$Tiles$Error.class
new file mode 100644
index 0000000..d0bc82c
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/store/controller/ControllerConstants$Tiles$Error.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/store/controller/ControllerConstants$Tiles$Items.class b/sm-shop/target/classes/com/salesmanager/shop/store/controller/ControllerConstants$Tiles$Items.class
new file mode 100644
index 0000000..24fa838
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/store/controller/ControllerConstants$Tiles$Items.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/store/controller/ControllerConstants$Tiles$Merchant.class b/sm-shop/target/classes/com/salesmanager/shop/store/controller/ControllerConstants$Tiles$Merchant.class
new file mode 100644
index 0000000..942140a
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/store/controller/ControllerConstants$Tiles$Merchant.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/store/controller/ControllerConstants$Tiles$Pages.class b/sm-shop/target/classes/com/salesmanager/shop/store/controller/ControllerConstants$Tiles$Pages.class
new file mode 100644
index 0000000..278c00b
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/store/controller/ControllerConstants$Tiles$Pages.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/store/controller/ControllerConstants$Tiles$Product.class b/sm-shop/target/classes/com/salesmanager/shop/store/controller/ControllerConstants$Tiles$Product.class
new file mode 100644
index 0000000..80f47b2
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/store/controller/ControllerConstants$Tiles$Product.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/store/controller/ControllerConstants$Tiles$Search.class b/sm-shop/target/classes/com/salesmanager/shop/store/controller/ControllerConstants$Tiles$Search.class
new file mode 100644
index 0000000..1e12f35
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/store/controller/ControllerConstants$Tiles$Search.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/store/controller/ControllerConstants$Tiles$ShoppingCart.class b/sm-shop/target/classes/com/salesmanager/shop/store/controller/ControllerConstants$Tiles$ShoppingCart.class
new file mode 100644
index 0000000..1f91034
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/store/controller/ControllerConstants$Tiles$ShoppingCart.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/store/controller/ControllerConstants$Tiles.class b/sm-shop/target/classes/com/salesmanager/shop/store/controller/ControllerConstants$Tiles.class
new file mode 100644
index 0000000..3a92206
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/store/controller/ControllerConstants$Tiles.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/store/controller/ControllerConstants$Views$Controllers$Registration.class b/sm-shop/target/classes/com/salesmanager/shop/store/controller/ControllerConstants$Views$Controllers$Registration.class
new file mode 100644
index 0000000..d0e8390
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/store/controller/ControllerConstants$Views$Controllers$Registration.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/store/controller/ControllerConstants$Views$Controllers.class b/sm-shop/target/classes/com/salesmanager/shop/store/controller/ControllerConstants$Views$Controllers.class
new file mode 100644
index 0000000..df8b373
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/store/controller/ControllerConstants$Views$Controllers.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/store/controller/ControllerConstants$Views.class b/sm-shop/target/classes/com/salesmanager/shop/store/controller/ControllerConstants$Views.class
new file mode 100644
index 0000000..d069c45
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/store/controller/ControllerConstants$Views.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/store/controller/ControllerConstants.class b/sm-shop/target/classes/com/salesmanager/shop/store/controller/ControllerConstants.class
new file mode 100644
index 0000000..5c34f1c
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/store/controller/ControllerConstants.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/store/controller/customer/CustomerAccountController.class b/sm-shop/target/classes/com/salesmanager/shop/store/controller/customer/CustomerAccountController.class
new file mode 100644
index 0000000..3b4031c
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/store/controller/customer/CustomerAccountController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/store/controller/customer/CustomerDashboardController.class b/sm-shop/target/classes/com/salesmanager/shop/store/controller/customer/CustomerDashboardController.class
new file mode 100644
index 0000000..4d159f4
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/store/controller/customer/CustomerDashboardController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/store/controller/customer/CustomerLoginController.class b/sm-shop/target/classes/com/salesmanager/shop/store/controller/customer/CustomerLoginController.class
new file mode 100644
index 0000000..f2a5d9c
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/store/controller/customer/CustomerLoginController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/store/controller/customer/CustomerOrdersController.class b/sm-shop/target/classes/com/salesmanager/shop/store/controller/customer/CustomerOrdersController.class
new file mode 100644
index 0000000..8b5929e
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/store/controller/customer/CustomerOrdersController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/store/controller/customer/CustomerProductReviewController.class b/sm-shop/target/classes/com/salesmanager/shop/store/controller/customer/CustomerProductReviewController.class
new file mode 100644
index 0000000..49e54b9
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/store/controller/customer/CustomerProductReviewController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/store/controller/customer/CustomerRegistrationController.class b/sm-shop/target/classes/com/salesmanager/shop/store/controller/customer/CustomerRegistrationController.class
new file mode 100644
index 0000000..65fa3e9
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/store/controller/customer/CustomerRegistrationController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/store/controller/customer/facade/CustomerFacade.class b/sm-shop/target/classes/com/salesmanager/shop/store/controller/customer/facade/CustomerFacade.class
new file mode 100644
index 0000000..ef2fe6e
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/store/controller/customer/facade/CustomerFacade.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/store/controller/customer/facade/CustomerFacadeImpl.class b/sm-shop/target/classes/com/salesmanager/shop/store/controller/customer/facade/CustomerFacadeImpl.class
new file mode 100644
index 0000000..0309007
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/store/controller/customer/facade/CustomerFacadeImpl.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/store/controller/items/facade/ProductItemsFacade.class b/sm-shop/target/classes/com/salesmanager/shop/store/controller/items/facade/ProductItemsFacade.class
new file mode 100644
index 0000000..a0cc6b4
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/store/controller/items/facade/ProductItemsFacade.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/store/controller/items/facade/ProductItemsFacadeImpl.class b/sm-shop/target/classes/com/salesmanager/shop/store/controller/items/facade/ProductItemsFacadeImpl.class
new file mode 100644
index 0000000..6d6e52c
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/store/controller/items/facade/ProductItemsFacadeImpl.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/store/controller/items/ListItemsController.class b/sm-shop/target/classes/com/salesmanager/shop/store/controller/items/ListItemsController.class
new file mode 100644
index 0000000..27f140e
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/store/controller/items/ListItemsController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/store/controller/LandingController.class b/sm-shop/target/classes/com/salesmanager/shop/store/controller/LandingController.class
new file mode 100644
index 0000000..5cad9ca
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/store/controller/LandingController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/store/controller/order/facade/OrderFacade.class b/sm-shop/target/classes/com/salesmanager/shop/store/controller/order/facade/OrderFacade.class
new file mode 100644
index 0000000..838cd23
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/store/controller/order/facade/OrderFacade.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/store/controller/order/facade/OrderFacadeImpl.class b/sm-shop/target/classes/com/salesmanager/shop/store/controller/order/facade/OrderFacadeImpl.class
new file mode 100644
index 0000000..76c5b70
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/store/controller/order/facade/OrderFacadeImpl.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/store/controller/order/ShoppingOrderConfirmationController.class b/sm-shop/target/classes/com/salesmanager/shop/store/controller/order/ShoppingOrderConfirmationController.class
new file mode 100644
index 0000000..2d10377
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/store/controller/order/ShoppingOrderConfirmationController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/store/controller/order/ShoppingOrderController.class b/sm-shop/target/classes/com/salesmanager/shop/store/controller/order/ShoppingOrderController.class
new file mode 100644
index 0000000..771c7e5
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/store/controller/order/ShoppingOrderController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/store/controller/order/ShoppingOrderDownloadController.class b/sm-shop/target/classes/com/salesmanager/shop/store/controller/order/ShoppingOrderDownloadController.class
new file mode 100644
index 0000000..955ffd7
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/store/controller/order/ShoppingOrderDownloadController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/store/controller/order/ShoppingOrderPaymentController.class b/sm-shop/target/classes/com/salesmanager/shop/store/controller/order/ShoppingOrderPaymentController.class
new file mode 100644
index 0000000..6e09d01
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/store/controller/order/ShoppingOrderPaymentController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/store/controller/product/facade/ProductFacade.class b/sm-shop/target/classes/com/salesmanager/shop/store/controller/product/facade/ProductFacade.class
new file mode 100644
index 0000000..747cef6
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/store/controller/product/facade/ProductFacade.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/store/controller/product/facade/ProductFacadeImpl.class b/sm-shop/target/classes/com/salesmanager/shop/store/controller/product/facade/ProductFacadeImpl.class
new file mode 100644
index 0000000..c523285
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/store/controller/product/facade/ProductFacadeImpl.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/store/controller/product/ShopProductController.class b/sm-shop/target/classes/com/salesmanager/shop/store/controller/product/ShopProductController.class
new file mode 100644
index 0000000..2aa82f3
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/store/controller/product/ShopProductController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/store/controller/search/facade/SearchFacade.class b/sm-shop/target/classes/com/salesmanager/shop/store/controller/search/facade/SearchFacade.class
new file mode 100644
index 0000000..e9263d8
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/store/controller/search/facade/SearchFacade.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/store/controller/search/facade/SearchFacadeImpl.class b/sm-shop/target/classes/com/salesmanager/shop/store/controller/search/facade/SearchFacadeImpl.class
new file mode 100644
index 0000000..561ead4
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/store/controller/search/facade/SearchFacadeImpl.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/store/controller/search/SearchController.class b/sm-shop/target/classes/com/salesmanager/shop/store/controller/search/SearchController.class
new file mode 100644
index 0000000..96ce3c9
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/store/controller/search/SearchController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/store/controller/shoppingCart/facade/ShoppingCartFacade.class b/sm-shop/target/classes/com/salesmanager/shop/store/controller/shoppingCart/facade/ShoppingCartFacade.class
new file mode 100644
index 0000000..6afd60f
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/store/controller/shoppingCart/facade/ShoppingCartFacade.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/store/controller/shoppingCart/facade/ShoppingCartFacadeImpl.class b/sm-shop/target/classes/com/salesmanager/shop/store/controller/shoppingCart/facade/ShoppingCartFacadeImpl.class
new file mode 100644
index 0000000..05ddc46
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/store/controller/shoppingCart/facade/ShoppingCartFacadeImpl.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/store/controller/shoppingCart/MiniCartController.class b/sm-shop/target/classes/com/salesmanager/shop/store/controller/shoppingCart/MiniCartController.class
new file mode 100644
index 0000000..d7227af
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/store/controller/shoppingCart/MiniCartController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/store/controller/shoppingCart/ShoppingCartController.class b/sm-shop/target/classes/com/salesmanager/shop/store/controller/shoppingCart/ShoppingCartController.class
new file mode 100644
index 0000000..c83d561
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/store/controller/shoppingCart/ShoppingCartController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/store/controller/store/ContactController.class b/sm-shop/target/classes/com/salesmanager/shop/store/controller/store/ContactController.class
new file mode 100644
index 0000000..ef93178
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/store/controller/store/ContactController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/store/model/catalog/Attribute.class b/sm-shop/target/classes/com/salesmanager/shop/store/model/catalog/Attribute.class
new file mode 100644
index 0000000..143a8cd
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/store/model/catalog/Attribute.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/store/model/catalog/AttributeValue.class b/sm-shop/target/classes/com/salesmanager/shop/store/model/catalog/AttributeValue.class
new file mode 100644
index 0000000..cfafb85
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/store/model/catalog/AttributeValue.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/store/model/filter/QueryFilter.class b/sm-shop/target/classes/com/salesmanager/shop/store/model/filter/QueryFilter.class
new file mode 100644
index 0000000..5cd1735
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/store/model/filter/QueryFilter.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/store/model/filter/QueryFilterType.class b/sm-shop/target/classes/com/salesmanager/shop/store/model/filter/QueryFilterType.class
new file mode 100644
index 0000000..81e2ce0
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/store/model/filter/QueryFilterType.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/store/model/paging/PaginationData.class b/sm-shop/target/classes/com/salesmanager/shop/store/model/paging/PaginationData.class
new file mode 100644
index 0000000..1baf8a7
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/store/model/paging/PaginationData.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/store/model/search/AutoCompleteRequest.class b/sm-shop/target/classes/com/salesmanager/shop/store/model/search/AutoCompleteRequest.class
new file mode 100644
index 0000000..82eca02
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/store/model/search/AutoCompleteRequest.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/store/security/CustomerServicesImpl.class b/sm-shop/target/classes/com/salesmanager/shop/store/security/CustomerServicesImpl.class
new file mode 100644
index 0000000..1efa972
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/store/security/CustomerServicesImpl.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/store/security/ServicesAuthenticationEntryPoint.class b/sm-shop/target/classes/com/salesmanager/shop/store/security/ServicesAuthenticationEntryPoint.class
new file mode 100644
index 0000000..b418d36
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/store/security/ServicesAuthenticationEntryPoint.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/store/security/ServicesAuthenticationSuccessHandler.class b/sm-shop/target/classes/com/salesmanager/shop/store/security/ServicesAuthenticationSuccessHandler.class
new file mode 100644
index 0000000..e1674ee
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/store/security/ServicesAuthenticationSuccessHandler.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/store/services/category/ShoppingCategoryRESTController.class b/sm-shop/target/classes/com/salesmanager/shop/store/services/category/ShoppingCategoryRESTController.class
new file mode 100644
index 0000000..ae68cfd
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/store/services/category/ShoppingCategoryRESTController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/store/services/customer/CustomerRESTController.class b/sm-shop/target/classes/com/salesmanager/shop/store/services/customer/CustomerRESTController.class
new file mode 100644
index 0000000..c6fcde5
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/store/services/customer/CustomerRESTController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/store/services/order/OrderRESTController.class b/sm-shop/target/classes/com/salesmanager/shop/store/services/order/OrderRESTController.class
new file mode 100644
index 0000000..e37a0fd
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/store/services/order/OrderRESTController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/store/services/product/ProductItemsRESTController.class b/sm-shop/target/classes/com/salesmanager/shop/store/services/product/ProductItemsRESTController.class
new file mode 100644
index 0000000..b3fc5b0
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/store/services/product/ProductItemsRESTController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/store/services/product/ShopProductRESTController.class b/sm-shop/target/classes/com/salesmanager/shop/store/services/product/ShopProductRESTController.class
new file mode 100644
index 0000000..a895b17
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/store/services/product/ShopProductRESTController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/store/services/search/SearchRESTController.class b/sm-shop/target/classes/com/salesmanager/shop/store/services/search/SearchRESTController.class
new file mode 100644
index 0000000..8a8f54f
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/store/services/search/SearchRESTController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/store/services/store/StoreContactRESTController.class b/sm-shop/target/classes/com/salesmanager/shop/store/services/store/StoreContactRESTController.class
new file mode 100644
index 0000000..ac69057
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/store/services/store/StoreContactRESTController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/store/services/system/SystemRESTController.class b/sm-shop/target/classes/com/salesmanager/shop/store/services/system/SystemRESTController.class
new file mode 100644
index 0000000..8915f41
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/store/services/system/SystemRESTController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/store/services/utility/CallbackController.class b/sm-shop/target/classes/com/salesmanager/shop/store/services/utility/CallbackController.class
new file mode 100644
index 0000000..8b5d800
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/store/services/utility/CallbackController.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/tags/ActiveLinkTag.class b/sm-shop/target/classes/com/salesmanager/shop/tags/ActiveLinkTag.class
new file mode 100644
index 0000000..20b3e99
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/tags/ActiveLinkTag.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/tags/AdminProductDownloadUrlTag.class b/sm-shop/target/classes/com/salesmanager/shop/tags/AdminProductDownloadUrlTag.class
new file mode 100644
index 0000000..8beb32e
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/tags/AdminProductDownloadUrlTag.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/tags/ConfigurationTag.class b/sm-shop/target/classes/com/salesmanager/shop/tags/ConfigurationTag.class
new file mode 100644
index 0000000..c5a9704
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/tags/ConfigurationTag.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/tags/ContentImageUrlTag.class b/sm-shop/target/classes/com/salesmanager/shop/tags/ContentImageUrlTag.class
new file mode 100644
index 0000000..e3de11e
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/tags/ContentImageUrlTag.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/tags/ManufacturerImageUrlTag.class b/sm-shop/target/classes/com/salesmanager/shop/tags/ManufacturerImageUrlTag.class
new file mode 100644
index 0000000..b6ceca8
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/tags/ManufacturerImageUrlTag.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/tags/OrderProductDownloadUrlTag.class b/sm-shop/target/classes/com/salesmanager/shop/tags/OrderProductDownloadUrlTag.class
new file mode 100644
index 0000000..a600c8b
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/tags/OrderProductDownloadUrlTag.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/tags/PageContentTag.class b/sm-shop/target/classes/com/salesmanager/shop/tags/PageContentTag.class
new file mode 100644
index 0000000..7e206ab
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/tags/PageContentTag.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/tags/ProductDescriptionUrlTag.class b/sm-shop/target/classes/com/salesmanager/shop/tags/ProductDescriptionUrlTag.class
new file mode 100644
index 0000000..17de381
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/tags/ProductDescriptionUrlTag.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/tags/ProductImageUrlTag.class b/sm-shop/target/classes/com/salesmanager/shop/tags/ProductImageUrlTag.class
new file mode 100644
index 0000000..967d9f6
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/tags/ProductImageUrlTag.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/tags/ShopProductImageUrlTag.class b/sm-shop/target/classes/com/salesmanager/shop/tags/ShopProductImageUrlTag.class
new file mode 100644
index 0000000..9740b10
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/tags/ShopProductImageUrlTag.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/tags/ShopProductPriceFormatTag.class b/sm-shop/target/classes/com/salesmanager/shop/tags/ShopProductPriceFormatTag.class
new file mode 100644
index 0000000..29dd50e
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/tags/ShopProductPriceFormatTag.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/tags/ShopProductRelationshipTag.class b/sm-shop/target/classes/com/salesmanager/shop/tags/ShopProductRelationshipTag.class
new file mode 100644
index 0000000..5148a9f
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/tags/ShopProductRelationshipTag.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/tags/StoreBreadcrumbsTag.class b/sm-shop/target/classes/com/salesmanager/shop/tags/StoreBreadcrumbsTag.class
new file mode 100644
index 0000000..dc20486
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/tags/StoreBreadcrumbsTag.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/tags/StoreFooterlTag.class b/sm-shop/target/classes/com/salesmanager/shop/tags/StoreFooterlTag.class
new file mode 100644
index 0000000..88e8f2e
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/tags/StoreFooterlTag.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/tags/StoreLogoUrlTag.class b/sm-shop/target/classes/com/salesmanager/shop/tags/StoreLogoUrlTag.class
new file mode 100644
index 0000000..d0980dd
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/tags/StoreLogoUrlTag.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/utils/AbstractimageFilePath.class b/sm-shop/target/classes/com/salesmanager/shop/utils/AbstractimageFilePath.class
new file mode 100644
index 0000000..c7509fa
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/utils/AbstractimageFilePath.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/utils/AdminAccessDeniedHandler.class b/sm-shop/target/classes/com/salesmanager/shop/utils/AdminAccessDeniedHandler.class
new file mode 100644
index 0000000..360a9f7
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/utils/AdminAccessDeniedHandler.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/utils/AppConfiguration.class b/sm-shop/target/classes/com/salesmanager/shop/utils/AppConfiguration.class
new file mode 100644
index 0000000..2cefa7f
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/utils/AppConfiguration.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/utils/BeanUtils.class b/sm-shop/target/classes/com/salesmanager/shop/utils/BeanUtils.class
new file mode 100644
index 0000000..0ca679f
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/utils/BeanUtils.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/utils/BreadcrumbsUtils.class b/sm-shop/target/classes/com/salesmanager/shop/utils/BreadcrumbsUtils.class
new file mode 100644
index 0000000..0c305c4
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/utils/BreadcrumbsUtils.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/utils/CaptchaRequestUtils.class b/sm-shop/target/classes/com/salesmanager/shop/utils/CaptchaRequestUtils.class
new file mode 100644
index 0000000..4bb4012
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/utils/CaptchaRequestUtils.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/utils/DateUtil.class b/sm-shop/target/classes/com/salesmanager/shop/utils/DateUtil.class
new file mode 100644
index 0000000..7ec051a
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/utils/DateUtil.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/utils/EmailTemplatesUtils.class b/sm-shop/target/classes/com/salesmanager/shop/utils/EmailTemplatesUtils.class
new file mode 100644
index 0000000..58c5435
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/utils/EmailTemplatesUtils.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/utils/EmailUtils.class b/sm-shop/target/classes/com/salesmanager/shop/utils/EmailUtils.class
new file mode 100644
index 0000000..0ceea24
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/utils/EmailUtils.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/utils/FieldMatch$List.class b/sm-shop/target/classes/com/salesmanager/shop/utils/FieldMatch$List.class
new file mode 100644
index 0000000..8262aca
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/utils/FieldMatch$List.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/utils/FieldMatch.class b/sm-shop/target/classes/com/salesmanager/shop/utils/FieldMatch.class
new file mode 100644
index 0000000..aaad5af
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/utils/FieldMatch.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/utils/FieldMatchValidator.class b/sm-shop/target/classes/com/salesmanager/shop/utils/FieldMatchValidator.class
new file mode 100644
index 0000000..3870d44
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/utils/FieldMatchValidator.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/utils/FilePathUtils.class b/sm-shop/target/classes/com/salesmanager/shop/utils/FilePathUtils.class
new file mode 100644
index 0000000..8835aa1
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/utils/FilePathUtils.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/utils/GeoLocationUtils.class b/sm-shop/target/classes/com/salesmanager/shop/utils/GeoLocationUtils.class
new file mode 100644
index 0000000..1b0262e
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/utils/GeoLocationUtils.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/utils/ImageFilePath.class b/sm-shop/target/classes/com/salesmanager/shop/utils/ImageFilePath.class
new file mode 100644
index 0000000..a595a1a
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/utils/ImageFilePath.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/utils/ImageFilePathUtils.class b/sm-shop/target/classes/com/salesmanager/shop/utils/ImageFilePathUtils.class
new file mode 100644
index 0000000..821d5b5
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/utils/ImageFilePathUtils.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/utils/LabelUtils.class b/sm-shop/target/classes/com/salesmanager/shop/utils/LabelUtils.class
new file mode 100644
index 0000000..638310a
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/utils/LabelUtils.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/utils/LanguageUtils.class b/sm-shop/target/classes/com/salesmanager/shop/utils/LanguageUtils.class
new file mode 100644
index 0000000..393cc9f
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/utils/LanguageUtils.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/utils/LocaleUtils.class b/sm-shop/target/classes/com/salesmanager/shop/utils/LocaleUtils.class
new file mode 100644
index 0000000..524fc0a
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/utils/LocaleUtils.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/utils/LocalImageFilePathUtils.class b/sm-shop/target/classes/com/salesmanager/shop/utils/LocalImageFilePathUtils.class
new file mode 100644
index 0000000..43de251
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/utils/LocalImageFilePathUtils.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/utils/MerchantUtils.class b/sm-shop/target/classes/com/salesmanager/shop/utils/MerchantUtils.class
new file mode 100644
index 0000000..2a24820
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/utils/MerchantUtils.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/utils/PageBuilderUtils.class b/sm-shop/target/classes/com/salesmanager/shop/utils/PageBuilderUtils.class
new file mode 100644
index 0000000..d493e17
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/utils/PageBuilderUtils.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/utils/SessionUtil.class b/sm-shop/target/classes/com/salesmanager/shop/utils/SessionUtil.class
new file mode 100644
index 0000000..ef8599c
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/utils/SessionUtil.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/utils/TokenizeTool.class b/sm-shop/target/classes/com/salesmanager/shop/utils/TokenizeTool.class
new file mode 100644
index 0000000..b52dbbf
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/utils/TokenizeTool.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/utils/UserUtils.class b/sm-shop/target/classes/com/salesmanager/shop/utils/UserUtils.class
new file mode 100644
index 0000000..24f0980
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/utils/UserUtils.class differ
diff --git a/sm-shop/target/classes/com/salesmanager/shop/utils/WebApplicationCacheUtils.class b/sm-shop/target/classes/com/salesmanager/shop/utils/WebApplicationCacheUtils.class
new file mode 100644
index 0000000..9bda105
Binary files /dev/null and b/sm-shop/target/classes/com/salesmanager/shop/utils/WebApplicationCacheUtils.class differ
sm-shop/target/classes/database.properties 30(+30 -0)
diff --git a/sm-shop/target/classes/database.properties b/sm-shop/target/classes/database.properties
new file mode 100644
index 0000000..c7a2e06
--- /dev/null
+++ b/sm-shop/target/classes/database.properties
@@ -0,0 +1,30 @@
+##
+## configuration base de donnees
+##
+
+
+#MYSQL
+#db.jdbcUrl=jdbc:mysql://localhost:3306/SALESMANAGER?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8
+#db.user=USERNAME
+#db.password=PASSWORD
+#db.driverClass=com.mysql.jdbc.Driver
+#hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
+
+#H2
+db.jdbcUrl=jdbc\:h2\:file\:SALESMANAGER;AUTOCOMMIT=OFF;INIT\=CREATE SCHEMA IF NOT EXISTS SALESMANAGER
+db.user=test
+db.password=password
+db.driverClass=org.h2.Driver
+hibernate.dialect=org.hibernate.dialect.H2Dialect
+
+
+db.preferredTestQuery=SELECT 1
+db.schema=SALESMANAGER
+hibernate.hbm2ddl.auto=update
+
+##
+## configuration pooling base de donn�es
+##
+db.initialPoolSize=4
+db.minPoolSize=4
+db.maxPoolSize=8
\ No newline at end of file
sm-shop/target/classes/log4j.properties 15(+15 -0)
diff --git a/sm-shop/target/classes/log4j.properties b/sm-shop/target/classes/log4j.properties
new file mode 100644
index 0000000..de9e11d
--- /dev/null
+++ b/sm-shop/target/classes/log4j.properties
@@ -0,0 +1,15 @@
+log4j.appender.Stdout=org.apache.log4j.ConsoleAppender
+log4j.appender.Stdout.layout=org.apache.log4j.PatternLayout
+log4j.appender.Stdout.layout.ConversionPattern=[%d{ISO8601}] %-5p - %-26.26c{1} - %m\n
+
+log4j.rootLogger=INFO,Stdout,debugLogfile
+
+
+log4j.logger.com.salesmanager.web.shop=INFO, debugLogfile
+log4j.appender.debugLogfile=org.apache.log4j.RollingFileAppender
+log4j.appender.debugLogfile.File=shopizer-debug.log
+#log4j.appender.debugLogfile.Threshold=ALL
+log4j.appender.debugLogfile.MaxFileSize=100MB
+#log4j.appender.debugLogfile.MaxBackupIndex=4
+log4j.appender.debugLogfile.layout=org.apache.log4j.PatternLayout
+log4j.appender.debugLogfile.layout.ConversionPattern=%d %-4r [%t] %-5p %c %x - %m%n
\ No newline at end of file
diff --git a/sm-shop/target/m2e-wtp/web-resources/META-INF/MANIFEST.MF b/sm-shop/target/m2e-wtp/web-resources/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..9b206e1
--- /dev/null
+++ b/sm-shop/target/m2e-wtp/web-resources/META-INF/MANIFEST.MF
@@ -0,0 +1,9 @@
+Manifest-Version: 1.0
+Implementation-Title: sm-shop
+Implementation-Version: 2.5.0-SNAPSHOT
+Built-By: c.samson
+Implementation-Vendor-Id: com.shopizer
+Build-Jdk: 1.8.0_91
+Created-By: Maven Integration for Eclipse
+Implementation-Vendor: Pivotal Software, Inc.
+
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
new file mode 100644
index 0000000..62a515e
--- /dev/null
+++ b/sm-shop/target/m2e-wtp/web-resources/META-INF/maven/com.shopizer/sm-shop/pom.properties
@@ -0,0 +1,7 @@
+#Generated by Maven Integration for Eclipse
+#Tue Oct 25 12:34:30 EDT 2016
+version=2.5.0-SNAPSHOT
+groupId=com.shopizer
+m2e.projectName=sm-shop
+m2e.projectLocation=C\:\\code\\personal\\shopizer-2.5\\shopizer\\sm-shop
+artifactId=sm-shop
diff --git a/sm-shop/target/m2e-wtp/web-resources/META-INF/maven/com.shopizer/sm-shop/pom.xml b/sm-shop/target/m2e-wtp/web-resources/META-INF/maven/com.shopizer/sm-shop/pom.xml
new file mode 100644
index 0000000..201e266
--- /dev/null
+++ b/sm-shop/target/m2e-wtp/web-resources/META-INF/maven/com.shopizer/sm-shop/pom.xml
@@ -0,0 +1,119 @@
+<?xml version="1.0"?>
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>com.shopizer</groupId>
+ <artifactId>shopizer</artifactId>
+ <version>2.5.0-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>sm-shop</artifactId>
+ <packaging>war</packaging>
+
+ <name>sm-shop</name>
+ <url>http://www.shopizer.com</url>
+
+ <properties>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ <!-- testing properties -->
+ <!--<dbh2.version>1.4.187</dbh2.version>-->
+ <javax.inject.version>1</javax.inject.version>
+ <javax.el.version>2.2.4</javax.el.version>
+ </properties>
+
+ <dependencies>
+
+ <!-- sm-core -->
+ <dependency>
+ <groupId>com.shopizer</groupId>
+ <artifactId>sm-core</artifactId>
+ <version>${shopizer.version}</version>
+ </dependency>
+
+ <!-- sm-core-model -->
+ <dependency>
+ <groupId>com.shopizer</groupId>
+ <artifactId>sm-core-model</artifactId>
+ <version>${shopizer.version}</version>
+ </dependency>
+
+
+ <!-- sm-search -->
+ <dependency>
+ <groupId>com.shopizer</groupId>
+ <artifactId>sm-search</artifactId>
+ <version>${shopizer.search.version}</version>
+ </dependency>
+
+
+
+ <dependency>
+ <groupId>javax.el</groupId>
+ <artifactId>javax.el-api</artifactId>
+ <version>${javax.el.version}</version>
+ </dependency>
+
+ <!-- Spring boot -->
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-web</artifactId>
+ </dependency>
+
+ <!-- Spring JDBC -->
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-jdbc</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-security</artifactId>
+ </dependency>
+
+
+ <!-- H2 session -->
+ <dependency>
+ <groupId>com.h2database</groupId>
+ <artifactId>h2</artifactId>
+ </dependency>
+
+ <!-- https://mvnrepository.com/artifact/javax.inject/javax.inject -->
+ <dependency>
+ <groupId>javax.inject</groupId>
+ <artifactId>javax.inject</artifactId>
+ <version>${javax.inject.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>javax.validation</groupId>
+ <artifactId>validation-api</artifactId>
+ <version>1.1.0.Final</version>
+ </dependency>
+
+ <!-- https://mvnrepository.com/artifact/net.sf.ehcache/ehcache -->
+ <dependency>
+ <groupId>net.sf.ehcache</groupId>
+ <artifactId>ehcache</artifactId>
+ </dependency>
+
+
+ <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
+ <dependency>
+ <groupId>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-core</artifactId>
+ </dependency>
+
+
+
+
+
+
+ </dependencies>
+
+
+
+
+
+</project>
diff --git a/sm-shop/target/test-classes/com/salesmanager/test/shop/controller/category/rest/CategoryManagementAPITest.class b/sm-shop/target/test-classes/com/salesmanager/test/shop/controller/category/rest/CategoryManagementAPITest.class
new file mode 100644
index 0000000..f354a71
Binary files /dev/null and b/sm-shop/target/test-classes/com/salesmanager/test/shop/controller/category/rest/CategoryManagementAPITest.class differ
diff --git a/sm-shop/target/test-classes/com/salesmanager/test/shop/controller/customer/rest/CustomerRESTControllerTest.class b/sm-shop/target/test-classes/com/salesmanager/test/shop/controller/customer/rest/CustomerRESTControllerTest.class
new file mode 100644
index 0000000..04241d1
Binary files /dev/null and b/sm-shop/target/test-classes/com/salesmanager/test/shop/controller/customer/rest/CustomerRESTControllerTest.class differ
diff --git a/sm-shop/target/test-classes/com/salesmanager/test/shop/controller/product/rest/ProductManagementAPITest.class b/sm-shop/target/test-classes/com/salesmanager/test/shop/controller/product/rest/ProductManagementAPITest.class
new file mode 100644
index 0000000..164a51a
Binary files /dev/null and b/sm-shop/target/test-classes/com/salesmanager/test/shop/controller/product/rest/ProductManagementAPITest.class differ
diff --git a/sm-shop/target/test-classes/com/salesmanager/test/shop/controller/store/rest/ContactAPITest.class b/sm-shop/target/test-classes/com/salesmanager/test/shop/controller/store/rest/ContactAPITest.class
new file mode 100644
index 0000000..85a1064
Binary files /dev/null and b/sm-shop/target/test-classes/com/salesmanager/test/shop/controller/store/rest/ContactAPITest.class differ
diff --git a/sm-shop/target/test-classes/com/salesmanager/test/shop/controller/system/rest/SystemAPITest.class b/sm-shop/target/test-classes/com/salesmanager/test/shop/controller/system/rest/SystemAPITest.class
new file mode 100644
index 0000000..cfa8cad
Binary files /dev/null and b/sm-shop/target/test-classes/com/salesmanager/test/shop/controller/system/rest/SystemAPITest.class differ
sm-shop/target/test-classes/log4j.properties 14(+14 -0)
diff --git a/sm-shop/target/test-classes/log4j.properties b/sm-shop/target/test-classes/log4j.properties
new file mode 100644
index 0000000..38d6d36
--- /dev/null
+++ b/sm-shop/target/test-classes/log4j.properties
@@ -0,0 +1,14 @@
+log4j.appender.Stdout=org.apache.log4j.ConsoleAppender
+log4j.appender.Stdout.layout=org.apache.log4j.PatternLayout
+log4j.appender.Stdout.layout.ConversionPattern=[%d{ISO8601}] %-5p - %-26.26c{1} - %m\n
+
+log4j.rootLogger=WARN,Stdout
+
+# hibernate queries
+log4j.logger.org.hibernate.SQL=DEBUG
+log4j.logger.org.hibernate.type=INFO
+
+# schema initialization
+log4j.logger.org.hibernate.tool.hbm2ddl=DEBUG
+
+log4j.logger.org.springframework.transaction=DEBUG
sm-shop/target/test-classes/log4j.xml 41(+41 -0)
diff --git a/sm-shop/target/test-classes/log4j.xml b/sm-shop/target/test-classes/log4j.xml
new file mode 100644
index 0000000..1f1a0ff
--- /dev/null
+++ b/sm-shop/target/test-classes/log4j.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE log4j:configuration PUBLIC "-//APACHE//DTD LOG4J 1.2//EN" "log4j.dtd">
+<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
+
+ <!-- Appenders -->
+ <appender name="console" class="org.apache.log4j.ConsoleAppender">
+ <param name="Target" value="System.out" />
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="%-5p: %c - %m%n" />
+ </layout>
+ </appender>
+
+ <!-- Application Loggers -->
+ <logger name="mytld.mycompany.myapp">
+ <level value="info" />
+ </logger>
+
+ <!-- 3rdparty Loggers -->
+ <logger name="org.springframework.core">
+ <level value="info" />
+ </logger>
+
+ <logger name="org.springframework.beans">
+ <level value="info" />
+ </logger>
+
+ <logger name="org.springframework.context">
+ <level value="info" />
+ </logger>
+
+ <logger name="org.springframework.web">
+ <level value="info" />
+ </logger>
+
+ <!-- Root Logger -->
+ <root>
+ <priority value="info" />
+ <appender-ref ref="console" />
+ </root>
+
+</log4j:configuration>