shopizer-developers
Changes
sm-shop/pom.xml 4(+2 -2)
sm-shop/README 6(+4 -2)
sm-shop/src/main/java/com/salesmanager/web/admin/controller/merchant/StoreLandingController.java 1(+1 -0)
sm-shop/src/main/java/com/salesmanager/web/admin/controller/products/CustomProductGroupsController.java 2(+1 -1)
sm-shop/src/main/java/com/salesmanager/web/populator/order/ReadableOrderProductPopulator.java 26(+24 -2)
sm-shop/src/main/java/com/salesmanager/web/shop/controller/category/ShoppingCategoryController.java 80(+36 -44)
sm-shop/src/main/java/com/salesmanager/web/shop/controller/content/ShopContentController.java 2(+1 -1)
sm-shop/src/main/java/com/salesmanager/web/shop/controller/customer/CustomerOrdersController.java 2(+1 -1)
sm-shop/src/main/java/com/salesmanager/web/shop/controller/customer/CustomerRegistrationController.java 4(+3 -1)
sm-shop/src/main/java/com/salesmanager/web/shop/controller/customer/facade/CustomerFacadeImpl.java 18(+12 -6)
sm-shop/src/main/resources/database.properties 32(+16 -16)
sm-shop/src/main/webapp/resources/css/sm.css 80(+12 -68)
Details
sm-shop/pom.xml 4(+2 -2)
diff --git a/sm-shop/pom.xml b/sm-shop/pom.xml
index dccdd24..08256e6 100755
--- a/sm-shop/pom.xml
+++ b/sm-shop/pom.xml
@@ -6,7 +6,7 @@
<artifactId>sm-shop</artifactId>
<name>sm-shop</name>
<packaging>war</packaging>
- <version>2.0-SNAPSHOT</version>
+ <version>2.0.0-SNAPSHOT</version>
<properties>
<java-version>1.6</java-version>
<jackson-version>1.9.13</jackson-version>
@@ -17,7 +17,7 @@
<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>
- <sm-core.version>2.0-SNAPSHOT</sm-core.version>
+ <sm-core.version>2.0.0-SNAPSHOT</sm-core.version>
<sm-search.version>0.0.3</sm-search.version>
</properties>
<dependencies>
sm-shop/README 6(+4 -2)
diff --git a/sm-shop/README b/sm-shop/README
index db29172..1c982c0 100755
--- a/sm-shop/README
+++ b/sm-shop/README
@@ -1,4 +1,4 @@
-Shopizer 2.0
+Official Shopizer 2.0.0
-------------------
Java open source e-commerce software
@@ -27,7 +27,9 @@ $ mvn clean install
copy sm-shop/target/sm-shop.war to tomcat or any other application server deployment dir
-edit catalina.bat for windows users or catalina.sh for linux / max users
+Increase heap space to 1024 m or at least 512 m
+
+If you are using Tomcat edit catalina.bat for windows users or catalina.sh for linux / max users
export JAVA_OPTS="-Xms1024m -Xmx1024m -XX:MaxPermSize=256m" in Linux / Mac
set JAVA_OPTS="-Xms1024m -Xmx1024m -XX:MaxPermSize=256m" in Windows
diff --git a/sm-shop/src/main/java/com/salesmanager/web/admin/controller/merchant/StoreLandingController.java b/sm-shop/src/main/java/com/salesmanager/web/admin/controller/merchant/StoreLandingController.java
index 25cc7cb..77687b4 100755
--- a/sm-shop/src/main/java/com/salesmanager/web/admin/controller/merchant/StoreLandingController.java
+++ b/sm-shop/src/main/java/com/salesmanager/web/admin/controller/merchant/StoreLandingController.java
@@ -72,6 +72,7 @@ public class StoreLandingController {
landingDescription.setKeywords(desc.getMetatagKeywords());
landingDescription.setTitle(desc.getName());//name is a not empty
landingDescription.setLanguage(desc.getLanguage());
+ break;
}
}
}
diff --git a/sm-shop/src/main/java/com/salesmanager/web/admin/controller/products/CustomProductGroupsController.java b/sm-shop/src/main/java/com/salesmanager/web/admin/controller/products/CustomProductGroupsController.java
index d443d96..23310b0 100644
--- a/sm-shop/src/main/java/com/salesmanager/web/admin/controller/products/CustomProductGroupsController.java
+++ b/sm-shop/src/main/java/com/salesmanager/web/admin/controller/products/CustomProductGroupsController.java
@@ -239,7 +239,7 @@ public class CustomProductGroupsController {
@PreAuthorize("hasRole('PRODUCTS')")
@RequestMapping(value="/admin/products/group/edit.html", method=RequestMethod.GET)
- public String displayCustomProductGroup(@RequestParam("code") String groupCode, Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+ public String displayCustomProductGroup(@RequestParam("id") String groupCode, Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
setMenu(model,request);
diff --git a/sm-shop/src/main/java/com/salesmanager/web/constants/Constants.java b/sm-shop/src/main/java/com/salesmanager/web/constants/Constants.java
index af844ae..71331ee 100644
--- a/sm-shop/src/main/java/com/salesmanager/web/constants/Constants.java
+++ b/sm-shop/src/main/java/com/salesmanager/web/constants/Constants.java
@@ -19,6 +19,7 @@ public class Constants {
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";
@@ -107,5 +108,7 @@ public class Constants {
public static final String RECAPATCHA_PUBLIC_KEY="shopizer.recapatcha_public_key";
public static final String RECAPATCHA_PRIVATE_KEY="shopizer.recapatcha_private_key";
+
+ public final static String LINK_CODE = "LINK_CODE";
}
diff --git a/sm-shop/src/main/java/com/salesmanager/web/entity/catalog/ProductList.java b/sm-shop/src/main/java/com/salesmanager/web/entity/catalog/ProductList.java
index 37326ba..9523f0b 100644
--- a/sm-shop/src/main/java/com/salesmanager/web/entity/catalog/ProductList.java
+++ b/sm-shop/src/main/java/com/salesmanager/web/entity/catalog/ProductList.java
@@ -1,6 +1,7 @@
package com.salesmanager.web.entity.catalog;
import java.io.Serializable;
+import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
@@ -14,6 +15,8 @@ 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;
@@ -27,6 +30,18 @@ public class ProductList implements Serializable {
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/web/entity/order/ReadableOrderProduct.java b/sm-shop/src/main/java/com/salesmanager/web/entity/order/ReadableOrderProduct.java
index 991f9d3..3175eac 100644
--- a/sm-shop/src/main/java/com/salesmanager/web/entity/order/ReadableOrderProduct.java
+++ b/sm-shop/src/main/java/com/salesmanager/web/entity/order/ReadableOrderProduct.java
@@ -1,6 +1,7 @@
package com.salesmanager.web.entity.order;
import java.io.Serializable;
+import java.util.List;
public class ReadableOrderProduct extends OrderProductEntity implements
Serializable {
@@ -13,7 +14,7 @@ public class ReadableOrderProduct extends OrderProductEntity implements
private String price;
private String subTotal;
-
+ private List<ReadableOrderProductAttribute> attributes = null;
private String sku;
private String image;
@@ -47,6 +48,12 @@ public class ReadableOrderProduct extends OrderProductEntity implements
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/web/filter/StoreFilter.java b/sm-shop/src/main/java/com/salesmanager/web/filter/StoreFilter.java
index cc86898..b324cde 100644
--- a/sm-shop/src/main/java/com/salesmanager/web/filter/StoreFilter.java
+++ b/sm-shop/src/main/java/com/salesmanager/web/filter/StoreFilter.java
@@ -116,7 +116,8 @@ public class StoreFilter extends HandlerInterceptorAdapter {
* if url contains /services
* exit from here !
*/
-
+ System.out.println("****** " + request.getRequestURL().toString());
+ System.out.println("****** " + request.getRequestURI().toString());
if(request.getRequestURL().toString().toLowerCase().contains(SERVICES_URL_PATTERN)
|| request.getRequestURL().toString().toLowerCase().contains(REFERENCE_URL_PATTERN)
) {
@@ -137,6 +138,9 @@ public class StoreFilter extends HandlerInterceptorAdapter {
String storeCode = request.getParameter(STORE_REQUEST_PARAMETER);
+ //remove link set from controllers for declaring active - inactive links
+ request.removeAttribute(Constants.LINK_CODE);
+
if(!StringUtils.isBlank(storeCode)) {
if(store!=null) {
if(!store.getCode().equals(storeCode)) {
@@ -659,13 +663,19 @@ public class StoreFilter extends HandlerInterceptorAdapter {
.append("-")
.append(lang.getCode()).toString();
List<ContentDescription> contentList = null;
- if(contents==null) {
+ if(contents==null || contents.size()==0) {
contents = new HashMap<String, List<ContentDescription>>();
}
if(!contents.containsKey(key)) {
contentList = new ArrayList<ContentDescription>();
contents.put(key, contentList);
+ } else {//get from key
+ contentList = contents.get(key);
+ if(contentList==null) {
+ LOGGER.error("Cannot find content key in cache " + key);
+ continue;
+ }
}
contentList.add(content);
}
@@ -700,13 +710,19 @@ public class StoreFilter extends HandlerInterceptorAdapter {
.append("-")
.append(lang.getCode()).toString();
List<Content> contentList = null;
- if(contents==null) {
+ if(contents==null || contents.size()==0) {
contents = new HashMap<String, List<Content>>();
}
if(!contents.containsKey(key)) {
contentList = new ArrayList<Content>();
contents.put(key, contentList);
+ }else {//get from key
+ contentList = contents.get(key);
+ if(contentList==null) {
+ LOGGER.error("Cannot find content key in cache " + key);
+ continue;
+ }
}
contentList.add(content);
}
@@ -739,7 +755,7 @@ public class StoreFilter extends HandlerInterceptorAdapter {
.append(lang.getCode()).toString();
List<Category> cacheCategories = null;
- if(objects==null) {
+ if(objects==null || objects.size()==0) {
objects = new HashMap<String, List<Category>>();
}
if(!objects.containsKey(key)) {
@@ -748,6 +764,10 @@ public class StoreFilter extends HandlerInterceptorAdapter {
objects.put(key, cacheCategories);
} else {
cacheCategories = objects.get(key.toString());
+ if(cacheCategories==null) {
+ LOGGER.error("Cannot find categories key in cache " + key);
+ continue;
+ }
}
cacheCategories.add(category);
}
diff --git a/sm-shop/src/main/java/com/salesmanager/web/populator/order/ReadableOrderProductPopulator.java b/sm-shop/src/main/java/com/salesmanager/web/populator/order/ReadableOrderProductPopulator.java
index f67d1a7..d2d0770 100644
--- a/sm-shop/src/main/java/com/salesmanager/web/populator/order/ReadableOrderProductPopulator.java
+++ b/sm-shop/src/main/java/com/salesmanager/web/populator/order/ReadableOrderProductPopulator.java
@@ -1,6 +1,8 @@
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;
@@ -11,12 +13,15 @@ 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;
public class ReadableOrderProductPopulator extends
@@ -55,8 +60,25 @@ public class ReadableOrderProductPopulator extends
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);
+ }
- if(productService!=null && pricingService!=null) {
+
String productSku = source.getSku();
if(!StringUtils.isBlank(productSku)) {
Product product = productService.getByCode(productSku, language);
@@ -87,7 +109,7 @@ public class ReadableOrderProductPopulator extends
}
}
}
- }
+
return target;
}
diff --git a/sm-shop/src/main/java/com/salesmanager/web/services/security/CustomerServicesImpl.java b/sm-shop/src/main/java/com/salesmanager/web/services/security/CustomerServicesImpl.java
index d9a805d..eca1e31 100755
--- a/sm-shop/src/main/java/com/salesmanager/web/services/security/CustomerServicesImpl.java
+++ b/sm-shop/src/main/java/com/salesmanager/web/services/security/CustomerServicesImpl.java
@@ -4,6 +4,7 @@ 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;
@@ -74,11 +75,13 @@ public class CustomerServicesImpl implements UserDetailsService{
}
- List<Permission> permissions = permissionService.getPermissions(groupsId);
- for(Permission permission : permissions) {
- GrantedAuthority auth = new GrantedAuthorityImpl(permission.getPermissionName());
- authorities.add(auth);
- }
+ if(CollectionUtils.isNotEmpty(groupsId)) {
+ List<Permission> permissions = permissionService.getPermissions(groupsId);
+ for(Permission permission : permissions) {
+ GrantedAuthority auth = new GrantedAuthorityImpl(permission.getPermissionName());
+ authorities.add(auth);
+ }
+ }
diff --git a/sm-shop/src/main/java/com/salesmanager/web/shop/controller/AbstractController.java b/sm-shop/src/main/java/com/salesmanager/web/shop/controller/AbstractController.java
index 7558661..d0296c4 100644
--- a/sm-shop/src/main/java/com/salesmanager/web/shop/controller/AbstractController.java
+++ b/sm-shop/src/main/java/com/salesmanager/web/shop/controller/AbstractController.java
@@ -3,21 +3,15 @@
*/
package com.salesmanager.web.shop.controller;
-import java.util.Collections;
-import java.util.List;
-
import javax.servlet.http.HttpServletRequest;
import org.jopendocument.util.ExceptionUtils;
import org.springframework.http.HttpStatus;
import org.springframework.security.access.AccessDeniedException;
import org.springframework.web.bind.annotation.ExceptionHandler;
-import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.servlet.ModelAndView;
-import com.salesmanager.core.business.generic.exception.ServiceException;
-import com.salesmanager.core.business.reference.country.model.Country;
import com.salesmanager.core.business.reference.language.model.Language;
import com.salesmanager.web.constants.Constants;
import com.salesmanager.web.shop.model.paging.PaginationData;
@@ -86,8 +80,15 @@ public abstract class AbstractController {
return paginaionData;
}
- protected PaginationData calculatePaginaionData( final PaginationData paginaionData, final int resultCount){
- paginaionData.setTotalCount( resultCount );
- 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/web/shop/controller/category/ShoppingCategoryController.java b/sm-shop/src/main/java/com/salesmanager/web/shop/controller/category/ShoppingCategoryController.java
index 9ddac70..4ea7580 100644
--- a/sm-shop/src/main/java/com/salesmanager/web/shop/controller/category/ShoppingCategoryController.java
+++ b/sm-shop/src/main/java/com/salesmanager/web/shop/controller/category/ShoppingCategoryController.java
@@ -1,5 +1,6 @@
package com.salesmanager.web.shop.controller.category;
+import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -49,6 +50,8 @@ import com.salesmanager.web.utils.BreadcrumbsUtils;
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
@@ -133,6 +136,10 @@ public class ShoppingCategoryController {
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);
@@ -164,47 +171,6 @@ public class ShoppingCategoryController {
String lineage = new StringBuilder().append(category.getLineage()).append(category.getId()).append(Constants.CATEGORY_LINEAGE_DELIMITER).toString();
-
-
- /**
- String[] categoryPath = lineage.split(Constants.CATEGORY_LINEAGE_DELIMITER);
- List<Long> ids = new ArrayList<Long>();
- for(int i=0 ; i<categoryPath.length; i++) {
- String sId = categoryPath[i];
- if(!StringUtils.isBlank(sId)) {
- ids.add(Long.parseLong(sId));
- }
- }
-
- List<Category> categories = categoryService.listByIds(store, ids, language);
-
- *//** Rebuild breadcrumb **//*
- BreadcrumbItem home = new BreadcrumbItem();
- home.setItemType(BreadcrumbItemType.HOME);
- home.setLabel(messages.getMessage(Constants.HOME_MENU_KEY, locale));
- home.setUrl(FilePathUtils.buildStoreUri(store, request) + Constants.SHOP_URI);
-
- Breadcrumb breadCrumb = new Breadcrumb();
- breadCrumb.setLanguage(language);
-
- List<BreadcrumbItem> items = new ArrayList<BreadcrumbItem>();
- items.add(home);
-
- //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, request, c.getDescription().getSeUrl()));
- items.add(categoryBreadcrump);
- }
-
- breadCrumb.setBreadCrumbs(items);
- breadCrumb.setItemType(BreadcrumbItemType.CATEGORY);
- request.getSession().setAttribute(Constants.BREADCRUMB, breadCrumb);
- request.setAttribute(Constants.BREADCRUMB, breadCrumb);
- *//** **//*
-*/
request.setAttribute(Constants.REQUEST_PAGE_INFORMATION, pageInformation);
@@ -234,6 +200,7 @@ public class ShoppingCategoryController {
.append(subCategoriesCacheKey.toString())
.append(Constants.MISSED_CACHE_KEY);
+ List<BigDecimal> prices = new ArrayList<BigDecimal>();
List<ReadableCategory> subCategories = null;
Map<Long,Long> countProductsByCategories = null;
@@ -263,9 +230,13 @@ public class ShoppingCategoryController {
//Parent category
ReadableCategory parentProxy = null;
- if(!StringUtils.isBlank(ref)) {
+ if(!StringUtils.isBlank(ref) && ref.contains("c")) {
try {
- Long parentId = Long.parseLong(ref);
+ //get preceding id from the reference chain
+ String categoryChain = ref.substring(ref.indexOf(Constants.REF_SPLITTER)+1);
+ int categoryPosition = categoryChain.indexOf(String.valueOf(category.getId()));
+ String sCategoryId = categoryChain.substring(categoryPosition++,categoryPosition++);
+ Long parentId = Long.parseLong(sCategoryId);
Category parent = categoryService.getById(parentId);
parentProxy = populator.populate(parent, new ReadableCategory(), store, language);
} catch(Exception e) {
@@ -282,6 +253,10 @@ public class ShoppingCategoryController {
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());
@@ -396,6 +371,9 @@ public class ShoppingCategoryController {
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);
@@ -627,7 +605,7 @@ public class ShoppingCategoryController {
*/
MerchantStore merchantStore = (MerchantStore)request.getAttribute(Constants.MERCHANT_STORE);
-
+ List<BigDecimal> prices = new ArrayList<BigDecimal>();
Map<String,Language> langs = languageService.getLanguagesMap();
@@ -699,10 +677,24 @@ public class ShoppingCategoryController {
//create new proxy product
ReadableProduct p = populator.populate(product, new ReadableProduct(), merchantStore, lang);
productList.getProducts().add(p);
+ prices.add(p.getPrice());
}
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;
diff --git a/sm-shop/src/main/java/com/salesmanager/web/shop/controller/content/ShopContentController.java b/sm-shop/src/main/java/com/salesmanager/web/shop/controller/content/ShopContentController.java
index 7fe278b..386c223 100644
--- a/sm-shop/src/main/java/com/salesmanager/web/shop/controller/content/ShopContentController.java
+++ b/sm-shop/src/main/java/com/salesmanager/web/shop/controller/content/ShopContentController.java
@@ -51,7 +51,7 @@ public class ShopContentController {
}
//TODO breadcrumbs
-
+ request.setAttribute(Constants.LINK_CODE, contentDescription.getSeUrl());
model.addAttribute("content",contentDescription);
/** template **/
diff --git a/sm-shop/src/main/java/com/salesmanager/web/shop/controller/customer/CustomerOrdersController.java b/sm-shop/src/main/java/com/salesmanager/web/shop/controller/customer/CustomerOrdersController.java
index d8d6a14..a18a218 100644
--- a/sm-shop/src/main/java/com/salesmanager/web/shop/controller/customer/CustomerOrdersController.java
+++ b/sm-shop/src/main/java/com/salesmanager/web/shop/controller/customer/CustomerOrdersController.java
@@ -88,7 +88,7 @@ public class CustomerOrdersController extends AbstractController {
model.addAttribute( "customerOrders", readable);
if(readable!=null) {
- model.addAttribute( "paginationData", calculatePaginaionData(paginaionData,readable.getTotal()));
+ model.addAttribute( "paginationData", calculatePaginaionData(paginaionData,Constants.MAX_ORDERS_PAGE, readable.getTotal()));
} else {
model.addAttribute( "paginationData", null);
}
diff --git a/sm-shop/src/main/java/com/salesmanager/web/shop/controller/customer/CustomerRegistrationController.java b/sm-shop/src/main/java/com/salesmanager/web/shop/controller/customer/CustomerRegistrationController.java
index cf781a2..a43086a 100644
--- a/sm-shop/src/main/java/com/salesmanager/web/shop/controller/customer/CustomerRegistrationController.java
+++ b/sm-shop/src/main/java/com/salesmanager/web/shop/controller/customer/CustomerRegistrationController.java
@@ -191,7 +191,9 @@ public class CustomerRegistrationController extends AbstractController {
CustomerEntity customerData = null;
try
{
- customerData = customerFacade.registerCustomer( customer, merchantStore, language );
+ //set user clear password
+ customer.setClearPassword(password);
+ customerData = customerFacade.registerCustomer( customer, merchantStore, language );
}
catch ( CustomerRegistrationException cre )
{
diff --git a/sm-shop/src/main/java/com/salesmanager/web/shop/controller/customer/facade/CustomerFacadeImpl.java b/sm-shop/src/main/java/com/salesmanager/web/shop/controller/customer/facade/CustomerFacadeImpl.java
index 2962994..c459639 100644
--- a/sm-shop/src/main/java/com/salesmanager/web/shop/controller/customer/facade/CustomerFacadeImpl.java
+++ b/sm-shop/src/main/java/com/salesmanager/web/shop/controller/customer/facade/CustomerFacadeImpl.java
@@ -328,11 +328,16 @@ public class CustomerFacadeImpl implements CustomerFacade
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;
@@ -410,12 +415,13 @@ public class CustomerFacadeImpl implements CustomerFacade
groupsId.add(group.getId());
}
-
- List<Permission> permissions = permissionService.getPermissions(groupsId);
- for(Permission permission : permissions) {
- GrantedAuthority auth = new GrantedAuthorityImpl(permission.getPermissionName());
- authorities.add(auth);
- }
+ 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 =
diff --git a/sm-shop/src/main/java/com/salesmanager/web/shop/controller/LandingController.java b/sm-shop/src/main/java/com/salesmanager/web/shop/controller/LandingController.java
index d049b0a..32d4ada 100755
--- a/sm-shop/src/main/java/com/salesmanager/web/shop/controller/LandingController.java
+++ b/sm-shop/src/main/java/com/salesmanager/web/shop/controller/LandingController.java
@@ -40,6 +40,9 @@ import com.salesmanager.web.utils.LabelUtils;
public class LandingController {
+ private final static String LANDING_PAGE = "LANDING_PAGE";
+
+
@Autowired
private ContentService contentService;
@@ -57,7 +60,7 @@ public class LandingController {
private MerchantStoreService merchantService;
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 {
@@ -66,8 +69,9 @@ public class LandingController {
MerchantStore store = (MerchantStore)request.getAttribute(Constants.MERCHANT_STORE);
+ request.setAttribute(Constants.LINK_CODE, HOME_LINK_CODE);
- Content content = contentService.getByCode("LANDING_PAGE", store, language);
+ Content content = contentService.getByCode(LANDING_PAGE, store, language);
/** Rebuild breadcrumb **/
BreadcrumbItem item = new BreadcrumbItem();
diff --git a/sm-shop/src/main/java/com/salesmanager/web/shop/controller/store/ContactController.java b/sm-shop/src/main/java/com/salesmanager/web/shop/controller/store/ContactController.java
index 169232e..1cce741 100644
--- a/sm-shop/src/main/java/com/salesmanager/web/shop/controller/store/ContactController.java
+++ b/sm-shop/src/main/java/com/salesmanager/web/shop/controller/store/ContactController.java
@@ -55,11 +55,15 @@ public class ContactController extends AbstractController {
@Autowired
private EmailTemplatesUtils emailTemplatesUtils;
+ 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");
diff --git a/sm-shop/src/main/java/com/salesmanager/web/shop/model/paging/PaginationData.java b/sm-shop/src/main/java/com/salesmanager/web/shop/model/paging/PaginationData.java
index 79f8b5a..ded9a7a 100644
--- a/sm-shop/src/main/java/com/salesmanager/web/shop/model/paging/PaginationData.java
+++ b/sm-shop/src/main/java/com/salesmanager/web/shop/model/paging/PaginationData.java
@@ -22,6 +22,7 @@ public class PaginationData implements Serializable
private int offset ;
private int totalCount;
private int totalPages;
+ private int countByPage;
public PaginationData(int pageSize,int currentPage) {
@@ -119,6 +120,21 @@ public class PaginationData implements Serializable
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/resources/bundles/shopizer.properties b/sm-shop/src/main/resources/bundles/shopizer.properties
index b3eee9e..82a37cd 100644
--- a/sm-shop/src/main/resources/bundles/shopizer.properties
+++ b/sm-shop/src/main/resources/bundles/shopizer.properties
@@ -109,6 +109,7 @@ 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.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
@@ -271,6 +272,7 @@ 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
diff --git a/sm-shop/src/main/resources/bundles/shopizer_fr.properties b/sm-shop/src/main/resources/bundles/shopizer_fr.properties
index c387ae0..7d4f3c9 100644
--- a/sm-shop/src/main/resources/bundles/shopizer_fr.properties
+++ b/sm-shop/src/main/resources/bundles/shopizer_fr.properties
@@ -96,7 +96,7 @@ 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\u00E8me
+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
@@ -110,10 +110,11 @@ 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.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\u00E9s
+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
@@ -136,9 +137,9 @@ 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 \u00E9tait le h\u00E9ro de votre enfance ?
+security.question.5=Qui était le héro de votre enfance ?
security.question.6=Dans quelle ville était votre premier emploi ?
-security.question.7=\u00C0 quel endroit \u00EAtiez-vous lors de votre premier baiser ?
+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 ?
@@ -153,7 +154,7 @@ security.answer.question3.message=Veuillez répondre à la question de sécurit�
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\u00E8de le plus de privil\u00E8ges dans l\u00E8administration de la boutique.Un usager admin peut tout administrer dans une boutique et peut \uFFFD\uFFFDgalement cr\u00E9er d\u00E8autres usagers ayant des acc\u00E8s plus restreints.
+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.
@@ -167,7 +168,7 @@ 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\u00E9tails du client
+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
@@ -216,7 +217,7 @@ 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\u00E9nom sur la 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.shipaddress=Livrer à cette adresse
@@ -258,18 +259,19 @@ 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\u00E9gorie
-label.productedit.choosecategory = Choisissez une cat\u00E9gorie
-label.category.categogydetails = D\u00E9tails de la cat\u00E9gorie
-label.category.editcategory = Modifier la cat\u00E9gorie
-label.category.movecategory = D\u00E9placer la cat\u00E9gorie
-label.category.moveundercategory = D\u00E9placer sous la cat\u00E9gorie
+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\u00E9gorie
+label.category.code=Code de la catégorie
label.category.categoryvisible = Catégorie visible
-label.category.categorydescription = Description de la cat\u00E9gorie
+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
sm-shop/src/main/resources/database.properties 32(+16 -16)
diff --git a/sm-shop/src/main/resources/database.properties b/sm-shop/src/main/resources/database.properties
index dc8f723..190c576 100644
--- a/sm-shop/src/main/resources/database.properties
+++ b/sm-shop/src/main/resources/database.properties
@@ -4,24 +4,24 @@
#MYSQL
-#db.jdbcUrl=jdbc:mysql://localhost:3306/SALESMANAGER?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8
-#db.user=youruser
-#db.password=yourpassword
-#hibernate.hbm2ddl.auto=update
-#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
-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=ninetrails
+hibernate.hbm2ddl.auto=update
+db.driverClass=com.mysql.jdbc.Driver
+hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
db.preferredTestQuery=SELECT 1
db.schema=SALESMANAGER
-hibernate.hbm2ddl.auto=update
+
+#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
diff --git a/sm-shop/src/main/webapp/pages/admin/merchant/storeLanding.jsp b/sm-shop/src/main/webapp/pages/admin/merchant/storeLanding.jsp
index f113353..78f458c 100755
--- a/sm-shop/src/main/webapp/pages/admin/merchant/storeLanding.jsp
+++ b/sm-shop/src/main/webapp/pages/admin/merchant/storeLanding.jsp
@@ -70,7 +70,6 @@
<!-- Content -->
-
<div class="control-group">
<label><s:message code="label.storefront.storetext" text="Page content"/> (<c:out value="${description.language.code}"/>)</label>
<div class="controls">
@@ -78,7 +77,7 @@
<textarea cols="30" id="descriptions[${counter.index}].homePageContent" class="ckeditor" name="descriptions[${counter.index}].homePageContent">
- <c:out value="${content.descriptions[counter.index].homePageContent}"/>
+ <c:out value="${description.homePageContent}" escapeXml="true"/>
</textarea>
diff --git a/sm-shop/src/main/webapp/pages/admin/products/customProductGroupDetails.jsp b/sm-shop/src/main/webapp/pages/admin/products/customProductGroupDetails.jsp
index 452698a..82e8d34 100644
--- a/sm-shop/src/main/webapp/pages/admin/products/customProductGroupDetails.jsp
+++ b/sm-shop/src/main/webapp/pages/admin/products/customProductGroupDetails.jsp
@@ -44,7 +44,7 @@
<c:set value="/admin/products/group/details/addItem.html?code=${group}" var="containerAddUrl" scope="request"/>
<c:set value="/admin/products/group/details/update.html" var="containerUpdateUrl" scope="request"/>
<c:set value="/admin/products/editProduct.html" var="editUrl" scope="request"/>
- <c:set value="/admin/products/group/edit.html?code=${group}" var="reloadUrl" scope="request"/>
+ <c:set value="/admin/products/group/edit.html?id=${group}" var="reloadUrl" scope="request"/>
<c:set var="componentTitleKey" value="label.product.customGroup.title" scope="request"/>
<c:set var="gridHeader" value="/pages/admin/products/featured-gridHeader.jsp" scope="request"/>
<c:set var="gridHeaderContainer" value="/pages/admin/products/product-gridHeader.jsp" scope="request"/>
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
index 210d32e..0cc576b 100644
--- a/sm-shop/src/main/webapp/pages/shop/common/cart/cart.jsp
+++ b/sm-shop/src/main/webapp/pages/shop/common/cart/cart.jsp
@@ -13,9 +13,11 @@
-<div id="main-content" class="row-fluid show-grid">
+<div id="main-content" class="row-fluid show-grid container">
-<h1><s:message code="label.cart.revieworder" text="Review your order" /></h1>
+<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">
@@ -59,7 +61,7 @@
</td>
<td>
- <input type="text" class="input-small quantity" placeholder="<s:message code="label.quantity" text="Quantity"/>"
+ <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"
@@ -108,6 +110,7 @@
</c:if>
</c:if>
</div>
+</div>
<c:if test="${empty cart}">
<!-- load cart with cookie -->
<script>
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
index 1a6c766..fcad048 100644
--- a/sm-shop/src/main/webapp/pages/shop/common/cart/minicart.jsp
+++ b/sm-shop/src/main/webapp/pages/shop/common/cart/minicart.jsp
@@ -24,13 +24,12 @@ response.setDateHeader ("Expires", -1);
<div id="cartShowLoading" class="loading-indicator" style="width:100%;display:none;"></div>
<div id="cartMessage" style="width:100%;display:none;"></div>
<div id="shoppingcart">
- <table style="margin-bottom: 5px" class="table">
+ <table style="margin-bottom: 5px" class="table miniCartBox">
<tbody id="shoppingcartProducts"><!-- products place holder -->
</tbody>
</table>
<div id="total-box" class="total-box"></div><!-- totals place holder -->
- <br />
- <button class="btn btn-large" style="width: 100%" type="button" onclick="viewShoppingCartPage();"><s:message code="label.checkout" text="Checkout"/></button>
+ <button class="btn btn-large checkoutButton" style="width: 100%" type="button" onclick="viewShoppingCartPage();"><s:message code="label.checkout" text="Checkout"/></button>
</div>
</div>
</div>
\ No newline at end of file
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
index d2b737b..b46577a 100644
--- a/sm-shop/src/main/webapp/pages/shop/common/catalog/addToCartProduct.jsp
+++ b/sm-shop/src/main/webapp/pages/shop/common/catalog/addToCartProduct.jsp
@@ -31,7 +31,7 @@ $(function(){
<!-- select options -->
<c:if test="${options!=null && not product.productVirtual}">
<c:forEach items="${options}" var="option" varStatus="status">
- <div class="control-group">
+ <div class="control-group form-group">
<label><strong><c:out value="${option.name}"/></strong></label>
<div class="controls">
<c:choose>
@@ -72,9 +72,9 @@ $(function(){
<br/>
<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" placeholder="1" type="text">
+ <input id="qty-productId-<c:out value="${product.id}" />" class="input-mini form-control form-control-sm" placeholder="1" type="text">
</c:if>
- <button class="btn btn-success addToCart" type="button" productId="<c:out value="${product.id}" />"><s:message code="button.label.addToCart" text="Add to cart"/></button>
+ <button class="btn addToCart addToCartButton" type="button" productId="<c:out value="${product.id}" />"><s:message code="button.label.addToCart" text="Add to cart"/></button>
</div>
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
index 384d002..c92155b 100644
--- a/sm-shop/src/main/webapp/pages/shop/common/catalog/reviews.jsp
+++ b/sm-shop/src/main/webapp/pages/shop/common/catalog/reviews.jsp
@@ -14,9 +14,17 @@ response.setDateHeader ("Expires", -1);
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
-
-
-
+
+ <sec:authorize access="!hasRole('AUTH_CUSTOMER') and fullyAuthenticated">
+ <!-- no dual login -->
+ <div id="signin" class="">
+ <ul class="list-unstyled">
+ <li>
+ <s:message code="label.security.loggedinas" text="You are logged in as"/> [<sec:authentication property="principal.username"/>]. <s:message code="label.security.nologinacces.store" text="We can't display store logon box"/>
+ </li>
+ </ul>
+ </div>
+ </sec:authorize>
<sec:authorize access="hasRole('AUTH_CUSTOMER') and fullyAuthenticated">
<a href="<c:url value="/shop/customer/review.html"/>?productId=${product.id}"/><button id="reviewButton" type="submit" class="btn btn-default"><s:message code="label.product.reviews.write" text="Write a review" /></button></a>
</sec:authorize>
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
index beaa8db..cebe3f8 100644
--- a/sm-shop/src/main/webapp/pages/shop/common/checkout/checkout.jsp
+++ b/sm-shop/src/main/webapp/pages/shop/common/checkout/checkout.jsp
@@ -29,7 +29,7 @@ response.setDateHeader ("Expires", -1);
<!-- total template -->
<script type="text/html" id="totalTemplate">
- <span style="float:right">
+ <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>
@@ -104,7 +104,7 @@ function isFormValid() {
//console.log('Form is valid ? ' + valid);
if(valid==false) {//disable submit button
if(firstErrorMessage!=null) {
- $(formErrorMessageId).addClass('alert-error');
+ $(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();
@@ -112,7 +112,7 @@ function isFormValid() {
$('#submitOrder').addClass('btn-disabled');
$('#submitOrder').prop('disabled', true);
} else {
- $(formErrorMessageId).removeClass('alert-error');
+ $(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();
@@ -216,7 +216,7 @@ function showErrorMessage(message) {
$('#submitOrder').addClass('btn-disabled');
$('#submitOrder').prop('disabled', true);
- $(formErrorMessageId).addClass('alert-error');
+ $(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();
@@ -226,7 +226,7 @@ function showErrorMessage(message) {
function showResponseErrorMessage(message) {
$('#checkoutError').addClass('alert');
- $('#checkoutError').addClass('alert-error');
+ $('#checkoutError').addClass('alert-error alert-danger');
$('#checkoutError').html(message);
}
@@ -235,7 +235,7 @@ function resetErrorMessage() {
$('#checkoutError').html('');
$('#checkoutError').removeClass('alert');
- $('#checkoutError').removeClass('alert-error');
+ $('#checkoutError').removeClass('alert-error alert-danger');
$('.error').html('');
}
@@ -614,22 +614,22 @@ $(document).ready(function() {
</script>
- <div id="main-content">
- <h1><s:message code="label.checkout" text="Checkout" /></h1>
+ <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"><s:message code="label.checkout.logon" text="Logon or signup to simplify the online purchase process!"/></p>
+ <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" id="checkout">
- <div class="span12">
+ <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 </c:if>">
+ <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>
@@ -639,7 +639,7 @@ $(document).ready(function() {
<!-- row fluid span -->
<div class="row-fluid">
<!-- left column -->
- <div class="span8">
+ <div class="span8 col-md-8 no-padding-left">
<!-- Billing box -->
<div id="shippingBox" class="box">
@@ -650,25 +650,25 @@ $(document).ready(function() {
<!-- First name - Last name -->
- <div class="row-fluid">
- <div class="span4">
+ <div class="row-fluid common-row row">
+ <div class="span4 col-md-4">
- <div class="control-group">
+ <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" path="customer.billing.firstName" title="${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">
- <div class="control-group">
+ <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" maxlength="32" path="customer.billing.lastName" title="${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>
@@ -678,23 +678,23 @@ $(document).ready(function() {
<!-- email company -->
- <div class="row-fluid">
- <div class="span4">
- <div class="control-group">
+ <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" path="customer.emailAddress" title="${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">
- <div class="control-group">
+ <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" path="customer.billing.company"/>
+ <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>
@@ -703,37 +703,39 @@ $(document).ready(function() {
</div>
<!-- street address -->
- <div class="row-fluid">
- <div class="control-group">
+ <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" path="customer.billing.address" title="${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">
- <div class="span4">
- <div class="control-group">
+ <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" path="customer.billing.city" title="${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">
- <div class="control-group">
+ <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" path="customer.billing.postalCode" title="${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>
@@ -742,47 +744,58 @@ $(document).ready(function() {
</div>
<!-- state province -->
- <div class="row-fluid">
- <div class="control-group">
+ <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" id="billingStateList" path="customer.billing.zone"/>
+ <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" id="billingStateProvince" maxlength="100" name="billingStateProvince" path="customer.billing.stateProvince" title="${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">
- <div class="control-group">
+ <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" path="customer.billing.country">
+ <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 class="control-group">
+ </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" path="customer.billing.phone" title="${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>
- <c:if test="${shippingQuote!=null}">
- <!-- display only if a shipping quote exist -->
- <label id="useAddress" class="checkbox">
- <form:checkbox path="shipToBillingAdress" id="shipToBillingAdress"/>
- <s:message code="label.customer.shipping.shipaddress" text="Ship to this address" /></label>
- </c:if>
</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 -->
@@ -795,95 +808,103 @@ $(document).ready(function() {
</span>
<!-- First name - Last name -->
- <div class="row-fluid">
- <div class="span4">
- <div class="control-group">
+ <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" path="customer.delivery.firstName" title="${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">
- <div class="span4">
+ <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" path="customer.delivery.lastName" title="${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">
+ <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" path="customer.delivery.company"/>
+ <form:input id="customer.delivery.company" cssClass="input-large form-control form-control-lg" path="customer.delivery.company"/>
</div>
- </div>
+ </div>
+ </div>
</div>
<!-- street address -->
- <div class="row-fluid">
+ <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" path="customer.delivery.address" title="${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">
- <div class="span4">
+ <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" path="customer.delivery.city" title="${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">
- <div class="control-group">
+ <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" path="customer.delivery.postalCode" title="${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">
- <div class="control-group">
+ <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" id="deliveryStateList" path="customer.delivery.zone"/>
+ <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" id="deliveryStateProvince" maxlength="100" name="shippingStateProvince" path="customer.delivery.stateProvince" title="${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">
- <div class="control-group">
+ <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" path="customer.delivery.country">
+ <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>
@@ -1020,7 +1041,7 @@ $(document).ready(function() {
<!-- Order summary right column -->
- <div class="span4">
+ <div class="span4 col-md-4 no-padding">
<!-- order summary box -->
<div class="box">
@@ -1028,7 +1049,7 @@ $(document).ready(function() {
<p class="p-title"><s:message code="label.order.summary" text="Order summary" /></p>
</span>
- <table id="summary-table" class="table table-condensed">
+ <table id="summary-table" class="table table-condensed table-hover">
<thead>
<tr>
<th width="55%"><s:message code="label.order.item" text="Item" /></th>
@@ -1071,7 +1092,7 @@ $(document).ready(function() {
<div id="totalRow" class="total-box">
- <span style="float:right">
+ <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>
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
index 88cbefd..d45f99b 100644
--- a/sm-shop/src/main/webapp/pages/shop/common/checkout/confirmation.jsp
+++ b/sm-shop/src/main/webapp/pages/shop/common/checkout/confirmation.jsp
@@ -87,7 +87,7 @@ $(document).ready(function() {
</c:if>
- <div id="main-content" class="container clearfix">
+ <div id="main-content" class="container clearfix no-padding-left">
<h1><s:message code="label.checkout.confirmation" text="Order completed" /></h1>
<div class="row-fluid">
<div class="span12">
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
index e91252b..96a9c90 100644
--- a/sm-shop/src/main/webapp/pages/shop/common/customer/address.jsp
+++ b/sm-shop/src/main/webapp/pages/shop/common/customer/address.jsp
@@ -27,11 +27,10 @@ function addShippingAddress(formId){
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<c:url var="editAddress" value="/shop/customer/editAddress.html"/>
-<div id="main-content" class="container clearfix">
- <div class="row-fluid">
- <div class="span12">
-
- <div class="span8">
+<div id="main-content" class="container clearfix row-fluid">
+ <div class="span12 common-row">
+
+ <div class="span8 col-md-8 no-padding">
<div class="box">
<span class="box-title">
<p class="p-title">
@@ -129,13 +128,11 @@ function addShippingAddress(formId){
</div>
</div>
- <div class="span4">
+ <div class="span4 col-md-4">
<jsp:include page="/pages/shop/common/customer/customerProfileMenu.jsp" />
<jsp:include page="/pages/shop/common/customer/customerOrdersMenu.jsp" />
</div>
</div>
</div>
- </div>
- <!-- close row-fluid-->
-</div>
+
<!--close .container "main-content" -->
\ No newline at end of file
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
index 4ae58dc..d641380 100644
--- a/sm-shop/src/main/webapp/pages/shop/common/customer/changePassword.jsp
+++ b/sm-shop/src/main/webapp/pages/shop/common/customer/changePassword.jsp
@@ -78,11 +78,10 @@ function resetGlobalErrors() {
</script>
- <div id="main-content" class="container clearfix">
- <div class="row-fluid">
- <div class="span12">
+ <div id="main-content" class="container clearfix row-fluid">
+ <div class="span12 common-row">
- <div class="span8">
+ <div class="span8 col-md-8 no-padding">
<div class="box">
<span class="box-title">
<p class="p-title">
@@ -94,29 +93,29 @@ function resetGlobalErrors() {
<div id="formError" class="alert alert-warning" style="display:none;"></div>
<form:form method="post" action="${changePassword}" id="changePasswordForm" class="form-horizontal" commandName="password">
<form:errors path="*" cssClass="alert alert-error" element="div" />
- <div class="control-group">
+ <div class="control-group form-group">
<label class="required control-label" for="currentPassword"><s:message code="label.customer.currentpassword" text="Current password"/></label>
<div class="controls">
- <s:message code="currentpassword.not.empty" text="Current password is required" var="msgCurrentPassword"/>
- <form:password path="currentPassword" cssClass="span3 required" id="currentPassword" title="${msgCurrentPassword}"/>
+ <s:message code="currentpassword.not.empty" text="Current password is required " var="msgCurrentPassword"/>
+ <form:password path="currentPassword" cssClass="span3 required form-control form-control-md" id="currentPassword" title="${msgCurrentPassword}"/>
<form:errors path="currentPassword" cssClass="error" />
</div>
</div>
- <div class="control-group">
+ <div class="control-group form-group">
<label class="required control-label" for="password"><s:message code="label.customer.newpassword" text="New password"/></label>
<div class="controls">
<s:message code="newpassword.not.empty" text="New password is required" var="msgPassword"/>
- <form:password path="password" cssClass="span3 required password" id="password" title="${msgPassword}"/>
+ <form:password path="password" cssClass="span3 required password form-control form-control-md" id="password" title="${msgPassword}"/>
<form:errors path="currentPassword" cssClass="error" />
</div>
</div>
- <div class="control-group">
+ <div class="control-group form-group">
<label class="required control-label" for="repeatPassword"><s:message code="label.customer.repeatpassword" text="Repeat password"/></label>
<div class="controls">
<s:message code="label.customer.repeatpassword" text="Current password is required" var="msgRepeatPassword"/>
- <form:password path="checkPassword" cssClass="span3 required checkPassword" id="checkPassword" title="${msgRepeatPassword}"/>
+ <form:password path="checkPassword" cssClass="span3 required checkPassword form-control form-control-md" id="checkPassword" title="${msgRepeatPassword}"/>
<form:errors path="currentPassword" cssClass="error" />
</div>
@@ -132,13 +131,11 @@ function resetGlobalErrors() {
</div>
</div>
- <div class="span4">
+ <div class="span4 col-md-4">
<jsp:include page="/pages/shop/common/customer/customerProfileMenu.jsp" />
<jsp:include page="/pages/shop/common/customer/customerOrdersMenu.jsp" />
</div>
</div>
<!--close .span12-->
- </div>
- <!-- close row-fluid-->
</div>
<!--close .container "main-content" -->
\ No newline at end of file
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
index dfe9c73..509c53f 100644
--- a/sm-shop/src/main/webapp/pages/shop/common/customer/customerOrdersMenu.jsp
+++ b/sm-shop/src/main/webapp/pages/shop/common/customer/customerOrdersMenu.jsp
@@ -15,6 +15,6 @@ response.setDateHeader ("Expires", -1);
<%@page pageEncoding="UTF-8"%>
<c:set var="orders" value="${pageContext.request.contextPath}/shop/customer/orders.html"/>
- <ul>
- <li> <a href="${orders}"><s:message code="label.order.recent" text="Recent orders"/></a></li>
+ <ul class="nav nav-list">
+ <li> <a href="${orders}"><i class="fa fa-angle-right"></i> <s:message code="label.order.recent" text="Recent orders"/></a></li>
</ul>
\ No newline at end of file
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
index 2799c88..6a31702 100644
--- a/sm-shop/src/main/webapp/pages/shop/common/customer/customerProfileMenu.jsp
+++ b/sm-shop/src/main/webapp/pages/shop/common/customer/customerProfileMenu.jsp
@@ -15,12 +15,12 @@ response.setDateHeader ("Expires", -1);
<%@page pageEncoding="UTF-8"%>
<c:set var="billing" value="${pageContext.request.contextPath}/shop/customer/billing.html"/>
- <ul>
- <li><a href="<c:url value="/shop/customer/dashboard.html"/>"><s:message code="label.customer.myaccount" text="My account"/></a></li>
+ <ul class="nav nav-list">
+ <li><a href="<c:url value="/shop/customer/dashboard.html"/>"><i class="fa fa-angle-right"></i> <s:message code="label.customer.myaccount" text="My account"/></a></li>
<li>
<a href="${billing}">
- <s:message code="label.customer.billingshipping" text="Billing & shipping information"/>
+ <i class="fa fa-angle-right"></i> <s:message code="label.customer.billingshipping" text="Billing & shipping information"/>
</a>
</li>
- <li><a href="<c:url value="/shop/customer/password.html"/>"><s:message code="menu.change-password" text="Change password"/></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>
</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
index cca80de..e3f6246 100644
--- a/sm-shop/src/main/webapp/pages/shop/common/customer/dashboard.jsp
+++ b/sm-shop/src/main/webapp/pages/shop/common/customer/dashboard.jsp
@@ -59,27 +59,27 @@ $(document).ready(function() {
</script>
- <div id="main-content" class="container clearfix">
- <div class="row-fluid">
- <div class="span12">
+ <div id="main-content" class="container clearfix row-fluid">
+
+ <div class="span-12 common-row">
<c:if test="${options!=null && fn:length(options)>0}">
- <div class="row-fluid">
- <div class="span12">
+ <!--<div class="row-fluid">-->
+ <!--<div class="span12 col-md-12 no-padding">-->
<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="box">
<span class="box-title">
- <p><font color="#FF8C00"><s:message code="label.customer.moredetails" text="More details"/></font></p>
+ <p class="p-title"><s:message code="label.customer.moredetails" text="More details"/></font></p>
</span
<c:forEach items="${options}" var="option" varStatus="status">
- <div class="control-group">
+ <div class="control-group form-group">
<label><c:out value="${option.name}"/></label>
<div class="controls">
<c:choose>
@@ -97,7 +97,7 @@ $(document).ready(function() {
</c:forEach>
</c:when>
<c:when test="${option.type=='Text'}">
- <input class="textAttribute" 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="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>">
</c:when>
<c:when test="${option.type=='Checkbox'}">
<c:forEach items="${option.availableValues}" var="optionValue">
@@ -118,7 +118,7 @@ $(document).ready(function() {
<div class="short-form-actions">
<div class="pull-left">
- <button type="submit" class="btn btn-success"><s:message code="button.label.save" text="Save"/></button>
+ <button type="submit" class="btn btn-large"><s:message code="button.label.save" text="Save"/></button>
</div>
</div>
@@ -128,8 +128,8 @@ $(document).ready(function() {
</div>
</div>
</form>
- </div>
- </div>
+ <!--</div>-->
+ <!--</div>-->
</c:if>
@@ -159,9 +159,9 @@ $(document).ready(function() {
</div>
</div>
- </div>
+ </div>
</div>
- </div>
+ <!--</div>-->
<!-- close row-fluid-->
</div>
<!--close .container "main-content" -->
\ No newline at end of file
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
index ac952c8..94c08d7 100644
--- a/sm-shop/src/main/webapp/pages/shop/common/customer/editAddress.jsp
+++ b/sm-shop/src/main/webapp/pages/shop/common/customer/editAddress.jsp
@@ -71,10 +71,10 @@ function isFormValid() {
</script>
<c:url var="updateAddress" value="/shop/customer/updateAddress.html"/>
-<div id="main-content" class="container clearfix">
- <div class="row-fluid">
- <div class="span12">
- <div class="span8">
+<div id="main-content" class="container clearfix row-fluid">
+ <div class="span12 common-row">
+
+ <div class="span8 col-md-8 no-padding">
<div class="box">
<span class="box-title">
@@ -101,50 +101,50 @@ function isFormValid() {
<form:errors id="address.error" path="*" cssClass="alert alert-error" element="div" />
<form:hidden path="${billingAddress}"/>
- <div class="control-group">
+ <div class="control-group form-group">
<label><s:message code="label.customer.firstname" text="First Name"/></label>
<div class="controls">
<s:message code="NotEmpty.customer.firstName" text="First name is required" var="msgFirstName"/>
- <form:input cssClass="input-large required" maxlength="64" path="firstName" title="${msgFirstName}"/>
+ <form:input cssClass="input-large required form-control form-control-md" maxlength="64" path="firstName" title="${msgFirstName}"/>
<span class="help-inline"><form:errors path="firstName" cssClass="error" /></span>
</div>
</div>
- <div class="control-group">
+ <div class="control-group form-group">
<label><s:message code="label.customer.lastname" text="Last Name"/></label>
<div class="controls">
<s:message code="NotEmpty.customer.lastName" text="Last name is required" var="msgLastName"/>
- <form:input cssClass="input-large required" maxlength="64" path="lastName" title="${msgLastName}"/>
+ <form:input cssClass="input-large required form-control form-control-md" maxlength="64" path="lastName" title="${msgLastName}"/>
<span class="help-inline"><form:errors path="lastName" cssClass="error" /></span>
</div>
</div>
- <div class="control-group">
+ <div class="control-group form-group">
<label><s:message code="label.customer.company" text="Company"/></label>
<div class="controls">
- <form:input cssClass="input-large" maxlength="100" path="company"/>
+ <form:input cssClass="input-large form-control form-control-md" maxlength="100" path="company"/>
</div>
</div>
- <div class="control-group">
+ <div class="control-group form-group">
<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"/>
- <form:input cssClass="input-large required" maxlength="256" path="address" title="${msgAddress}"/>
+ <form:input cssClass="input-large required form-control form-control-md" maxlength="256" path="address" title="${msgAddress}"/>
</div>
</div>
- <div class="control-group">
+ <div class="control-group form-group">
<label><s:message code="label.customer.city" text="City"/></label>
<div class="controls">
<s:message code="NotEmpty.customer.city" text="City is required" var="msgCity"/>
- <form:input cssClass="input-large required" maxlength="100" path="city" title="${msgCity}"/>
+ <form:input cssClass="input-large required form-control form-control-md" maxlength="100" path="city" title="${msgCity}"/>
</div>
</div>
- <div class="control-group">
+ <div class="control-group form-group">
<label><s:message code="label.customer.country" text="Country"/></label>
<div class="controls">
<form:select cssClass="billing-country-list" path="country" id="customer_country">
@@ -154,30 +154,30 @@ function isFormValid() {
</div>
</div>
- <div class="control-group">
+ <div class="control-group form-group">
<label><s:message code="label.customer.zone" text="State / Province"/></label>
<div class="controls">
<form:select cssClass="billing-zone-list" path="zone" id="customer_zones"/>
<s:message code="NotEmpty.customer.stateProvince" text="State / Province is required" var="msgStateProvince"/>
- <form:input class="input-large required" id="hidden_zones" maxlength="100" name="stateProvince" path="stateProvince" title="${msgStateProvince}" />
+ <form:input class="input-large required form-control form-control-md" id="hidden_zones" maxlength="100" name="stateProvince" path="stateProvince" title="${msgStateProvince}" />
<span class="help-inline"><form:errors path="zone" cssClass="error" /></span>
</div>
</div>
- <div class="control-group">
+ <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 customer-postalCode" maxlength="20" path="postalCode" title="${msgPostalCode}"/>
+ <form:input id="billingPostalCode" cssClass="input-large required customer-postalCode form-control form-control-md" maxlength="20" path="postalCode" title="${msgPostalCode}"/>
<span class="help-inline"><form:errors path="postalCode" cssClass="error" /></span>
</div>
</div>
- <div class="control-group">
+ <div class="control-group form-group">
<label><s:message code="label.customer.telephone" text="Phone"/></label>
<div class="controls">
<s:message code="NotEmpty.customer.billing.phone" text="Phone number is required" var="msgPhone"/>
- <form:input cssClass="input-large required customer-phone" maxlength="32" path="phone" title="${msgPhone}"/>
+ <form:input cssClass="input-large required customer-phone form-control form-control-md" maxlength="32" path="phone" title="${msgPhone}"/>
<span class="help-inline"><form:errors path="phone" cssClass="error" /></span>
</div>
</div>
@@ -194,13 +194,9 @@ function isFormValid() {
</form:form>
</div>
</div>
- <div class="span4">
+ <div class="span4 col-md-4">
<jsp:include page="/pages/shop/common/customer/customerProfileMenu.jsp" />
<jsp:include page="/pages/shop/common/customer/customerOrdersMenu.jsp" />
</div>
-
</div>
</div>
- </div>
- <!-- close row-fluid-->
-</div>
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
index 22383ad..a5c68b1 100644
--- a/sm-shop/src/main/webapp/pages/shop/common/customer/order.jsp
+++ b/sm-shop/src/main/webapp/pages/shop/common/customer/order.jsp
@@ -21,6 +21,7 @@ response.setDateHeader ("Expires", -1);
<script type="text/javascript">
function print() {
+ console.log('Print');
$('#printableOrder').printElement();
//https://github.com/jasonday/printThis
}
@@ -70,7 +71,7 @@ function print() {
<div class="col-md-4 col-sm-4 text-right pull-right">
- <a onclick="print();" class="btn btn-large" href="#"><s:message code="label.generic.print" text="Print" /></a>
+ <input type="button" onclick="print();" value="<s:message code="label.generic.print" text="Print" />" name="Print" class="btn btn-large">
</div>
</div>
@@ -146,15 +147,25 @@ function print() {
<img width="60" src="<sm:shopProductImage imageName="${product.image}" sku="${product.sku}"/>"/>
</c:if>
</div>
+
+ <span class="productName">
<c:choose>
<c:when test="${product.product!=null}">
- <a class="productName" href="<c:url value="/shop/product/" /><c:out value="${product.product.description.friendlyUrl}"/>.html"><c:out value="${product.productName}"/></a>
+ <a href="<c:url value="/shop/product/" /><c:out value="${product.product.description.friendlyUrl}"/>.html"><c:out value="${product.productName}"/></a>
</c:when>
<c:otherwise>
- <span class="productName"><c:out value="${product.productName}"/></span>
+ <c:out value="${product.productName}"/>
</c:otherwise>
</c:choose>
-
+ <br/>
+ <c:if test="${product.attributes !=null}">
+ <ul>
+ <c:forEach items="${product.attributes}" var="attribute">
+ <li><c:out value="${attribute.attributeName}"/>: <c:out value="${attribute.attributeValue}"/></li>
+ </c:forEach>
+ </ul>
+ </c:if>
+ </span>
<div class="quantity"><c:out value="${product.orderedQuantity}"/></div>
<div class="totalPrice"><c:out value="${product.price}"/></div>
<div class="subTotal"><c:out value="${product.subTotal}"/></div>
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
index 1c09e4f..364db42 100644
--- a/sm-shop/src/main/webapp/pages/shop/common/customer/orders.jsp
+++ b/sm-shop/src/main/webapp/pages/shop/common/customer/orders.jsp
@@ -18,13 +18,10 @@ response.setDateHeader ("Expires", -1);
<c:set var="ordersAction" value="${pageContext.request.contextPath}/shop/customer/orders.html"/>
<c:set var="customerOrder" value="${pageContext.request.contextPath}/shop/customer/order.html"/>
- <div id="main-content" class="container clearfix">
- <div class="row-fluid">
+<div id="main-content" class="container clearfix row-fluid">
+ <div class="span12 common-row">
- <div class="span12">
-
-
- <div class="span8">
+ <div class="span8 col-md-8 no-padding">
<div class="box">
<span class="box-title">
@@ -36,7 +33,7 @@ response.setDateHeader ("Expires", -1);
<c:if test="${not empty customerOrders.orders}">
<s:message code="label.entitylist.paging"
- arguments="${(paginationData.offset)};${((paginationData.offset)-1)+(paginationData.pageSize)};${paginationData.totalCount}"
+ arguments="${(paginationData.offset)};${paginationData.countByPage};${paginationData.totalCount}"
htmlEscape="false"
argumentSeparator=";" text=""/>
@@ -65,7 +62,7 @@ response.setDateHeader ("Expires", -1);
<tr><!-- item -->
<td><a href="${customerOrder}?orderId=${order.id}">${order.id}</a></td>
<td><fmt:formatDate type="both" value="${order.datePurchased}" /></td>
- <td><sm:monetary value="${order.total.value}" /> <small>(${fn:length(order.products)} item(s))</small></td>
+ <td><sm:monetary value="${order.total.value}" /> <small>(${fn:length(order.products)} <c:choose><c:when test="${fn:length(order.products)==1}"><s:message code="label.generic.item" text="item"/></c:when><c:otherwise><s:message code="label.generic.items" text="items"/></c:otherwise></c:choose>)</small></td>
<td>${order.orderStatus}</td>
</tr>
@@ -99,15 +96,12 @@ response.setDateHeader ("Expires", -1);
</div>
</div>
- <div class="span4">
+ <div class="span4 col-md-4 no-padding">
<jsp:include page="/pages/shop/common/customer/customerProfileMenu.jsp" />
<jsp:include page="/pages/shop/common/customer/customerOrdersMenu.jsp" />
</div>
- </div>
-
-
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
index f4e82f2..7b03b39 100644
--- a/sm-shop/src/main/webapp/pages/shop/common/customer/register.jsp
+++ b/sm-shop/src/main/webapp/pages/shop/common/customer/register.jsp
@@ -85,36 +85,36 @@ function isFormValid() {
</script>
-<div id="registrationError" class="alert alert-warning" style="display:none;"></div>
+
<c:set var="register_url" value="${pageContext.request.contextPath}/shop/customer/register.html"/>
- <div id="main-content" class="container clearfix">
- <div class="row-fluid">
- <div class="span7">
+ <div id="main-content" class="container clearfix row-fluid">
+ <div id="registrationError" class="alert alert-warning common-row" style="display:none;"></div>
+ <div class="span7 col-md-7 no-padding">
<form:form method="post" action="${register_url}" id="registrationForm" class="form-horizontal" commandName="customer">
- <form:errors path="*" cssClass="alert alert-error" element="div" />
+ <form:errors path="*" cssClass="alert alert-error alert-danger form-group" element="div" />
<fieldset>
- <div class="control-group">
+ <div class="control-group form-group">
<label class="required control-label" for="FirstNameRegister"><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 path="billing.firstName" cssClass="span8 required" id="firstName" title="${msgFirstName}"/>
+ <form:input path="billing.firstName" cssClass="span8 required input form-control form-control-md" id="firstName" title="${msgFirstName}"/>
<form:errors path="billing.firstName" cssClass="error" />
</div>
</div>
- <div class="control-group">
+ <div class="control-group form-group">
<label class="required control-label" for="LastNameRegister"><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 path="billing.lastName" cssClass="span8 required" id="lastName" title="${msgLastName}"/>
+ <form:input path="billing.lastName" cssClass="span8 required form-control form-control-md" id="lastName" title="${msgLastName}"/>
<form:errors path="billing.lastName" cssClass="error" />
</div>
</div>
- <div class="control-group">
+ <div class="control-group form-group">
<label class="required control-label" for="sex"><s:message code="label.generic.genre" text="Genre"/></label>
<div class="controls">
<form:select path="gender">
@@ -125,7 +125,7 @@ function isFormValid() {
</div>
</div>
- <div class="control-group">
+ <div class="control-group form-group">
<label class="control-label required"><s:message code="label.generic.country" text="Country"/></label>
<div class="controls">
<form:select path="billing.country" id="registration_country">
@@ -136,57 +136,57 @@ function isFormValid() {
- <div class="control-group">
+ <div class="control-group form-group">
<label class="control-label required"><s:message code="label.generic.stateprovince" text="State / Province"/></label>
<div class="controls">
<s:message code="NotEmpty.customer.billing.stateProvince" text="State / Province is required" var="msgStateProvince"/>
<form:select path="billing.zone" id="customer_zones" >
</form:select>
- <form:input path="billing.stateProvince" cssClass="span8 required" id="hidden_zones" title="${msgStateProvince}"/>
+ <form:input path="billing.stateProvince" cssClass="span8 required form-control form-control-md" id="hidden_zones" title="${msgStateProvince}"/>
</div>
</div>
- <div class="control-group">
+ <div class="control-group form-group">
<label class="required control-label" for="username"><s:message code="label.generic.username" text="User name" /></label>
<div class="controls">
<s:message code="NotEmpty.customer.userName" text="User name is required" var="msgUserName"/>
- <form:input path="userName" cssClass="span8 required userName" id="userName" title="${msgUserName}"/>
+ <form:input path="userName" cssClass="span8 required userName form-control form-control-md" id="userName" title="${msgUserName}"/>
<form:errors path="userName" cssClass="error" />
</div>
</div>
- <div class="control-group">
+ <div class="control-group form-group">
<label class="required control-label" for="email"><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 path="emailAddress" cssClass="span8 required email" id="email" title="${msgEmail}"/>
+ <form:input path="emailAddress" cssClass="span8 required email form-control form-control-md" id="email" title="${msgEmail}"/>
<form:errors path="emailAddress" cssClass="error" />
</div>
</div>
- <div class="control-group">
+ <div class="control-group form-group">
<label class="required control-label" for="password"><s:message code="label.generic.password" text="Password"/></label>
<div class="controls">
<s:message code="message.password.required" text="Password is required" var="msgPassword"/>
- <form:password path="password" class="span8 required password" id="password" title="${msgPassword}"/>
+ <form:password path="password" class="span8 required password form-control form-control-md" id="password" title="${msgPassword}"/>
<form:errors path="password" cssClass="error" />
</div>
</div>
- <div class="control-group">
+ <div class="control-group form-group">
<label class="required control-label" for="passwordAgain"><s:message code="label.generic.repeatpassword" text="Repeat password"/></label>
<div class="controls">
<s:message code="message.password.repeat.required" text="Repeated password is required" var="msgRepeatPassword"/>
- <form:password path="checkPassword" class="span8 required checkPassword" id="passwordAgain" title="${msgRepeatPassword}"/>
+ <form:password path="checkPassword" class="span8 required checkPassword form-control form-control-md" id="passwordAgain" title="${msgRepeatPassword}"/>
<form:errors path="checkPassword" cssClass="error" />
</div>
</div>
- <div class="control-group">
+ <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}">
@@ -197,7 +197,7 @@ function isFormValid() {
height="300" width="500" frameborder="0">
</iframe>
<br/>
- <form:textarea path="recaptcha_challenge_field" readonly="3" cols="40"/>
+ <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"
@@ -216,14 +216,11 @@ function isFormValid() {
</div>
<!--close .span7-->
- <div id="why-join" class="span4 offset1">
+ <div id="why-join" class="span4 offset1 col-md-5">
<h3 class="short_headline"><span><s:message code="label.register.whyregister" text="Why register?" /></span></h3>
<p>
<s:message code="label.register.registerreasons" text="Simplify a checkout process by having your information pre-filed, re-order an item from one click and get access to premium information." />
</p>
</div>
- <!--close span4 offset1-->
- </div>
- <!-- close row-fluid-->
</div>
<!--close .container "main-content" -->
\ No newline at end of file
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
index 78ce122..f01e09b 100644
--- a/sm-shop/src/main/webapp/pages/shop/common/merchant/contactus.jsp
+++ b/sm-shop/src/main/webapp/pages/shop/common/merchant/contactus.jsp
@@ -136,45 +136,45 @@ function sendContact(){
<div id="main-content" class="container clearfix">
- <h1><s:message code="label.customer.contactus" text="Contact us"/></h1>
- <div class="row-fluid">
+ <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">
+ <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">
+ <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" id="name" title="${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">
+ <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" id="email"/>
+ <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">
+ <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" id="subject"/>
+ <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">
+ <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" rows="10" id="comment"/>
+ <form:textarea path="comment" cssClass="span8 required form-control form-control-md" rows="10" id="comment"/>
</div>
</div>
- <div class="control-group">
+ <div class="control-group form-group">
<div class="controls">
<!--watch the white space in IOS!-->
<script type="text/javascript"
@@ -194,6 +194,7 @@ function sendContact(){
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">
@@ -208,30 +209,27 @@ function sendContact(){
<!-- BEGIN RIGHT-SIDE CONTACT FORM AREA -->
- <div class="contact-info span4 offset1">
+ <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>
+ <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>
</div>
<!-- END RIGHT-SIDE CONTACT FORM AREA -->
<!-- CUSTOM CONTENT -->
- <div class="row-fluid">
+ <div class="row-fluid common-row">
<c:if test="${content!=null}">
<br/>
<p>
@@ -240,7 +238,7 @@ function sendContact(){
<br/>
</c:if>
<br/>
- <div id="map_canvas" style="width:600px; height:300px"></div>
+ <div class="contactMapCanvas" id="map_canvas" style="width:600px; height:300px"></div>
</div>
diff --git a/sm-shop/src/main/webapp/pages/shop/common/notFound.jsp b/sm-shop/src/main/webapp/pages/shop/common/notFound.jsp
index b376015..87dd4eb 100644
--- a/sm-shop/src/main/webapp/pages/shop/common/notFound.jsp
+++ b/sm-shop/src/main/webapp/pages/shop/common/notFound.jsp
@@ -16,10 +16,10 @@ response.setDateHeader ("Expires", -1);
- <table>
+ <table class="container">
<tr>
- <td><img src="<c:url value="/resources/img/important-icon.png"/>" width="50"></td>
- <td><h3><s:message code="message.resource.notfound" text="Page not found"/></h3></td>
+ <td width="60"><img src="<c:url value="/resources/img/important-icon.png"/>" width="50"></td>
+ <td valign="middle"><h3><s:message code="message.resource.notfound" text="Page not found"/></h3></td>
</tr>
</table>
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
index ec5b94c..57279d4 100644
--- a/sm-shop/src/main/webapp/pages/shop/common/preBuiltBlocks/storeAddress.jsp
+++ b/sm-shop/src/main/webapp/pages/shop/common/preBuiltBlocks/storeAddress.jsp
@@ -7,7 +7,7 @@
- <address>
+ <address>
<div itemscope itemtype="http://schema.org/Organization">
<strong><span itemprop="name"><c:out value="${requestScope.MERCHANT_STORE.storename}"/></span></strong><br/>
<div itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
diff --git a/sm-shop/src/main/webapp/pages/shop/common/timeout.jsp b/sm-shop/src/main/webapp/pages/shop/common/timeout.jsp
index ab42112..7e89ef6 100644
--- a/sm-shop/src/main/webapp/pages/shop/common/timeout.jsp
+++ b/sm-shop/src/main/webapp/pages/shop/common/timeout.jsp
@@ -16,10 +16,10 @@ response.setDateHeader ("Expires", -1);
- <table>
+ <table class="container">
<tr>
- <td><img src="<c:url value="/resources/img/important-icon.png"/>" width="50"></td>
- <td><h3><s:message code="message.timeout" text="The request timed out"/></h3></td>
+ <td width="60"><img src="<c:url value="/resources/img/important-icon.png"/>" width="50"></td>
+ <td valign="middle"><h3><s:message code="message.timeout" text="The request timed out"/></h3></td>
</tr>
</table>
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
index 3498d76..2ea1435 100755
--- 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
@@ -37,6 +37,10 @@ response.setDateHeader ("Expires", -1);
loadCategoryProducts();
});
+
+
+ <jsp:include page="/pages/shop/templates/bootstrap/sections/shop-listing.jsp" />
+
function orderProducts(attribute) {
@@ -119,7 +123,7 @@ response.setDateHeader ("Expires", -1);
</script>
- <jsp:include page="/pages/shop/templates/bootstrap/sections/breadcrumb.jsp" />
+ <jsp:include page="/pages/shop/templates/bootstrap/sections/breadcrumb.jsp" />
<c:if test="${category.description.description!=null}">
<!-- category description -->
@@ -198,7 +202,7 @@ response.setDateHeader ("Expires", -1);
</div>
-
+ <!-- just copy that block for havimg products displayed -->
<!-- products are loaded by ajax -->
<ul id="productsContainer" class="thumbnails product-list"></ul>
@@ -206,7 +210,7 @@ response.setDateHeader ("Expires", -1);
<button 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><!--/span-->
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
index 618da97..c105ffc 100755
--- 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
@@ -35,7 +35,7 @@ response.setDateHeader ("Expires", -1);
<div class="span12">
<ul class="nav nav-tabs home" id="product-tab">
<c:if test="${requestScope.FEATURED_ITEM!=null}" ><li class="active"><a href="#tab1"><s:message code="menu.catalogue-featured" text="Featured items" /></a></li></c:if>
- <c:if test="${requestScope.SPECIALS!=null}" ><li><a href="#tab2"><s:message code="label.product.specials" text="Specials" /></a></li></c:if>
+ <c:if test="${requestScope.SPECIALS!=null}" ><li<c:if test="${requestScope.FEATURED_ITEM==null}"> class="active"</c:if>><a href="#tab2"><s:message code="label.product.specials" text="Specials" /></a></li></c:if>
</ul>
<div class="tab-content">
<!-- one div by section -->
@@ -48,10 +48,11 @@ response.setDateHeader ("Expires", -1);
<c:set var="FEATURED" value="true" scope="request" />
<jsp:include page="/pages/shop/templates/bootstrap/sections/productBox.jsp" />
</ul>
+
</div>
</c:if>
<c:if test="${requestScope.SPECIALS!=null}" >
- <div class="tab-pane" id="tab2">
+ <div class="tab-pane <c:if test="${requestScope.FEATURED_ITEM==null}">active</c:if>" id="tab2">
<ul class="thumbnails product-list">
<!-- Iterate over featuredItems -->
<c:set var="ITEMS" value="${requestScope.SPECIALS}" scope="request" />
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
index ff03d81..a6f2d6a 100644
--- 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
@@ -28,6 +28,10 @@ response.setDateHeader ("Expires", -1);
});
+
+ <jsp:include page="/pages/shop/templates/bootstrap/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);
@@ -80,7 +84,6 @@ response.setDateHeader ("Expires", -1);
<div class="span3">
<div class="sidebar-nav">
<ul id="categoriesFacets" class="nav nav-list">
- <!--<li class="nav-header"></li>-->
</ul>
</div>
</div><!--/span-->
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
index a732572..a4f9bf8 100755
--- 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
@@ -63,11 +63,11 @@ response.setDateHeader ("Expires", -1);
</a>
<ul class="dropdown-menu">
<li>
- <a href="<c:url value="/shop/customer/dashboard.html" />"><s:message code="label.customer.myaccount" text="My account"/></a>
+ <a onClick="javascript:location.href='<c:url value="/shop/customer/dashboard.html" />';" href="#"><i class="fa fa-user"></i><s:message code="label.customer.myaccount" text="My account"/></a>
</li>
<li class="divider"></li>
<li>
- <a href="<c:url value="/shop/customer/j_spring_security_logout" />"><s:message code="button.label.logout" text="Logout"/></a>
+ <a onClick="javascript:location.href='<c:url value="/shop/customer/j_spring_security_logout" />';" href="#"><i class="fa fa-power-off"></i><s:message code="button.label.logout" text="Logout"/></a>
</li>
</ul>
</li>
@@ -96,20 +96,20 @@ response.setDateHeader ("Expires", -1);
<div class="control-group">
<label><s:message code="label.username" text="Username" /></label>
<div class="controls">
- <input id="userName" style="margin-bottom: 15px;" type="text" name="userName" size="30" />
+ <input id="signin_userName" style="margin-bottom: 15px;" type="text" name="userName" size="30" />
</div>
</div>
<div class="control-group">
<label><s:message code="label.password" text="Password" /></label>
<div class="controls">
- <input id="password" style="margin-bottom: 15px;" type="password" name="password" size="30" />
+ <input id="signin_password" style="margin-bottom: 15px;" type="password" name="password" size="30" />
</div>
</div>
- <input id="storeCode" name="storeCode" type="hidden" value="<c:out value="${requestScope.MERCHANT_STORE.code}"/>"/>
+ <input id="signin_storeCode" name="storeCode" type="hidden" value="<c:out value="${requestScope.MERCHANT_STORE.code}"/>"/>
<button type="submit" style="width:100%" class="btn btn-large" id="login-button"><s:message code="button.label.login" text="Login" /></button>
</form>
- <a href="<c:url value="/shop/customer/registration.html" />" role="button" class="" data-toggle="modal"><s:message code="label.register.notyetregistered" text="Not yet registered ?" /></a>
+ <a onClick="javascript:location.href='<c:url value="/shop/customer/registration.html" />';" href="" role="button" class="" data-toggle="modal"><s:message code="label.register.notyetregistered" text="Not yet registered ?" /></a>
</div>
</li>
</ul>
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
index c7d5cc6..bbdf7e6 100755
--- 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
@@ -60,7 +60,7 @@ $(document).ready(function() {
<!-- Start Navbar-->
- <div class="row-fluid">
+ <div id="storeBar" class="row-fluid">
<div class="span4 pull-left">
<nav class="logo">
@@ -82,6 +82,7 @@ $(document).ready(function() {
<nav id="menu" class="pull-right">
<ul id="mainMenu">
+ <!-- request contains url and url contains /shop -->
<li class="">
<a href="<c:url value="/shop"/>" class="current">
<span class="name"><s:message code="menu.home" text="Home"/></span>
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
index 866437f..3d920fc 100644
--- 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
@@ -1,403 +1,4 @@
-@font-face{font-family:'FontAwesome';src:url('../font/fontawesome-webfont.eot?v=3.2.1');src:url('../font/fontawesome-webfont.eot?#iefix&v=3.2.1') format('embedded-opentype'),url('../font/fontawesome-webfont.woff?v=3.2.1') format('woff'),url('../font/fontawesome-webfont.ttf?v=3.2.1') format('truetype'),url('../font/fontawesome-webfont.svg#fontawesomeregular?v=3.2.1') format('svg');font-weight:normal;font-style:normal;}[class^="icon-"],[class*=" icon-"]{font-family:FontAwesome;font-weight:normal;font-style:normal;text-decoration:inherit;-webkit-font-smoothing:antialiased;*margin-right:.3em;}
-[class^="icon-"]:before,[class*=" icon-"]:before{text-decoration:inherit;display:inline-block;speak:none;}
-.icon-large:before{vertical-align:-10%;font-size:1.3333333333333333em;}
-a [class^="icon-"],a [class*=" icon-"]{display:inline;}
-[class^="icon-"].icon-fixed-width,[class*=" icon-"].icon-fixed-width{display:inline-block;width:1.1428571428571428em;text-align:right;padding-right:0.2857142857142857em;}[class^="icon-"].icon-fixed-width.icon-large,[class*=" icon-"].icon-fixed-width.icon-large{width:1.4285714285714286em;}
-.icons-ul{margin-left:2.142857142857143em;list-style-type:none;}.icons-ul>li{position:relative;}
-.icons-ul .icon-li{position:absolute;left:-2.142857142857143em;width:2.142857142857143em;text-align:center;line-height:inherit;}
-[class^="icon-"].hide,[class*=" icon-"].hide{display:none;}
-.icon-muted{color:#eeeeee;}
-.icon-light{color:#ffffff;}
-.icon-dark{color:#333333;}
-.icon-border{border:solid 1px #eeeeee;padding:.2em .25em .15em;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}
-.icon-2x{font-size:2em;}.icon-2x.icon-border{border-width:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}
-.icon-3x{font-size:3em;}.icon-3x.icon-border{border-width:3px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;}
-.icon-4x{font-size:4em;}.icon-4x.icon-border{border-width:4px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;}
-.icon-5x{font-size:5em;}.icon-5x.icon-border{border-width:5px;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px;}
-.pull-right{float:right;}
-.pull-left{float:left;}
-[class^="icon-"].pull-left,[class*=" icon-"].pull-left{margin-right:.3em;}
-[class^="icon-"].pull-right,[class*=" icon-"].pull-right{margin-left:.3em;}
-[class^="icon-"],[class*=" icon-"]{display:inline;width:auto;height:auto;line-height:normal;vertical-align:baseline;background-image:none;background-position:0% 0%;background-repeat:repeat;margin-top:0;}
-.icon-white,.nav-pills>.active>a>[class^="icon-"],.nav-pills>.active>a>[class*=" icon-"],.nav-list>.active>a>[class^="icon-"],.nav-list>.active>a>[class*=" icon-"],.navbar-inverse .nav>.active>a>[class^="icon-"],.navbar-inverse .nav>.active>a>[class*=" icon-"],.dropdown-menu>li>a:hover>[class^="icon-"],.dropdown-menu>li>a:hover>[class*=" icon-"],.dropdown-menu>.active>a>[class^="icon-"],.dropdown-menu>.active>a>[class*=" icon-"],.dropdown-submenu:hover>a>[class^="icon-"],.dropdown-submenu:hover>a>[class*=" icon-"]{background-image:none;}
-.btn [class^="icon-"].icon-large,.nav [class^="icon-"].icon-large,.btn [class*=" icon-"].icon-large,.nav [class*=" icon-"].icon-large{line-height:.9em;}
-.btn [class^="icon-"].icon-spin,.nav [class^="icon-"].icon-spin,.btn [class*=" icon-"].icon-spin,.nav [class*=" icon-"].icon-spin{display:inline-block;}
-.nav-tabs [class^="icon-"],.nav-pills [class^="icon-"],.nav-tabs [class*=" icon-"],.nav-pills [class*=" icon-"],.nav-tabs [class^="icon-"].icon-large,.nav-pills [class^="icon-"].icon-large,.nav-tabs [class*=" icon-"].icon-large,.nav-pills [class*=" icon-"].icon-large{line-height:.9em;}
-.btn [class^="icon-"].pull-left.icon-2x,.btn [class*=" icon-"].pull-left.icon-2x,.btn [class^="icon-"].pull-right.icon-2x,.btn [class*=" icon-"].pull-right.icon-2x{margin-top:.18em;}
-.btn [class^="icon-"].icon-spin.icon-large,.btn [class*=" icon-"].icon-spin.icon-large{line-height:.8em;}
-.btn.btn-small [class^="icon-"].pull-left.icon-2x,.btn.btn-small [class*=" icon-"].pull-left.icon-2x,.btn.btn-small [class^="icon-"].pull-right.icon-2x,.btn.btn-small [class*=" icon-"].pull-right.icon-2x{margin-top:.25em;}
-.btn.btn-large [class^="icon-"],.btn.btn-large [class*=" icon-"]{margin-top:0;}.btn.btn-large [class^="icon-"].pull-left.icon-2x,.btn.btn-large [class*=" icon-"].pull-left.icon-2x,.btn.btn-large [class^="icon-"].pull-right.icon-2x,.btn.btn-large [class*=" icon-"].pull-right.icon-2x{margin-top:.05em;}
-.btn.btn-large [class^="icon-"].pull-left.icon-2x,.btn.btn-large [class*=" icon-"].pull-left.icon-2x{margin-right:.2em;}
-.btn.btn-large [class^="icon-"].pull-right.icon-2x,.btn.btn-large [class*=" icon-"].pull-right.icon-2x{margin-left:.2em;}
-.nav-list [class^="icon-"],.nav-list [class*=" icon-"]{line-height:inherit;}
-.icon-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:-35%;}.icon-stack [class^="icon-"],.icon-stack [class*=" icon-"]{display:block;text-align:center;position:absolute;width:100%;height:100%;font-size:1em;line-height:inherit;*line-height:2em;}
-.icon-stack .icon-stack-base{font-size:2em;*line-height:1em;}
-.icon-spin{display:inline-block;-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;-webkit-animation:spin 2s infinite linear;animation:spin 2s infinite linear;}
-a .icon-stack,a .icon-spin{display:inline-block;text-decoration:none;}
-@-moz-keyframes spin{0%{-moz-transform:rotate(0deg);} 100%{-moz-transform:rotate(359deg);}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg);} 100%{-webkit-transform:rotate(359deg);}}@-o-keyframes spin{0%{-o-transform:rotate(0deg);} 100%{-o-transform:rotate(359deg);}}@-ms-keyframes spin{0%{-ms-transform:rotate(0deg);} 100%{-ms-transform:rotate(359deg);}}@keyframes spin{0%{transform:rotate(0deg);} 100%{transform:rotate(359deg);}}.icon-rotate-90:before{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);}
-.icon-rotate-180:before{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);}
-.icon-rotate-270:before{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);}
-.icon-flip-horizontal:before{-webkit-transform:scale(-1, 1);-moz-transform:scale(-1, 1);-ms-transform:scale(-1, 1);-o-transform:scale(-1, 1);transform:scale(-1, 1);}
-.icon-flip-vertical:before{-webkit-transform:scale(1, -1);-moz-transform:scale(1, -1);-ms-transform:scale(1, -1);-o-transform:scale(1, -1);transform:scale(1, -1);}
-a .icon-rotate-90:before,a .icon-rotate-180:before,a .icon-rotate-270:before,a .icon-flip-horizontal:before,a .icon-flip-vertical:before{display:inline-block;}
-.icon-glass:before{content:"\f000";}
-.icon-music:before{content:"\f001";}
-.icon-search:before{content:"\f002";}
-.icon-envelope-alt:before{content:"\f003";}
-.icon-heart:before{content:"\f004";}
-.icon-star:before{content:"\f005";}
-.icon-star-empty:before{content:"\f006";}
-.icon-user:before{content:"\f007";}
-.icon-film:before{content:"\f008";}
-.icon-th-large:before{content:"\f009";}
-.icon-th:before{content:"\f00a";}
-.icon-th-list:before{content:"\f00b";}
-.icon-ok:before{content:"\f00c";}
-.icon-remove:before{content:"\f00d";}
-.icon-zoom-in:before{content:"\f00e";}
-.icon-zoom-out:before{content:"\f010";}
-.icon-power-off:before,.icon-off:before{content:"\f011";}
-.icon-signal:before{content:"\f012";}
-.icon-gear:before,.icon-cog:before{content:"\f013";}
-.icon-trash:before{content:"\f014";}
-.icon-home:before{content:"\f015";}
-.icon-file-alt:before{content:"\f016";}
-.icon-time:before{content:"\f017";}
-.icon-road:before{content:"\f018";}
-.icon-download-alt:before{content:"\f019";}
-.icon-download:before{content:"\f01a";}
-.icon-upload:before{content:"\f01b";}
-.icon-inbox:before{content:"\f01c";}
-.icon-play-circle:before{content:"\f01d";}
-.icon-rotate-right:before,.icon-repeat:before{content:"\f01e";}
-.icon-refresh:before{content:"\f021";}
-.icon-list-alt:before{content:"\f022";}
-.icon-lock:before{content:"\f023";}
-.icon-flag:before{content:"\f024";}
-.icon-headphones:before{content:"\f025";}
-.icon-volume-off:before{content:"\f026";}
-.icon-volume-down:before{content:"\f027";}
-.icon-volume-up:before{content:"\f028";}
-.icon-qrcode:before{content:"\f029";}
-.icon-barcode:before{content:"\f02a";}
-.icon-tag:before{content:"\f02b";}
-.icon-tags:before{content:"\f02c";}
-.icon-book:before{content:"\f02d";}
-.icon-bookmark:before{content:"\f02e";}
-.icon-print:before{content:"\f02f";}
-.icon-camera:before{content:"\f030";}
-.icon-font:before{content:"\f031";}
-.icon-bold:before{content:"\f032";}
-.icon-italic:before{content:"\f033";}
-.icon-text-height:before{content:"\f034";}
-.icon-text-width:before{content:"\f035";}
-.icon-align-left:before{content:"\f036";}
-.icon-align-center:before{content:"\f037";}
-.icon-align-right:before{content:"\f038";}
-.icon-align-justify:before{content:"\f039";}
-.icon-list:before{content:"\f03a";}
-.icon-indent-left:before{content:"\f03b";}
-.icon-indent-right:before{content:"\f03c";}
-.icon-facetime-video:before{content:"\f03d";}
-.icon-picture:before{content:"\f03e";}
-.icon-pencil:before{content:"\f040";}
-.icon-map-marker:before{content:"\f041";}
-.icon-adjust:before{content:"\f042";}
-.icon-tint:before{content:"\f043";}
-.icon-edit:before{content:"\f044";}
-.icon-share:before{content:"\f045";}
-.icon-check:before{content:"\f046";}
-.icon-move:before{content:"\f047";}
-.icon-step-backward:before{content:"\f048";}
-.icon-fast-backward:before{content:"\f049";}
-.icon-backward:before{content:"\f04a";}
-.icon-play:before{content:"\f04b";}
-.icon-pause:before{content:"\f04c";}
-.icon-stop:before{content:"\f04d";}
-.icon-forward:before{content:"\f04e";}
-.icon-fast-forward:before{content:"\f050";}
-.icon-step-forward:before{content:"\f051";}
-.icon-eject:before{content:"\f052";}
-.icon-chevron-left:before{content:"\f053";}
-.icon-chevron-right:before{content:"\f054";}
-.icon-plus-sign:before{content:"\f055";}
-.icon-minus-sign:before{content:"\f056";}
-.icon-remove-sign:before{content:"\f057";}
-.icon-ok-sign:before{content:"\f058";}
-.icon-question-sign:before{content:"\f059";}
-.icon-info-sign:before{content:"\f05a";}
-.icon-screenshot:before{content:"\f05b";}
-.icon-remove-circle:before{content:"\f05c";}
-.icon-ok-circle:before{content:"\f05d";}
-.icon-ban-circle:before{content:"\f05e";}
-.icon-arrow-left:before{content:"\f060";}
-.icon-arrow-right:before{content:"\f061";}
-.icon-arrow-up:before{content:"\f062";}
-.icon-arrow-down:before{content:"\f063";}
-.icon-mail-forward:before,.icon-share-alt:before{content:"\f064";}
-.icon-resize-full:before{content:"\f065";}
-.icon-resize-small:before{content:"\f066";}
-.icon-plus:before{content:"\f067";}
-.icon-minus:before{content:"\f068";}
-.icon-asterisk:before{content:"\f069";}
-.icon-exclamation-sign:before{content:"\f06a";}
-.icon-gift:before{content:"\f06b";}
-.icon-leaf:before{content:"\f06c";}
-.icon-fire:before{content:"\f06d";}
-.icon-eye-open:before{content:"\f06e";}
-.icon-eye-close:before{content:"\f070";}
-.icon-warning-sign:before{content:"\f071";}
-.icon-plane:before{content:"\f072";}
-.icon-calendar:before{content:"\f073";}
-.icon-random:before{content:"\f074";}
-.icon-comment:before{content:"\f075";}
-.icon-magnet:before{content:"\f076";}
-.icon-chevron-up:before{content:"\f077";}
-.icon-chevron-down:before{content:"\f078";}
-.icon-retweet:before{content:"\f079";}
-.icon-shopping-cart:before{content:"\f07a";}
-.icon-folder-close:before{content:"\f07b";}
-.icon-folder-open:before{content:"\f07c";}
-.icon-resize-vertical:before{content:"\f07d";}
-.icon-resize-horizontal:before{content:"\f07e";}
-.icon-bar-chart:before{content:"\f080";}
-.icon-twitter-sign:before{content:"\f081";}
-.icon-facebook-sign:before{content:"\f082";}
-.icon-camera-retro:before{content:"\f083";}
-.icon-key:before{content:"\f084";}
-.icon-gears:before,.icon-cogs:before{content:"\f085";}
-.icon-comments:before{content:"\f086";}
-.icon-thumbs-up-alt:before{content:"\f087";}
-.icon-thumbs-down-alt:before{content:"\f088";}
-.icon-star-half:before{content:"\f089";}
-.icon-heart-empty:before{content:"\f08a";}
-.icon-signout:before{content:"\f08b";}
-.icon-linkedin-sign:before{content:"\f08c";}
-.icon-pushpin:before{content:"\f08d";}
-.icon-external-link:before{content:"\f08e";}
-.icon-signin:before{content:"\f090";}
-.icon-trophy:before{content:"\f091";}
-.icon-github-sign:before{content:"\f092";}
-.icon-upload-alt:before{content:"\f093";}
-.icon-lemon:before{content:"\f094";}
-.icon-phone:before{content:"\f095";}
-.icon-unchecked:before,.icon-check-empty:before{content:"\f096";}
-.icon-bookmark-empty:before{content:"\f097";}
-.icon-phone-sign:before{content:"\f098";}
-.icon-twitter:before{content:"\f099";}
-.icon-facebook:before{content:"\f09a";}
-.icon-github:before{content:"\f09b";}
-.icon-unlock:before{content:"\f09c";}
-.icon-credit-card:before{content:"\f09d";}
-.icon-rss:before{content:"\f09e";}
-.icon-hdd:before{content:"\f0a0";}
-.icon-bullhorn:before{content:"\f0a1";}
-.icon-bell:before{content:"\f0a2";}
-.icon-certificate:before{content:"\f0a3";}
-.icon-hand-right:before{content:"\f0a4";}
-.icon-hand-left:before{content:"\f0a5";}
-.icon-hand-up:before{content:"\f0a6";}
-.icon-hand-down:before{content:"\f0a7";}
-.icon-circle-arrow-left:before{content:"\f0a8";}
-.icon-circle-arrow-right:before{content:"\f0a9";}
-.icon-circle-arrow-up:before{content:"\f0aa";}
-.icon-circle-arrow-down:before{content:"\f0ab";}
-.icon-globe:before{content:"\f0ac";}
-.icon-wrench:before{content:"\f0ad";}
-.icon-tasks:before{content:"\f0ae";}
-.icon-filter:before{content:"\f0b0";}
-.icon-briefcase:before{content:"\f0b1";}
-.icon-fullscreen:before{content:"\f0b2";}
-.icon-group:before{content:"\f0c0";}
-.icon-link:before{content:"\f0c1";}
-.icon-cloud:before{content:"\f0c2";}
-.icon-beaker:before{content:"\f0c3";}
-.icon-cut:before{content:"\f0c4";}
-.icon-copy:before{content:"\f0c5";}
-.icon-paperclip:before,.icon-paper-clip:before{content:"\f0c6";}
-.icon-save:before{content:"\f0c7";}
-.icon-sign-blank:before{content:"\f0c8";}
-.icon-reorder:before{content:"\f0c9";}
-.icon-list-ul:before{content:"\f0ca";}
-.icon-list-ol:before{content:"\f0cb";}
-.icon-strikethrough:before{content:"\f0cc";}
-.icon-underline:before{content:"\f0cd";}
-.icon-table:before{content:"\f0ce";}
-.icon-magic:before{content:"\f0d0";}
-.icon-truck:before{content:"\f0d1";}
-.icon-pinterest:before{content:"\f0d2";}
-.icon-pinterest-sign:before{content:"\f0d3";}
-.icon-google-plus-sign:before{content:"\f0d4";}
-.icon-google-plus:before{content:"\f0d5";}
-.icon-money:before{content:"\f0d6";}
-.icon-caret-down:before{content:"\f0d7";}
-.icon-caret-up:before{content:"\f0d8";}
-.icon-caret-left:before{content:"\f0d9";}
-.icon-caret-right:before{content:"\f0da";}
-.icon-columns:before{content:"\f0db";}
-.icon-sort:before{content:"\f0dc";}
-.icon-sort-down:before{content:"\f0dd";}
-.icon-sort-up:before{content:"\f0de";}
-.icon-envelope:before{content:"\f0e0";}
-.icon-linkedin:before{content:"\f0e1";}
-.icon-rotate-left:before,.icon-undo:before{content:"\f0e2";}
-.icon-legal:before{content:"\f0e3";}
-.icon-dashboard:before{content:"\f0e4";}
-.icon-comment-alt:before{content:"\f0e5";}
-.icon-comments-alt:before{content:"\f0e6";}
-.icon-bolt:before{content:"\f0e7";}
-.icon-sitemap:before{content:"\f0e8";}
-.icon-umbrella:before{content:"\f0e9";}
-.icon-paste:before{content:"\f0ea";}
-.icon-lightbulb:before{content:"\f0eb";}
-.icon-exchange:before{content:"\f0ec";}
-.icon-cloud-download:before{content:"\f0ed";}
-.icon-cloud-upload:before{content:"\f0ee";}
-.icon-user-md:before{content:"\f0f0";}
-.icon-stethoscope:before{content:"\f0f1";}
-.icon-suitcase:before{content:"\f0f2";}
-.icon-bell-alt:before{content:"\f0f3";}
-.icon-coffee:before{content:"\f0f4";}
-.icon-food:before{content:"\f0f5";}
-.icon-file-text-alt:before{content:"\f0f6";}
-.icon-building:before{content:"\f0f7";}
-.icon-hospital:before{content:"\f0f8";}
-.icon-ambulance:before{content:"\f0f9";}
-.icon-medkit:before{content:"\f0fa";}
-.icon-fighter-jet:before{content:"\f0fb";}
-.icon-beer:before{content:"\f0fc";}
-.icon-h-sign:before{content:"\f0fd";}
-.icon-plus-sign-alt:before{content:"\f0fe";}
-.icon-double-angle-left:before{content:"\f100";}
-.icon-double-angle-right:before{content:"\f101";}
-.icon-double-angle-up:before{content:"\f102";}
-.icon-double-angle-down:before{content:"\f103";}
-.icon-angle-left:before{content:"\f104";}
-.icon-angle-right:before{content:"\f105";}
-.icon-angle-up:before{content:"\f106";}
-.icon-angle-down:before{content:"\f107";}
-.icon-desktop:before{content:"\f108";}
-.icon-laptop:before{content:"\f109";}
-.icon-tablet:before{content:"\f10a";}
-.icon-mobile-phone:before{content:"\f10b";}
-.icon-circle-blank:before{content:"\f10c";}
-.icon-quote-left:before{content:"\f10d";}
-.icon-quote-right:before{content:"\f10e";}
-.icon-spinner:before{content:"\f110";}
-.icon-circle:before{content:"\f111";}
-.icon-mail-reply:before,.icon-reply:before{content:"\f112";}
-.icon-github-alt:before{content:"\f113";}
-.icon-folder-close-alt:before{content:"\f114";}
-.icon-folder-open-alt:before{content:"\f115";}
-.icon-expand-alt:before{content:"\f116";}
-.icon-collapse-alt:before{content:"\f117";}
-.icon-smile:before{content:"\f118";}
-.icon-frown:before{content:"\f119";}
-.icon-meh:before{content:"\f11a";}
-.icon-gamepad:before{content:"\f11b";}
-.icon-keyboard:before{content:"\f11c";}
-.icon-flag-alt:before{content:"\f11d";}
-.icon-flag-checkered:before{content:"\f11e";}
-.icon-terminal:before{content:"\f120";}
-.icon-code:before{content:"\f121";}
-.icon-reply-all:before{content:"\f122";}
-.icon-mail-reply-all:before{content:"\f122";}
-.icon-star-half-full:before,.icon-star-half-empty:before{content:"\f123";}
-.icon-location-arrow:before{content:"\f124";}
-.icon-crop:before{content:"\f125";}
-.icon-code-fork:before{content:"\f126";}
-.icon-unlink:before{content:"\f127";}
-.icon-question:before{content:"\f128";}
-.icon-info:before{content:"\f129";}
-.icon-exclamation:before{content:"\f12a";}
-.icon-superscript:before{content:"\f12b";}
-.icon-subscript:before{content:"\f12c";}
-.icon-eraser:before{content:"\f12d";}
-.icon-puzzle-piece:before{content:"\f12e";}
-.icon-microphone:before{content:"\f130";}
-.icon-microphone-off:before{content:"\f131";}
-.icon-shield:before{content:"\f132";}
-.icon-calendar-empty:before{content:"\f133";}
-.icon-fire-extinguisher:before{content:"\f134";}
-.icon-rocket:before{content:"\f135";}
-.icon-maxcdn:before{content:"\f136";}
-.icon-chevron-sign-left:before{content:"\f137";}
-.icon-chevron-sign-right:before{content:"\f138";}
-.icon-chevron-sign-up:before{content:"\f139";}
-.icon-chevron-sign-down:before{content:"\f13a";}
-.icon-html5:before{content:"\f13b";}
-.icon-css3:before{content:"\f13c";}
-.icon-anchor:before{content:"\f13d";}
-.icon-unlock-alt:before{content:"\f13e";}
-.icon-bullseye:before{content:"\f140";}
-.icon-ellipsis-horizontal:before{content:"\f141";}
-.icon-ellipsis-vertical:before{content:"\f142";}
-.icon-rss-sign:before{content:"\f143";}
-.icon-play-sign:before{content:"\f144";}
-.icon-ticket:before{content:"\f145";}
-.icon-minus-sign-alt:before{content:"\f146";}
-.icon-check-minus:before{content:"\f147";}
-.icon-level-up:before{content:"\f148";}
-.icon-level-down:before{content:"\f149";}
-.icon-check-sign:before{content:"\f14a";}
-.icon-edit-sign:before{content:"\f14b";}
-.icon-external-link-sign:before{content:"\f14c";}
-.icon-share-sign:before{content:"\f14d";}
-.icon-compass:before{content:"\f14e";}
-.icon-collapse:before{content:"\f150";}
-.icon-collapse-top:before{content:"\f151";}
-.icon-expand:before{content:"\f152";}
-.icon-euro:before,.icon-eur:before{content:"\f153";}
-.icon-gbp:before{content:"\f154";}
-.icon-dollar:before,.icon-usd:before{content:"\f155";}
-.icon-rupee:before,.icon-inr:before{content:"\f156";}
-.icon-yen:before,.icon-jpy:before{content:"\f157";}
-.icon-renminbi:before,.icon-cny:before{content:"\f158";}
-.icon-won:before,.icon-krw:before{content:"\f159";}
-.icon-bitcoin:before,.icon-btc:before{content:"\f15a";}
-.icon-file:before{content:"\f15b";}
-.icon-file-text:before{content:"\f15c";}
-.icon-sort-by-alphabet:before{content:"\f15d";}
-.icon-sort-by-alphabet-alt:before{content:"\f15e";}
-.icon-sort-by-attributes:before{content:"\f160";}
-.icon-sort-by-attributes-alt:before{content:"\f161";}
-.icon-sort-by-order:before{content:"\f162";}
-.icon-sort-by-order-alt:before{content:"\f163";}
-.icon-thumbs-up:before{content:"\f164";}
-.icon-thumbs-down:before{content:"\f165";}
-.icon-youtube-sign:before{content:"\f166";}
-.icon-youtube:before{content:"\f167";}
-.icon-xing:before{content:"\f168";}
-.icon-xing-sign:before{content:"\f169";}
-.icon-youtube-play:before{content:"\f16a";}
-.icon-dropbox:before{content:"\f16b";}
-.icon-stackexchange:before{content:"\f16c";}
-.icon-instagram:before{content:"\f16d";}
-.icon-flickr:before{content:"\f16e";}
-.icon-adn:before{content:"\f170";}
-.icon-bitbucket:before{content:"\f171";}
-.icon-bitbucket-sign:before{content:"\f172";}
-.icon-tumblr:before{content:"\f173";}
-.icon-tumblr-sign:before{content:"\f174";}
-.icon-long-arrow-down:before{content:"\f175";}
-.icon-long-arrow-up:before{content:"\f176";}
-.icon-long-arrow-left:before{content:"\f177";}
-.icon-long-arrow-right:before{content:"\f178";}
-.icon-apple:before{content:"\f179";}
-.icon-windows:before{content:"\f17a";}
-.icon-android:before{content:"\f17b";}
-.icon-linux:before{content:"\f17c";}
-.icon-dribbble:before{content:"\f17d";}
-.icon-skype:before{content:"\f17e";}
-.icon-foursquare:before{content:"\f180";}
-.icon-trello:before{content:"\f181";}
-.icon-female:before{content:"\f182";}
-.icon-male:before{content:"\f183";}
-.icon-gittip:before{content:"\f184";}
-.icon-sun:before{content:"\f185";}
-.icon-moon:before{content:"\f186";}
-.icon-archive:before{content:"\f187";}
-.icon-bug:before{content:"\f188";}
-.icon-vk:before{content:"\f189";}
-.icon-weibo:before{content:"\f18a";}
-.icon-renren:before{content:"\f18b";}
+/*!
+ * Font Awesome 4.1.0 by @davegandy - http://fontawesome.io - @fontawesome
+ * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
+ */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.1.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.1.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff?v=4.1.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.1.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.1.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:spin 2s infinite linear;-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;animation:spin 2s infinite linear}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg)}100%{-moz-transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg)}}@-o-keyframes spin{0%{-o-transform:rotate(0deg)}100%{-o-transform:rotate(359deg)}}@keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);-webkit-transform:scale(-1, 1);-moz-transform:scale(-1, 1);-ms-transform:scale(-1, 1);-o-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);-webkit-transform:scale(1, -1);-moz-transform:scale(1, -1);-ms-transform:scale(1, -1);-o-transform:scale(1, -1);transform:scale(1, -1)}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-square:before,.fa-pied-piper:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}
\ No newline at end of file
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
index 1ef7e22..6d223bc 100644
--- 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
@@ -1,129 +1,12 @@
-/* FONT AWESOME CORE
- * -------------------------- */
-
-[class^="icon-"],
-[class*=" icon-"] {
- .icon-FontAwesome();
-}
-
-[class^="icon-"]:before,
-[class*=" icon-"]:before {
- text-decoration: inherit;
- display: inline-block;
- speak: none;
-}
-
-/* makes the font 33% larger relative to the icon container */
-.icon-large:before {
- vertical-align: -10%;
- font-size: 4/3em;
-}
-
-/* makes sure icons active on rollover in links */
-a {
- [class^="icon-"],
- [class*=" icon-"] {
- display: inline;
- }
-}
-
-/* increased font size for icon-large */
-[class^="icon-"],
-[class*=" icon-"] {
- &.icon-fixed-width {
- display: inline-block;
- width: 16/14em;
- text-align: right;
- padding-right: 4/14em;
- &.icon-large {
- width: 20/14em;
- }
- }
-}
-
-.icons-ul {
- margin-left: @icons-li-width;
- list-style-type: none;
-
- > li { position: relative; }
-
- .icon-li {
- position: absolute;
- left: -@icons-li-width;
- width: @icons-li-width;
- text-align: center;
- line-height: inherit;
- }
-}
-
-// allows usage of the hide class directly on font awesome icons
-[class^="icon-"],
-[class*=" icon-"] {
- &.hide {
- display: none;
- }
-}
-
-.icon-muted { color: @iconMuted; }
-.icon-light { color: @iconLight; }
-.icon-dark { color: @iconDark; }
-
-// Icon Borders
+// Base Class Definition
// -------------------------
-.icon-border {
- border: solid 1px @borderColor;
- padding: .2em .25em .15em;
- .border-radius(3px);
-}
-
-// Icon Sizes
-// -------------------------
-
-.icon-2x {
- font-size: 2em;
- &.icon-border {
- border-width: 2px;
- .border-radius(4px);
- }
-}
-.icon-3x {
- font-size: 3em;
- &.icon-border {
- border-width: 3px;
- .border-radius(5px);
- }
-}
-.icon-4x {
- font-size: 4em;
- &.icon-border {
- border-width: 4px;
- .border-radius(6px);
- }
-}
-
-.icon-5x {
- font-size: 5em;
- &.icon-border {
- border-width: 5px;
- .border-radius(7px);
- }
-}
-
-
-// Floats & Margins
-// -------------------------
-
-// Quick floats
-.pull-right { float: right; }
-.pull-left { float: left; }
-
-[class^="icon-"],
-[class*=" icon-"] {
- &.pull-left {
- margin-right: .3em;
- }
- &.pull-right {
- margin-left: .3em;
- }
+.@{fa-css-prefix} {
+ display: inline-block;
+ font-family: FontAwesome;
+ font-style: normal;
+ font-weight: normal;
+ line-height: 1;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
}
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
index 0f45461..50cbcac 100644
--- 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
@@ -1,33 +1,17 @@
/*!
- * Font Awesome 3.2.1
- * the iconic font designed for Bootstrap
- * ------------------------------------------------------------------------------
- * The full suite of pictographic icons, examples, and documentation can be
- * found at http://fontawesome.io. Stay up to date on Twitter at
- * http://twitter.com/fontawesome.
- *
- * License
- * ------------------------------------------------------------------------------
- * - The Font Awesome font is licensed under SIL OFL 1.1 -
- * http://scripts.sil.org/OFL
- * - Font Awesome CSS, LESS, and SASS files are licensed under MIT License -
- * http://opensource.org/licenses/mit-license.html
- * - Font Awesome documentation licensed under CC BY 3.0 -
- * http://creativecommons.org/licenses/by/3.0/
- * - Attribution is no longer required in Font Awesome 3.0, but much appreciated:
- * "Font Awesome by Dave Gandy - http://fontawesome.io"
- *
- * Author - Dave Gandy
- * ------------------------------------------------------------------------------
- * Email: dave@fontawesome.io
- * Twitter: http://twitter.com/davegandy
- * Work: Lead Product Designer @ Kyruus - http://kyruus.com
+ * Font Awesome 4.1.0 by @davegandy - http://fontawesome.io - @fontawesome
+ * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
*/
@import "variables.less";
@import "mixins.less";
@import "path.less";
@import "core.less";
-@import "bootstrap.less";
-@import "extras.less";
+@import "larger.less";
+@import "fixed-width.less";
+@import "list.less";
+@import "bordered-pulled.less";
+@import "spinning.less";
+@import "rotated-flipped.less";
+@import "stacked.less";
@import "icons.less";
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
index 476d201..13d8c68 100644
--- 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
@@ -1,381 +1,506 @@
/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
readers do not read off random characters that represent icons */
-.icon-glass:before { content: @glass; }
-.icon-music:before { content: @music; }
-.icon-search:before { content: @search; }
-.icon-envelope-alt:before { content: @envelope-alt; }
-.icon-heart:before { content: @heart; }
-.icon-star:before { content: @star; }
-.icon-star-empty:before { content: @star-empty; }
-.icon-user:before { content: @user; }
-.icon-film:before { content: @film; }
-.icon-th-large:before { content: @th-large; }
-.icon-th:before { content: @th; }
-.icon-th-list:before { content: @th-list; }
-.icon-ok:before { content: @ok; }
-.icon-remove:before { content: @remove; }
-.icon-zoom-in:before { content: @zoom-in; }
-.icon-zoom-out:before { content: @zoom-out; }
-.icon-power-off:before,
-.icon-off:before { content: @off; }
-.icon-signal:before { content: @signal; }
-.icon-gear:before,
-.icon-cog:before { content: @cog; }
-.icon-trash:before { content: @trash; }
-.icon-home:before { content: @home; }
-.icon-file-alt:before { content: @file-alt; }
-.icon-time:before { content: @time; }
-.icon-road:before { content: @road; }
-.icon-download-alt:before { content: @download-alt; }
-.icon-download:before { content: @download; }
-.icon-upload:before { content: @upload; }
-.icon-inbox:before { content: @inbox; }
-.icon-play-circle:before { content: @play-circle; }
-.icon-rotate-right:before,
-.icon-repeat:before { content: @repeat; }
-.icon-refresh:before { content: @refresh; }
-.icon-list-alt:before { content: @list-alt; }
-.icon-lock:before { content: @lock; }
-.icon-flag:before { content: @flag; }
-.icon-headphones:before { content: @headphones; }
-.icon-volume-off:before { content: @volume-off; }
-.icon-volume-down:before { content: @volume-down; }
-.icon-volume-up:before { content: @volume-up; }
-.icon-qrcode:before { content: @qrcode; }
-.icon-barcode:before { content: @barcode; }
-.icon-tag:before { content: @tag; }
-.icon-tags:before { content: @tags; }
-.icon-book:before { content: @book; }
-.icon-bookmark:before { content: @bookmark; }
-.icon-print:before { content: @print; }
-.icon-camera:before { content: @camera; }
-.icon-font:before { content: @font; }
-.icon-bold:before { content: @bold; }
-.icon-italic:before { content: @italic; }
-.icon-text-height:before { content: @text-height; }
-.icon-text-width:before { content: @text-width; }
-.icon-align-left:before { content: @align-left; }
-.icon-align-center:before { content: @align-center; }
-.icon-align-right:before { content: @align-right; }
-.icon-align-justify:before { content: @align-justify; }
-.icon-list:before { content: @list; }
-.icon-indent-left:before { content: @indent-left; }
-.icon-indent-right:before { content: @indent-right; }
-.icon-facetime-video:before { content: @facetime-video; }
-.icon-picture:before { content: @picture; }
-.icon-pencil:before { content: @pencil; }
-.icon-map-marker:before { content: @map-marker; }
-.icon-adjust:before { content: @adjust; }
-.icon-tint:before { content: @tint; }
-.icon-edit:before { content: @edit; }
-.icon-share:before { content: @share; }
-.icon-check:before { content: @check; }
-.icon-move:before { content: @move; }
-.icon-step-backward:before { content: @step-backward; }
-.icon-fast-backward:before { content: @fast-backward; }
-.icon-backward:before { content: @backward; }
-.icon-play:before { content: @play; }
-.icon-pause:before { content: @pause; }
-.icon-stop:before { content: @stop; }
-.icon-forward:before { content: @forward; }
-.icon-fast-forward:before { content: @fast-forward; }
-.icon-step-forward:before { content: @step-forward; }
-.icon-eject:before { content: @eject; }
-.icon-chevron-left:before { content: @chevron-left; }
-.icon-chevron-right:before { content: @chevron-right; }
-.icon-plus-sign:before { content: @plus-sign; }
-.icon-minus-sign:before { content: @minus-sign; }
-.icon-remove-sign:before { content: @remove-sign; }
-.icon-ok-sign:before { content: @ok-sign; }
-.icon-question-sign:before { content: @question-sign; }
-.icon-info-sign:before { content: @info-sign; }
-.icon-screenshot:before { content: @screenshot; }
-.icon-remove-circle:before { content: @remove-circle; }
-.icon-ok-circle:before { content: @ok-circle; }
-.icon-ban-circle:before { content: @ban-circle; }
-.icon-arrow-left:before { content: @arrow-left; }
-.icon-arrow-right:before { content: @arrow-right; }
-.icon-arrow-up:before { content: @arrow-up; }
-.icon-arrow-down:before { content: @arrow-down; }
-.icon-mail-forward:before,
-.icon-share-alt:before { content: @share-alt; }
-.icon-resize-full:before { content: @resize-full; }
-.icon-resize-small:before { content: @resize-small; }
-.icon-plus:before { content: @plus; }
-.icon-minus:before { content: @minus; }
-.icon-asterisk:before { content: @asterisk; }
-.icon-exclamation-sign:before { content: @exclamation-sign; }
-.icon-gift:before { content: @gift; }
-.icon-leaf:before { content: @leaf; }
-.icon-fire:before { content: @fire; }
-.icon-eye-open:before { content: @eye-open; }
-.icon-eye-close:before { content: @eye-close; }
-.icon-warning-sign:before { content: @warning-sign; }
-.icon-plane:before { content: @plane; }
-.icon-calendar:before { content: @calendar; }
-.icon-random:before { content: @random; }
-.icon-comment:before { content: @comment; }
-.icon-magnet:before { content: @magnet; }
-.icon-chevron-up:before { content: @chevron-up; }
-.icon-chevron-down:before { content: @chevron-down; }
-.icon-retweet:before { content: @retweet; }
-.icon-shopping-cart:before { content: @shopping-cart; }
-.icon-folder-close:before { content: @folder-close; }
-.icon-folder-open:before { content: @folder-open; }
-.icon-resize-vertical:before { content: @resize-vertical; }
-.icon-resize-horizontal:before { content: @resize-horizontal; }
-.icon-bar-chart:before { content: @bar-chart; }
-.icon-twitter-sign:before { content: @twitter-sign; }
-.icon-facebook-sign:before { content: @facebook-sign; }
-.icon-camera-retro:before { content: @camera-retro; }
-.icon-key:before { content: @key; }
-.icon-gears:before,
-.icon-cogs:before { content: @cogs; }
-.icon-comments:before { content: @comments; }
-.icon-thumbs-up-alt:before { content: @thumbs-up-alt; }
-.icon-thumbs-down-alt:before { content: @thumbs-down-alt; }
-.icon-star-half:before { content: @star-half; }
-.icon-heart-empty:before { content: @heart-empty; }
-.icon-signout:before { content: @signout; }
-.icon-linkedin-sign:before { content: @linkedin-sign; }
-.icon-pushpin:before { content: @pushpin; }
-.icon-external-link:before { content: @external-link; }
-.icon-signin:before { content: @signin; }
-.icon-trophy:before { content: @trophy; }
-.icon-github-sign:before { content: @github-sign; }
-.icon-upload-alt:before { content: @upload-alt; }
-.icon-lemon:before { content: @lemon; }
-.icon-phone:before { content: @phone; }
-.icon-unchecked:before,
-.icon-check-empty:before { content: @check-empty; }
-.icon-bookmark-empty:before { content: @bookmark-empty; }
-.icon-phone-sign:before { content: @phone-sign; }
-.icon-twitter:before { content: @twitter; }
-.icon-facebook:before { content: @facebook; }
-.icon-github:before { content: @github; }
-.icon-unlock:before { content: @unlock; }
-.icon-credit-card:before { content: @credit-card; }
-.icon-rss:before { content: @rss; }
-.icon-hdd:before { content: @hdd; }
-.icon-bullhorn:before { content: @bullhorn; }
-.icon-bell:before { content: @bell; }
-.icon-certificate:before { content: @certificate; }
-.icon-hand-right:before { content: @hand-right; }
-.icon-hand-left:before { content: @hand-left; }
-.icon-hand-up:before { content: @hand-up; }
-.icon-hand-down:before { content: @hand-down; }
-.icon-circle-arrow-left:before { content: @circle-arrow-left; }
-.icon-circle-arrow-right:before { content: @circle-arrow-right; }
-.icon-circle-arrow-up:before { content: @circle-arrow-up; }
-.icon-circle-arrow-down:before { content: @circle-arrow-down; }
-.icon-globe:before { content: @globe; }
-.icon-wrench:before { content: @wrench; }
-.icon-tasks:before { content: @tasks; }
-.icon-filter:before { content: @filter; }
-.icon-briefcase:before { content: @briefcase; }
-.icon-fullscreen:before { content: @fullscreen; }
-.icon-group:before { content: @group; }
-.icon-link:before { content: @link; }
-.icon-cloud:before { content: @cloud; }
-.icon-beaker:before { content: @beaker; }
-.icon-cut:before { content: @cut; }
-.icon-copy:before { content: @copy; }
-.icon-paperclip:before,
-.icon-paper-clip:before { content: @paper-clip; }
-.icon-save:before { content: @save; }
-.icon-sign-blank:before { content: @sign-blank; }
-.icon-reorder:before { content: @reorder; }
-.icon-list-ul:before { content: @list-ul; }
-.icon-list-ol:before { content: @list-ol; }
-.icon-strikethrough:before { content: @strikethrough; }
-.icon-underline:before { content: @underline; }
-.icon-table:before { content: @table; }
-.icon-magic:before { content: @magic; }
-.icon-truck:before { content: @truck; }
-.icon-pinterest:before { content: @pinterest; }
-.icon-pinterest-sign:before { content: @pinterest-sign; }
-.icon-google-plus-sign:before { content: @google-plus-sign; }
-.icon-google-plus:before { content: @google-plus; }
-.icon-money:before { content: @money; }
-.icon-caret-down:before { content: @caret-down; }
-.icon-caret-up:before { content: @caret-up; }
-.icon-caret-left:before { content: @caret-left; }
-.icon-caret-right:before { content: @caret-right; }
-.icon-columns:before { content: @columns; }
-.icon-sort:before { content: @sort; }
-.icon-sort-down:before { content: @sort-down; }
-.icon-sort-up:before { content: @sort-up; }
-.icon-envelope:before { content: @envelope; }
-.icon-linkedin:before { content: @linkedin; }
-.icon-rotate-left:before,
-.icon-undo:before { content: @undo; }
-.icon-legal:before { content: @legal; }
-.icon-dashboard:before { content: @dashboard; }
-.icon-comment-alt:before { content: @comment-alt; }
-.icon-comments-alt:before { content: @comments-alt; }
-.icon-bolt:before { content: @bolt; }
-.icon-sitemap:before { content: @sitemap; }
-.icon-umbrella:before { content: @umbrella; }
-.icon-paste:before { content: @paste; }
-.icon-lightbulb:before { content: @lightbulb; }
-.icon-exchange:before { content: @exchange; }
-.icon-cloud-download:before { content: @cloud-download; }
-.icon-cloud-upload:before { content: @cloud-upload; }
-.icon-user-md:before { content: @user-md; }
-.icon-stethoscope:before { content: @stethoscope; }
-.icon-suitcase:before { content: @suitcase; }
-.icon-bell-alt:before { content: @bell-alt; }
-.icon-coffee:before { content: @coffee; }
-.icon-food:before { content: @food; }
-.icon-file-text-alt:before { content: @file-text-alt; }
-.icon-building:before { content: @building; }
-.icon-hospital:before { content: @hospital; }
-.icon-ambulance:before { content: @ambulance; }
-.icon-medkit:before { content: @medkit; }
-.icon-fighter-jet:before { content: @fighter-jet; }
-.icon-beer:before { content: @beer; }
-.icon-h-sign:before { content: @h-sign; }
-.icon-plus-sign-alt:before { content: @plus-sign-alt; }
-.icon-double-angle-left:before { content: @double-angle-left; }
-.icon-double-angle-right:before { content: @double-angle-right; }
-.icon-double-angle-up:before { content: @double-angle-up; }
-.icon-double-angle-down:before { content: @double-angle-down; }
-.icon-angle-left:before { content: @angle-left; }
-.icon-angle-right:before { content: @angle-right; }
-.icon-angle-up:before { content: @angle-up; }
-.icon-angle-down:before { content: @angle-down; }
-.icon-desktop:before { content: @desktop; }
-.icon-laptop:before { content: @laptop; }
-.icon-tablet:before { content: @tablet; }
-.icon-mobile-phone:before { content: @mobile-phone; }
-.icon-circle-blank:before { content: @circle-blank; }
-.icon-quote-left:before { content: @quote-left; }
-.icon-quote-right:before { content: @quote-right; }
-.icon-spinner:before { content: @spinner; }
-.icon-circle:before { content: @circle; }
-.icon-mail-reply:before,
-.icon-reply:before { content: @reply; }
-.icon-github-alt:before { content: @github-alt; }
-.icon-folder-close-alt:before { content: @folder-close-alt; }
-.icon-folder-open-alt:before { content: @folder-open-alt; }
-.icon-expand-alt:before { content: @expand-alt; }
-.icon-collapse-alt:before { content: @collapse-alt; }
-.icon-smile:before { content: @smile; }
-.icon-frown:before { content: @frown; }
-.icon-meh:before { content: @meh; }
-.icon-gamepad:before { content: @gamepad; }
-.icon-keyboard:before { content: @keyboard; }
-.icon-flag-alt:before { content: @flag-alt; }
-.icon-flag-checkered:before { content: @flag-checkered; }
-.icon-terminal:before { content: @terminal; }
-.icon-code:before { content: @code; }
-.icon-reply-all:before { content: @reply-all; }
-.icon-mail-reply-all:before { content: @mail-reply-all; }
-.icon-star-half-full:before,
-.icon-star-half-empty:before { content: @star-half-empty; }
-.icon-location-arrow:before { content: @location-arrow; }
-.icon-crop:before { content: @crop; }
-.icon-code-fork:before { content: @code-fork; }
-.icon-unlink:before { content: @unlink; }
-.icon-question:before { content: @question; }
-.icon-info:before { content: @info; }
-.icon-exclamation:before { content: @exclamation; }
-.icon-superscript:before { content: @superscript; }
-.icon-subscript:before { content: @subscript; }
-.icon-eraser:before { content: @eraser; }
-.icon-puzzle-piece:before { content: @puzzle-piece; }
-.icon-microphone:before { content: @microphone; }
-.icon-microphone-off:before { content: @microphone-off; }
-.icon-shield:before { content: @shield; }
-.icon-calendar-empty:before { content: @calendar-empty; }
-.icon-fire-extinguisher:before { content: @fire-extinguisher; }
-.icon-rocket:before { content: @rocket; }
-.icon-maxcdn:before { content: @maxcdn; }
-.icon-chevron-sign-left:before { content: @chevron-sign-left; }
-.icon-chevron-sign-right:before { content: @chevron-sign-right; }
-.icon-chevron-sign-up:before { content: @chevron-sign-up; }
-.icon-chevron-sign-down:before { content: @chevron-sign-down; }
-.icon-html5:before { content: @html5; }
-.icon-css3:before { content: @css3; }
-.icon-anchor:before { content: @anchor; }
-.icon-unlock-alt:before { content: @unlock-alt; }
-.icon-bullseye:before { content: @bullseye; }
-.icon-ellipsis-horizontal:before { content: @ellipsis-horizontal; }
-.icon-ellipsis-vertical:before { content: @ellipsis-vertical; }
-.icon-rss-sign:before { content: @rss-sign; }
-.icon-play-sign:before { content: @play-sign; }
-.icon-ticket:before { content: @ticket; }
-.icon-minus-sign-alt:before { content: @minus-sign-alt; }
-.icon-check-minus:before { content: @check-minus; }
-.icon-level-up:before { content: @level-up; }
-.icon-level-down:before { content: @level-down; }
-.icon-check-sign:before { content: @check-sign; }
-.icon-edit-sign:before { content: @edit-sign; }
-.icon-external-link-sign:before { content: @external-link-sign; }
-.icon-share-sign:before { content: @share-sign; }
-.icon-compass:before { content: @compass; }
-.icon-collapse:before { content: @collapse; }
-.icon-collapse-top:before { content: @collapse-top; }
-.icon-expand:before { content: @expand; }
-.icon-euro:before,
-.icon-eur:before { content: @eur; }
-.icon-gbp:before { content: @gbp; }
-.icon-dollar:before,
-.icon-usd:before { content: @usd; }
-.icon-rupee:before,
-.icon-inr:before { content: @inr; }
-.icon-yen:before,
-.icon-jpy:before { content: @jpy; }
-.icon-renminbi:before,
-.icon-cny:before { content: @cny; }
-.icon-won:before,
-.icon-krw:before { content: @krw; }
-.icon-bitcoin:before,
-.icon-btc:before { content: @btc; }
-.icon-file:before { content: @file; }
-.icon-file-text:before { content: @file-text; }
-.icon-sort-by-alphabet:before { content: @sort-by-alphabet; }
-.icon-sort-by-alphabet-alt:before { content: @sort-by-alphabet-alt; }
-.icon-sort-by-attributes:before { content: @sort-by-attributes; }
-.icon-sort-by-attributes-alt:before { content: @sort-by-attributes-alt; }
-.icon-sort-by-order:before { content: @sort-by-order; }
-.icon-sort-by-order-alt:before { content: @sort-by-order-alt; }
-.icon-thumbs-up:before { content: @thumbs-up; }
-.icon-thumbs-down:before { content: @thumbs-down; }
-.icon-youtube-sign:before { content: @youtube-sign; }
-.icon-youtube:before { content: @youtube; }
-.icon-xing:before { content: @xing; }
-.icon-xing-sign:before { content: @xing-sign; }
-.icon-youtube-play:before { content: @youtube-play; }
-.icon-dropbox:before { content: @dropbox; }
-.icon-stackexchange:before { content: @stackexchange; }
-.icon-instagram:before { content: @instagram; }
-.icon-flickr:before { content: @flickr; }
-.icon-adn:before { content: @adn; }
-.icon-bitbucket:before { content: @bitbucket; }
-.icon-bitbucket-sign:before { content: @bitbucket-sign; }
-.icon-tumblr:before { content: @tumblr; }
-.icon-tumblr-sign:before { content: @tumblr-sign; }
-.icon-long-arrow-down:before { content: @long-arrow-down; }
-.icon-long-arrow-up:before { content: @long-arrow-up; }
-.icon-long-arrow-left:before { content: @long-arrow-left; }
-.icon-long-arrow-right:before { content: @long-arrow-right; }
-.icon-apple:before { content: @apple; }
-.icon-windows:before { content: @windows; }
-.icon-android:before { content: @android; }
-.icon-linux:before { content: @linux; }
-.icon-dribbble:before { content: @dribbble; }
-.icon-skype:before { content: @skype; }
-.icon-foursquare:before { content: @foursquare; }
-.icon-trello:before { content: @trello; }
-.icon-female:before { content: @female; }
-.icon-male:before { content: @male; }
-.icon-gittip:before { content: @gittip; }
-.icon-sun:before { content: @sun; }
-.icon-moon:before { content: @moon; }
-.icon-archive:before { content: @archive; }
-.icon-bug:before { content: @bug; }
-.icon-vk:before { content: @vk; }
-.icon-weibo:before { content: @weibo; }
-.icon-renren:before { content: @renren; }
+.@{fa-css-prefix}-glass:before { content: @fa-var-glass; }
+.@{fa-css-prefix}-music:before { content: @fa-var-music; }
+.@{fa-css-prefix}-search:before { content: @fa-var-search; }
+.@{fa-css-prefix}-envelope-o:before { content: @fa-var-envelope-o; }
+.@{fa-css-prefix}-heart:before { content: @fa-var-heart; }
+.@{fa-css-prefix}-star:before { content: @fa-var-star; }
+.@{fa-css-prefix}-star-o:before { content: @fa-var-star-o; }
+.@{fa-css-prefix}-user:before { content: @fa-var-user; }
+.@{fa-css-prefix}-film:before { content: @fa-var-film; }
+.@{fa-css-prefix}-th-large:before { content: @fa-var-th-large; }
+.@{fa-css-prefix}-th:before { content: @fa-var-th; }
+.@{fa-css-prefix}-th-list:before { content: @fa-var-th-list; }
+.@{fa-css-prefix}-check:before { content: @fa-var-check; }
+.@{fa-css-prefix}-times:before { content: @fa-var-times; }
+.@{fa-css-prefix}-search-plus:before { content: @fa-var-search-plus; }
+.@{fa-css-prefix}-search-minus:before { content: @fa-var-search-minus; }
+.@{fa-css-prefix}-power-off:before { content: @fa-var-power-off; }
+.@{fa-css-prefix}-signal:before { content: @fa-var-signal; }
+.@{fa-css-prefix}-gear:before,
+.@{fa-css-prefix}-cog:before { content: @fa-var-cog; }
+.@{fa-css-prefix}-trash-o:before { content: @fa-var-trash-o; }
+.@{fa-css-prefix}-home:before { content: @fa-var-home; }
+.@{fa-css-prefix}-file-o:before { content: @fa-var-file-o; }
+.@{fa-css-prefix}-clock-o:before { content: @fa-var-clock-o; }
+.@{fa-css-prefix}-road:before { content: @fa-var-road; }
+.@{fa-css-prefix}-download:before { content: @fa-var-download; }
+.@{fa-css-prefix}-arrow-circle-o-down:before { content: @fa-var-arrow-circle-o-down; }
+.@{fa-css-prefix}-arrow-circle-o-up:before { content: @fa-var-arrow-circle-o-up; }
+.@{fa-css-prefix}-inbox:before { content: @fa-var-inbox; }
+.@{fa-css-prefix}-play-circle-o:before { content: @fa-var-play-circle-o; }
+.@{fa-css-prefix}-rotate-right:before,
+.@{fa-css-prefix}-repeat:before { content: @fa-var-repeat; }
+.@{fa-css-prefix}-refresh:before { content: @fa-var-refresh; }
+.@{fa-css-prefix}-list-alt:before { content: @fa-var-list-alt; }
+.@{fa-css-prefix}-lock:before { content: @fa-var-lock; }
+.@{fa-css-prefix}-flag:before { content: @fa-var-flag; }
+.@{fa-css-prefix}-headphones:before { content: @fa-var-headphones; }
+.@{fa-css-prefix}-volume-off:before { content: @fa-var-volume-off; }
+.@{fa-css-prefix}-volume-down:before { content: @fa-var-volume-down; }
+.@{fa-css-prefix}-volume-up:before { content: @fa-var-volume-up; }
+.@{fa-css-prefix}-qrcode:before { content: @fa-var-qrcode; }
+.@{fa-css-prefix}-barcode:before { content: @fa-var-barcode; }
+.@{fa-css-prefix}-tag:before { content: @fa-var-tag; }
+.@{fa-css-prefix}-tags:before { content: @fa-var-tags; }
+.@{fa-css-prefix}-book:before { content: @fa-var-book; }
+.@{fa-css-prefix}-bookmark:before { content: @fa-var-bookmark; }
+.@{fa-css-prefix}-print:before { content: @fa-var-print; }
+.@{fa-css-prefix}-camera:before { content: @fa-var-camera; }
+.@{fa-css-prefix}-font:before { content: @fa-var-font; }
+.@{fa-css-prefix}-bold:before { content: @fa-var-bold; }
+.@{fa-css-prefix}-italic:before { content: @fa-var-italic; }
+.@{fa-css-prefix}-text-height:before { content: @fa-var-text-height; }
+.@{fa-css-prefix}-text-width:before { content: @fa-var-text-width; }
+.@{fa-css-prefix}-align-left:before { content: @fa-var-align-left; }
+.@{fa-css-prefix}-align-center:before { content: @fa-var-align-center; }
+.@{fa-css-prefix}-align-right:before { content: @fa-var-align-right; }
+.@{fa-css-prefix}-align-justify:before { content: @fa-var-align-justify; }
+.@{fa-css-prefix}-list:before { content: @fa-var-list; }
+.@{fa-css-prefix}-dedent:before,
+.@{fa-css-prefix}-outdent:before { content: @fa-var-outdent; }
+.@{fa-css-prefix}-indent:before { content: @fa-var-indent; }
+.@{fa-css-prefix}-video-camera:before { content: @fa-var-video-camera; }
+.@{fa-css-prefix}-photo:before,
+.@{fa-css-prefix}-image:before,
+.@{fa-css-prefix}-picture-o:before { content: @fa-var-picture-o; }
+.@{fa-css-prefix}-pencil:before { content: @fa-var-pencil; }
+.@{fa-css-prefix}-map-marker:before { content: @fa-var-map-marker; }
+.@{fa-css-prefix}-adjust:before { content: @fa-var-adjust; }
+.@{fa-css-prefix}-tint:before { content: @fa-var-tint; }
+.@{fa-css-prefix}-edit:before,
+.@{fa-css-prefix}-pencil-square-o:before { content: @fa-var-pencil-square-o; }
+.@{fa-css-prefix}-share-square-o:before { content: @fa-var-share-square-o; }
+.@{fa-css-prefix}-check-square-o:before { content: @fa-var-check-square-o; }
+.@{fa-css-prefix}-arrows:before { content: @fa-var-arrows; }
+.@{fa-css-prefix}-step-backward:before { content: @fa-var-step-backward; }
+.@{fa-css-prefix}-fast-backward:before { content: @fa-var-fast-backward; }
+.@{fa-css-prefix}-backward:before { content: @fa-var-backward; }
+.@{fa-css-prefix}-play:before { content: @fa-var-play; }
+.@{fa-css-prefix}-pause:before { content: @fa-var-pause; }
+.@{fa-css-prefix}-stop:before { content: @fa-var-stop; }
+.@{fa-css-prefix}-forward:before { content: @fa-var-forward; }
+.@{fa-css-prefix}-fast-forward:before { content: @fa-var-fast-forward; }
+.@{fa-css-prefix}-step-forward:before { content: @fa-var-step-forward; }
+.@{fa-css-prefix}-eject:before { content: @fa-var-eject; }
+.@{fa-css-prefix}-chevron-left:before { content: @fa-var-chevron-left; }
+.@{fa-css-prefix}-chevron-right:before { content: @fa-var-chevron-right; }
+.@{fa-css-prefix}-plus-circle:before { content: @fa-var-plus-circle; }
+.@{fa-css-prefix}-minus-circle:before { content: @fa-var-minus-circle; }
+.@{fa-css-prefix}-times-circle:before { content: @fa-var-times-circle; }
+.@{fa-css-prefix}-check-circle:before { content: @fa-var-check-circle; }
+.@{fa-css-prefix}-question-circle:before { content: @fa-var-question-circle; }
+.@{fa-css-prefix}-info-circle:before { content: @fa-var-info-circle; }
+.@{fa-css-prefix}-crosshairs:before { content: @fa-var-crosshairs; }
+.@{fa-css-prefix}-times-circle-o:before { content: @fa-var-times-circle-o; }
+.@{fa-css-prefix}-check-circle-o:before { content: @fa-var-check-circle-o; }
+.@{fa-css-prefix}-ban:before { content: @fa-var-ban; }
+.@{fa-css-prefix}-arrow-left:before { content: @fa-var-arrow-left; }
+.@{fa-css-prefix}-arrow-right:before { content: @fa-var-arrow-right; }
+.@{fa-css-prefix}-arrow-up:before { content: @fa-var-arrow-up; }
+.@{fa-css-prefix}-arrow-down:before { content: @fa-var-arrow-down; }
+.@{fa-css-prefix}-mail-forward:before,
+.@{fa-css-prefix}-share:before { content: @fa-var-share; }
+.@{fa-css-prefix}-expand:before { content: @fa-var-expand; }
+.@{fa-css-prefix}-compress:before { content: @fa-var-compress; }
+.@{fa-css-prefix}-plus:before { content: @fa-var-plus; }
+.@{fa-css-prefix}-minus:before { content: @fa-var-minus; }
+.@{fa-css-prefix}-asterisk:before { content: @fa-var-asterisk; }
+.@{fa-css-prefix}-exclamation-circle:before { content: @fa-var-exclamation-circle; }
+.@{fa-css-prefix}-gift:before { content: @fa-var-gift; }
+.@{fa-css-prefix}-leaf:before { content: @fa-var-leaf; }
+.@{fa-css-prefix}-fire:before { content: @fa-var-fire; }
+.@{fa-css-prefix}-eye:before { content: @fa-var-eye; }
+.@{fa-css-prefix}-eye-slash:before { content: @fa-var-eye-slash; }
+.@{fa-css-prefix}-warning:before,
+.@{fa-css-prefix}-exclamation-triangle:before { content: @fa-var-exclamation-triangle; }
+.@{fa-css-prefix}-plane:before { content: @fa-var-plane; }
+.@{fa-css-prefix}-calendar:before { content: @fa-var-calendar; }
+.@{fa-css-prefix}-random:before { content: @fa-var-random; }
+.@{fa-css-prefix}-comment:before { content: @fa-var-comment; }
+.@{fa-css-prefix}-magnet:before { content: @fa-var-magnet; }
+.@{fa-css-prefix}-chevron-up:before { content: @fa-var-chevron-up; }
+.@{fa-css-prefix}-chevron-down:before { content: @fa-var-chevron-down; }
+.@{fa-css-prefix}-retweet:before { content: @fa-var-retweet; }
+.@{fa-css-prefix}-shopping-cart:before { content: @fa-var-shopping-cart; }
+.@{fa-css-prefix}-folder:before { content: @fa-var-folder; }
+.@{fa-css-prefix}-folder-open:before { content: @fa-var-folder-open; }
+.@{fa-css-prefix}-arrows-v:before { content: @fa-var-arrows-v; }
+.@{fa-css-prefix}-arrows-h:before { content: @fa-var-arrows-h; }
+.@{fa-css-prefix}-bar-chart-o:before { content: @fa-var-bar-chart-o; }
+.@{fa-css-prefix}-twitter-square:before { content: @fa-var-twitter-square; }
+.@{fa-css-prefix}-facebook-square:before { content: @fa-var-facebook-square; }
+.@{fa-css-prefix}-camera-retro:before { content: @fa-var-camera-retro; }
+.@{fa-css-prefix}-key:before { content: @fa-var-key; }
+.@{fa-css-prefix}-gears:before,
+.@{fa-css-prefix}-cogs:before { content: @fa-var-cogs; }
+.@{fa-css-prefix}-comments:before { content: @fa-var-comments; }
+.@{fa-css-prefix}-thumbs-o-up:before { content: @fa-var-thumbs-o-up; }
+.@{fa-css-prefix}-thumbs-o-down:before { content: @fa-var-thumbs-o-down; }
+.@{fa-css-prefix}-star-half:before { content: @fa-var-star-half; }
+.@{fa-css-prefix}-heart-o:before { content: @fa-var-heart-o; }
+.@{fa-css-prefix}-sign-out:before { content: @fa-var-sign-out; }
+.@{fa-css-prefix}-linkedin-square:before { content: @fa-var-linkedin-square; }
+.@{fa-css-prefix}-thumb-tack:before { content: @fa-var-thumb-tack; }
+.@{fa-css-prefix}-external-link:before { content: @fa-var-external-link; }
+.@{fa-css-prefix}-sign-in:before { content: @fa-var-sign-in; }
+.@{fa-css-prefix}-trophy:before { content: @fa-var-trophy; }
+.@{fa-css-prefix}-github-square:before { content: @fa-var-github-square; }
+.@{fa-css-prefix}-upload:before { content: @fa-var-upload; }
+.@{fa-css-prefix}-lemon-o:before { content: @fa-var-lemon-o; }
+.@{fa-css-prefix}-phone:before { content: @fa-var-phone; }
+.@{fa-css-prefix}-square-o:before { content: @fa-var-square-o; }
+.@{fa-css-prefix}-bookmark-o:before { content: @fa-var-bookmark-o; }
+.@{fa-css-prefix}-phone-square:before { content: @fa-var-phone-square; }
+.@{fa-css-prefix}-twitter:before { content: @fa-var-twitter; }
+.@{fa-css-prefix}-facebook:before { content: @fa-var-facebook; }
+.@{fa-css-prefix}-github:before { content: @fa-var-github; }
+.@{fa-css-prefix}-unlock:before { content: @fa-var-unlock; }
+.@{fa-css-prefix}-credit-card:before { content: @fa-var-credit-card; }
+.@{fa-css-prefix}-rss:before { content: @fa-var-rss; }
+.@{fa-css-prefix}-hdd-o:before { content: @fa-var-hdd-o; }
+.@{fa-css-prefix}-bullhorn:before { content: @fa-var-bullhorn; }
+.@{fa-css-prefix}-bell:before { content: @fa-var-bell; }
+.@{fa-css-prefix}-certificate:before { content: @fa-var-certificate; }
+.@{fa-css-prefix}-hand-o-right:before { content: @fa-var-hand-o-right; }
+.@{fa-css-prefix}-hand-o-left:before { content: @fa-var-hand-o-left; }
+.@{fa-css-prefix}-hand-o-up:before { content: @fa-var-hand-o-up; }
+.@{fa-css-prefix}-hand-o-down:before { content: @fa-var-hand-o-down; }
+.@{fa-css-prefix}-arrow-circle-left:before { content: @fa-var-arrow-circle-left; }
+.@{fa-css-prefix}-arrow-circle-right:before { content: @fa-var-arrow-circle-right; }
+.@{fa-css-prefix}-arrow-circle-up:before { content: @fa-var-arrow-circle-up; }
+.@{fa-css-prefix}-arrow-circle-down:before { content: @fa-var-arrow-circle-down; }
+.@{fa-css-prefix}-globe:before { content: @fa-var-globe; }
+.@{fa-css-prefix}-wrench:before { content: @fa-var-wrench; }
+.@{fa-css-prefix}-tasks:before { content: @fa-var-tasks; }
+.@{fa-css-prefix}-filter:before { content: @fa-var-filter; }
+.@{fa-css-prefix}-briefcase:before { content: @fa-var-briefcase; }
+.@{fa-css-prefix}-arrows-alt:before { content: @fa-var-arrows-alt; }
+.@{fa-css-prefix}-group:before,
+.@{fa-css-prefix}-users:before { content: @fa-var-users; }
+.@{fa-css-prefix}-chain:before,
+.@{fa-css-prefix}-link:before { content: @fa-var-link; }
+.@{fa-css-prefix}-cloud:before { content: @fa-var-cloud; }
+.@{fa-css-prefix}-flask:before { content: @fa-var-flask; }
+.@{fa-css-prefix}-cut:before,
+.@{fa-css-prefix}-scissors:before { content: @fa-var-scissors; }
+.@{fa-css-prefix}-copy:before,
+.@{fa-css-prefix}-files-o:before { content: @fa-var-files-o; }
+.@{fa-css-prefix}-paperclip:before { content: @fa-var-paperclip; }
+.@{fa-css-prefix}-save:before,
+.@{fa-css-prefix}-floppy-o:before { content: @fa-var-floppy-o; }
+.@{fa-css-prefix}-square:before { content: @fa-var-square; }
+.@{fa-css-prefix}-navicon:before,
+.@{fa-css-prefix}-reorder:before,
+.@{fa-css-prefix}-bars:before { content: @fa-var-bars; }
+.@{fa-css-prefix}-list-ul:before { content: @fa-var-list-ul; }
+.@{fa-css-prefix}-list-ol:before { content: @fa-var-list-ol; }
+.@{fa-css-prefix}-strikethrough:before { content: @fa-var-strikethrough; }
+.@{fa-css-prefix}-underline:before { content: @fa-var-underline; }
+.@{fa-css-prefix}-table:before { content: @fa-var-table; }
+.@{fa-css-prefix}-magic:before { content: @fa-var-magic; }
+.@{fa-css-prefix}-truck:before { content: @fa-var-truck; }
+.@{fa-css-prefix}-pinterest:before { content: @fa-var-pinterest; }
+.@{fa-css-prefix}-pinterest-square:before { content: @fa-var-pinterest-square; }
+.@{fa-css-prefix}-google-plus-square:before { content: @fa-var-google-plus-square; }
+.@{fa-css-prefix}-google-plus:before { content: @fa-var-google-plus; }
+.@{fa-css-prefix}-money:before { content: @fa-var-money; }
+.@{fa-css-prefix}-caret-down:before { content: @fa-var-caret-down; }
+.@{fa-css-prefix}-caret-up:before { content: @fa-var-caret-up; }
+.@{fa-css-prefix}-caret-left:before { content: @fa-var-caret-left; }
+.@{fa-css-prefix}-caret-right:before { content: @fa-var-caret-right; }
+.@{fa-css-prefix}-columns:before { content: @fa-var-columns; }
+.@{fa-css-prefix}-unsorted:before,
+.@{fa-css-prefix}-sort:before { content: @fa-var-sort; }
+.@{fa-css-prefix}-sort-down:before,
+.@{fa-css-prefix}-sort-desc:before { content: @fa-var-sort-desc; }
+.@{fa-css-prefix}-sort-up:before,
+.@{fa-css-prefix}-sort-asc:before { content: @fa-var-sort-asc; }
+.@{fa-css-prefix}-envelope:before { content: @fa-var-envelope; }
+.@{fa-css-prefix}-linkedin:before { content: @fa-var-linkedin; }
+.@{fa-css-prefix}-rotate-left:before,
+.@{fa-css-prefix}-undo:before { content: @fa-var-undo; }
+.@{fa-css-prefix}-legal:before,
+.@{fa-css-prefix}-gavel:before { content: @fa-var-gavel; }
+.@{fa-css-prefix}-dashboard:before,
+.@{fa-css-prefix}-tachometer:before { content: @fa-var-tachometer; }
+.@{fa-css-prefix}-comment-o:before { content: @fa-var-comment-o; }
+.@{fa-css-prefix}-comments-o:before { content: @fa-var-comments-o; }
+.@{fa-css-prefix}-flash:before,
+.@{fa-css-prefix}-bolt:before { content: @fa-var-bolt; }
+.@{fa-css-prefix}-sitemap:before { content: @fa-var-sitemap; }
+.@{fa-css-prefix}-umbrella:before { content: @fa-var-umbrella; }
+.@{fa-css-prefix}-paste:before,
+.@{fa-css-prefix}-clipboard:before { content: @fa-var-clipboard; }
+.@{fa-css-prefix}-lightbulb-o:before { content: @fa-var-lightbulb-o; }
+.@{fa-css-prefix}-exchange:before { content: @fa-var-exchange; }
+.@{fa-css-prefix}-cloud-download:before { content: @fa-var-cloud-download; }
+.@{fa-css-prefix}-cloud-upload:before { content: @fa-var-cloud-upload; }
+.@{fa-css-prefix}-user-md:before { content: @fa-var-user-md; }
+.@{fa-css-prefix}-stethoscope:before { content: @fa-var-stethoscope; }
+.@{fa-css-prefix}-suitcase:before { content: @fa-var-suitcase; }
+.@{fa-css-prefix}-bell-o:before { content: @fa-var-bell-o; }
+.@{fa-css-prefix}-coffee:before { content: @fa-var-coffee; }
+.@{fa-css-prefix}-cutlery:before { content: @fa-var-cutlery; }
+.@{fa-css-prefix}-file-text-o:before { content: @fa-var-file-text-o; }
+.@{fa-css-prefix}-building-o:before { content: @fa-var-building-o; }
+.@{fa-css-prefix}-hospital-o:before { content: @fa-var-hospital-o; }
+.@{fa-css-prefix}-ambulance:before { content: @fa-var-ambulance; }
+.@{fa-css-prefix}-medkit:before { content: @fa-var-medkit; }
+.@{fa-css-prefix}-fighter-jet:before { content: @fa-var-fighter-jet; }
+.@{fa-css-prefix}-beer:before { content: @fa-var-beer; }
+.@{fa-css-prefix}-h-square:before { content: @fa-var-h-square; }
+.@{fa-css-prefix}-plus-square:before { content: @fa-var-plus-square; }
+.@{fa-css-prefix}-angle-double-left:before { content: @fa-var-angle-double-left; }
+.@{fa-css-prefix}-angle-double-right:before { content: @fa-var-angle-double-right; }
+.@{fa-css-prefix}-angle-double-up:before { content: @fa-var-angle-double-up; }
+.@{fa-css-prefix}-angle-double-down:before { content: @fa-var-angle-double-down; }
+.@{fa-css-prefix}-angle-left:before { content: @fa-var-angle-left; }
+.@{fa-css-prefix}-angle-right:before { content: @fa-var-angle-right; }
+.@{fa-css-prefix}-angle-up:before { content: @fa-var-angle-up; }
+.@{fa-css-prefix}-angle-down:before { content: @fa-var-angle-down; }
+.@{fa-css-prefix}-desktop:before { content: @fa-var-desktop; }
+.@{fa-css-prefix}-laptop:before { content: @fa-var-laptop; }
+.@{fa-css-prefix}-tablet:before { content: @fa-var-tablet; }
+.@{fa-css-prefix}-mobile-phone:before,
+.@{fa-css-prefix}-mobile:before { content: @fa-var-mobile; }
+.@{fa-css-prefix}-circle-o:before { content: @fa-var-circle-o; }
+.@{fa-css-prefix}-quote-left:before { content: @fa-var-quote-left; }
+.@{fa-css-prefix}-quote-right:before { content: @fa-var-quote-right; }
+.@{fa-css-prefix}-spinner:before { content: @fa-var-spinner; }
+.@{fa-css-prefix}-circle:before { content: @fa-var-circle; }
+.@{fa-css-prefix}-mail-reply:before,
+.@{fa-css-prefix}-reply:before { content: @fa-var-reply; }
+.@{fa-css-prefix}-github-alt:before { content: @fa-var-github-alt; }
+.@{fa-css-prefix}-folder-o:before { content: @fa-var-folder-o; }
+.@{fa-css-prefix}-folder-open-o:before { content: @fa-var-folder-open-o; }
+.@{fa-css-prefix}-smile-o:before { content: @fa-var-smile-o; }
+.@{fa-css-prefix}-frown-o:before { content: @fa-var-frown-o; }
+.@{fa-css-prefix}-meh-o:before { content: @fa-var-meh-o; }
+.@{fa-css-prefix}-gamepad:before { content: @fa-var-gamepad; }
+.@{fa-css-prefix}-keyboard-o:before { content: @fa-var-keyboard-o; }
+.@{fa-css-prefix}-flag-o:before { content: @fa-var-flag-o; }
+.@{fa-css-prefix}-flag-checkered:before { content: @fa-var-flag-checkered; }
+.@{fa-css-prefix}-terminal:before { content: @fa-var-terminal; }
+.@{fa-css-prefix}-code:before { content: @fa-var-code; }
+.@{fa-css-prefix}-mail-reply-all:before,
+.@{fa-css-prefix}-reply-all:before { content: @fa-var-reply-all; }
+.@{fa-css-prefix}-star-half-empty:before,
+.@{fa-css-prefix}-star-half-full:before,
+.@{fa-css-prefix}-star-half-o:before { content: @fa-var-star-half-o; }
+.@{fa-css-prefix}-location-arrow:before { content: @fa-var-location-arrow; }
+.@{fa-css-prefix}-crop:before { content: @fa-var-crop; }
+.@{fa-css-prefix}-code-fork:before { content: @fa-var-code-fork; }
+.@{fa-css-prefix}-unlink:before,
+.@{fa-css-prefix}-chain-broken:before { content: @fa-var-chain-broken; }
+.@{fa-css-prefix}-question:before { content: @fa-var-question; }
+.@{fa-css-prefix}-info:before { content: @fa-var-info; }
+.@{fa-css-prefix}-exclamation:before { content: @fa-var-exclamation; }
+.@{fa-css-prefix}-superscript:before { content: @fa-var-superscript; }
+.@{fa-css-prefix}-subscript:before { content: @fa-var-subscript; }
+.@{fa-css-prefix}-eraser:before { content: @fa-var-eraser; }
+.@{fa-css-prefix}-puzzle-piece:before { content: @fa-var-puzzle-piece; }
+.@{fa-css-prefix}-microphone:before { content: @fa-var-microphone; }
+.@{fa-css-prefix}-microphone-slash:before { content: @fa-var-microphone-slash; }
+.@{fa-css-prefix}-shield:before { content: @fa-var-shield; }
+.@{fa-css-prefix}-calendar-o:before { content: @fa-var-calendar-o; }
+.@{fa-css-prefix}-fire-extinguisher:before { content: @fa-var-fire-extinguisher; }
+.@{fa-css-prefix}-rocket:before { content: @fa-var-rocket; }
+.@{fa-css-prefix}-maxcdn:before { content: @fa-var-maxcdn; }
+.@{fa-css-prefix}-chevron-circle-left:before { content: @fa-var-chevron-circle-left; }
+.@{fa-css-prefix}-chevron-circle-right:before { content: @fa-var-chevron-circle-right; }
+.@{fa-css-prefix}-chevron-circle-up:before { content: @fa-var-chevron-circle-up; }
+.@{fa-css-prefix}-chevron-circle-down:before { content: @fa-var-chevron-circle-down; }
+.@{fa-css-prefix}-html5:before { content: @fa-var-html5; }
+.@{fa-css-prefix}-css3:before { content: @fa-var-css3; }
+.@{fa-css-prefix}-anchor:before { content: @fa-var-anchor; }
+.@{fa-css-prefix}-unlock-alt:before { content: @fa-var-unlock-alt; }
+.@{fa-css-prefix}-bullseye:before { content: @fa-var-bullseye; }
+.@{fa-css-prefix}-ellipsis-h:before { content: @fa-var-ellipsis-h; }
+.@{fa-css-prefix}-ellipsis-v:before { content: @fa-var-ellipsis-v; }
+.@{fa-css-prefix}-rss-square:before { content: @fa-var-rss-square; }
+.@{fa-css-prefix}-play-circle:before { content: @fa-var-play-circle; }
+.@{fa-css-prefix}-ticket:before { content: @fa-var-ticket; }
+.@{fa-css-prefix}-minus-square:before { content: @fa-var-minus-square; }
+.@{fa-css-prefix}-minus-square-o:before { content: @fa-var-minus-square-o; }
+.@{fa-css-prefix}-level-up:before { content: @fa-var-level-up; }
+.@{fa-css-prefix}-level-down:before { content: @fa-var-level-down; }
+.@{fa-css-prefix}-check-square:before { content: @fa-var-check-square; }
+.@{fa-css-prefix}-pencil-square:before { content: @fa-var-pencil-square; }
+.@{fa-css-prefix}-external-link-square:before { content: @fa-var-external-link-square; }
+.@{fa-css-prefix}-share-square:before { content: @fa-var-share-square; }
+.@{fa-css-prefix}-compass:before { content: @fa-var-compass; }
+.@{fa-css-prefix}-toggle-down:before,
+.@{fa-css-prefix}-caret-square-o-down:before { content: @fa-var-caret-square-o-down; }
+.@{fa-css-prefix}-toggle-up:before,
+.@{fa-css-prefix}-caret-square-o-up:before { content: @fa-var-caret-square-o-up; }
+.@{fa-css-prefix}-toggle-right:before,
+.@{fa-css-prefix}-caret-square-o-right:before { content: @fa-var-caret-square-o-right; }
+.@{fa-css-prefix}-euro:before,
+.@{fa-css-prefix}-eur:before { content: @fa-var-eur; }
+.@{fa-css-prefix}-gbp:before { content: @fa-var-gbp; }
+.@{fa-css-prefix}-dollar:before,
+.@{fa-css-prefix}-usd:before { content: @fa-var-usd; }
+.@{fa-css-prefix}-rupee:before,
+.@{fa-css-prefix}-inr:before { content: @fa-var-inr; }
+.@{fa-css-prefix}-cny:before,
+.@{fa-css-prefix}-rmb:before,
+.@{fa-css-prefix}-yen:before,
+.@{fa-css-prefix}-jpy:before { content: @fa-var-jpy; }
+.@{fa-css-prefix}-ruble:before,
+.@{fa-css-prefix}-rouble:before,
+.@{fa-css-prefix}-rub:before { content: @fa-var-rub; }
+.@{fa-css-prefix}-won:before,
+.@{fa-css-prefix}-krw:before { content: @fa-var-krw; }
+.@{fa-css-prefix}-bitcoin:before,
+.@{fa-css-prefix}-btc:before { content: @fa-var-btc; }
+.@{fa-css-prefix}-file:before { content: @fa-var-file; }
+.@{fa-css-prefix}-file-text:before { content: @fa-var-file-text; }
+.@{fa-css-prefix}-sort-alpha-asc:before { content: @fa-var-sort-alpha-asc; }
+.@{fa-css-prefix}-sort-alpha-desc:before { content: @fa-var-sort-alpha-desc; }
+.@{fa-css-prefix}-sort-amount-asc:before { content: @fa-var-sort-amount-asc; }
+.@{fa-css-prefix}-sort-amount-desc:before { content: @fa-var-sort-amount-desc; }
+.@{fa-css-prefix}-sort-numeric-asc:before { content: @fa-var-sort-numeric-asc; }
+.@{fa-css-prefix}-sort-numeric-desc:before { content: @fa-var-sort-numeric-desc; }
+.@{fa-css-prefix}-thumbs-up:before { content: @fa-var-thumbs-up; }
+.@{fa-css-prefix}-thumbs-down:before { content: @fa-var-thumbs-down; }
+.@{fa-css-prefix}-youtube-square:before { content: @fa-var-youtube-square; }
+.@{fa-css-prefix}-youtube:before { content: @fa-var-youtube; }
+.@{fa-css-prefix}-xing:before { content: @fa-var-xing; }
+.@{fa-css-prefix}-xing-square:before { content: @fa-var-xing-square; }
+.@{fa-css-prefix}-youtube-play:before { content: @fa-var-youtube-play; }
+.@{fa-css-prefix}-dropbox:before { content: @fa-var-dropbox; }
+.@{fa-css-prefix}-stack-overflow:before { content: @fa-var-stack-overflow; }
+.@{fa-css-prefix}-instagram:before { content: @fa-var-instagram; }
+.@{fa-css-prefix}-flickr:before { content: @fa-var-flickr; }
+.@{fa-css-prefix}-adn:before { content: @fa-var-adn; }
+.@{fa-css-prefix}-bitbucket:before { content: @fa-var-bitbucket; }
+.@{fa-css-prefix}-bitbucket-square:before { content: @fa-var-bitbucket-square; }
+.@{fa-css-prefix}-tumblr:before { content: @fa-var-tumblr; }
+.@{fa-css-prefix}-tumblr-square:before { content: @fa-var-tumblr-square; }
+.@{fa-css-prefix}-long-arrow-down:before { content: @fa-var-long-arrow-down; }
+.@{fa-css-prefix}-long-arrow-up:before { content: @fa-var-long-arrow-up; }
+.@{fa-css-prefix}-long-arrow-left:before { content: @fa-var-long-arrow-left; }
+.@{fa-css-prefix}-long-arrow-right:before { content: @fa-var-long-arrow-right; }
+.@{fa-css-prefix}-apple:before { content: @fa-var-apple; }
+.@{fa-css-prefix}-windows:before { content: @fa-var-windows; }
+.@{fa-css-prefix}-android:before { content: @fa-var-android; }
+.@{fa-css-prefix}-linux:before { content: @fa-var-linux; }
+.@{fa-css-prefix}-dribbble:before { content: @fa-var-dribbble; }
+.@{fa-css-prefix}-skype:before { content: @fa-var-skype; }
+.@{fa-css-prefix}-foursquare:before { content: @fa-var-foursquare; }
+.@{fa-css-prefix}-trello:before { content: @fa-var-trello; }
+.@{fa-css-prefix}-female:before { content: @fa-var-female; }
+.@{fa-css-prefix}-male:before { content: @fa-var-male; }
+.@{fa-css-prefix}-gittip:before { content: @fa-var-gittip; }
+.@{fa-css-prefix}-sun-o:before { content: @fa-var-sun-o; }
+.@{fa-css-prefix}-moon-o:before { content: @fa-var-moon-o; }
+.@{fa-css-prefix}-archive:before { content: @fa-var-archive; }
+.@{fa-css-prefix}-bug:before { content: @fa-var-bug; }
+.@{fa-css-prefix}-vk:before { content: @fa-var-vk; }
+.@{fa-css-prefix}-weibo:before { content: @fa-var-weibo; }
+.@{fa-css-prefix}-renren:before { content: @fa-var-renren; }
+.@{fa-css-prefix}-pagelines:before { content: @fa-var-pagelines; }
+.@{fa-css-prefix}-stack-exchange:before { content: @fa-var-stack-exchange; }
+.@{fa-css-prefix}-arrow-circle-o-right:before { content: @fa-var-arrow-circle-o-right; }
+.@{fa-css-prefix}-arrow-circle-o-left:before { content: @fa-var-arrow-circle-o-left; }
+.@{fa-css-prefix}-toggle-left:before,
+.@{fa-css-prefix}-caret-square-o-left:before { content: @fa-var-caret-square-o-left; }
+.@{fa-css-prefix}-dot-circle-o:before { content: @fa-var-dot-circle-o; }
+.@{fa-css-prefix}-wheelchair:before { content: @fa-var-wheelchair; }
+.@{fa-css-prefix}-vimeo-square:before { content: @fa-var-vimeo-square; }
+.@{fa-css-prefix}-turkish-lira:before,
+.@{fa-css-prefix}-try:before { content: @fa-var-try; }
+.@{fa-css-prefix}-plus-square-o:before { content: @fa-var-plus-square-o; }
+.@{fa-css-prefix}-space-shuttle:before { content: @fa-var-space-shuttle; }
+.@{fa-css-prefix}-slack:before { content: @fa-var-slack; }
+.@{fa-css-prefix}-envelope-square:before { content: @fa-var-envelope-square; }
+.@{fa-css-prefix}-wordpress:before { content: @fa-var-wordpress; }
+.@{fa-css-prefix}-openid:before { content: @fa-var-openid; }
+.@{fa-css-prefix}-institution:before,
+.@{fa-css-prefix}-bank:before,
+.@{fa-css-prefix}-university:before { content: @fa-var-university; }
+.@{fa-css-prefix}-mortar-board:before,
+.@{fa-css-prefix}-graduation-cap:before { content: @fa-var-graduation-cap; }
+.@{fa-css-prefix}-yahoo:before { content: @fa-var-yahoo; }
+.@{fa-css-prefix}-google:before { content: @fa-var-google; }
+.@{fa-css-prefix}-reddit:before { content: @fa-var-reddit; }
+.@{fa-css-prefix}-reddit-square:before { content: @fa-var-reddit-square; }
+.@{fa-css-prefix}-stumbleupon-circle:before { content: @fa-var-stumbleupon-circle; }
+.@{fa-css-prefix}-stumbleupon:before { content: @fa-var-stumbleupon; }
+.@{fa-css-prefix}-delicious:before { content: @fa-var-delicious; }
+.@{fa-css-prefix}-digg:before { content: @fa-var-digg; }
+.@{fa-css-prefix}-pied-piper-square:before,
+.@{fa-css-prefix}-pied-piper:before { content: @fa-var-pied-piper; }
+.@{fa-css-prefix}-pied-piper-alt:before { content: @fa-var-pied-piper-alt; }
+.@{fa-css-prefix}-drupal:before { content: @fa-var-drupal; }
+.@{fa-css-prefix}-joomla:before { content: @fa-var-joomla; }
+.@{fa-css-prefix}-language:before { content: @fa-var-language; }
+.@{fa-css-prefix}-fax:before { content: @fa-var-fax; }
+.@{fa-css-prefix}-building:before { content: @fa-var-building; }
+.@{fa-css-prefix}-child:before { content: @fa-var-child; }
+.@{fa-css-prefix}-paw:before { content: @fa-var-paw; }
+.@{fa-css-prefix}-spoon:before { content: @fa-var-spoon; }
+.@{fa-css-prefix}-cube:before { content: @fa-var-cube; }
+.@{fa-css-prefix}-cubes:before { content: @fa-var-cubes; }
+.@{fa-css-prefix}-behance:before { content: @fa-var-behance; }
+.@{fa-css-prefix}-behance-square:before { content: @fa-var-behance-square; }
+.@{fa-css-prefix}-steam:before { content: @fa-var-steam; }
+.@{fa-css-prefix}-steam-square:before { content: @fa-var-steam-square; }
+.@{fa-css-prefix}-recycle:before { content: @fa-var-recycle; }
+.@{fa-css-prefix}-automobile:before,
+.@{fa-css-prefix}-car:before { content: @fa-var-car; }
+.@{fa-css-prefix}-cab:before,
+.@{fa-css-prefix}-taxi:before { content: @fa-var-taxi; }
+.@{fa-css-prefix}-tree:before { content: @fa-var-tree; }
+.@{fa-css-prefix}-spotify:before { content: @fa-var-spotify; }
+.@{fa-css-prefix}-deviantart:before { content: @fa-var-deviantart; }
+.@{fa-css-prefix}-soundcloud:before { content: @fa-var-soundcloud; }
+.@{fa-css-prefix}-database:before { content: @fa-var-database; }
+.@{fa-css-prefix}-file-pdf-o:before { content: @fa-var-file-pdf-o; }
+.@{fa-css-prefix}-file-word-o:before { content: @fa-var-file-word-o; }
+.@{fa-css-prefix}-file-excel-o:before { content: @fa-var-file-excel-o; }
+.@{fa-css-prefix}-file-powerpoint-o:before { content: @fa-var-file-powerpoint-o; }
+.@{fa-css-prefix}-file-photo-o:before,
+.@{fa-css-prefix}-file-picture-o:before,
+.@{fa-css-prefix}-file-image-o:before { content: @fa-var-file-image-o; }
+.@{fa-css-prefix}-file-zip-o:before,
+.@{fa-css-prefix}-file-archive-o:before { content: @fa-var-file-archive-o; }
+.@{fa-css-prefix}-file-sound-o:before,
+.@{fa-css-prefix}-file-audio-o:before { content: @fa-var-file-audio-o; }
+.@{fa-css-prefix}-file-movie-o:before,
+.@{fa-css-prefix}-file-video-o:before { content: @fa-var-file-video-o; }
+.@{fa-css-prefix}-file-code-o:before { content: @fa-var-file-code-o; }
+.@{fa-css-prefix}-vine:before { content: @fa-var-vine; }
+.@{fa-css-prefix}-codepen:before { content: @fa-var-codepen; }
+.@{fa-css-prefix}-jsfiddle:before { content: @fa-var-jsfiddle; }
+.@{fa-css-prefix}-life-bouy:before,
+.@{fa-css-prefix}-life-saver:before,
+.@{fa-css-prefix}-support:before,
+.@{fa-css-prefix}-life-ring:before { content: @fa-var-life-ring; }
+.@{fa-css-prefix}-circle-o-notch:before { content: @fa-var-circle-o-notch; }
+.@{fa-css-prefix}-ra:before,
+.@{fa-css-prefix}-rebel:before { content: @fa-var-rebel; }
+.@{fa-css-prefix}-ge:before,
+.@{fa-css-prefix}-empire:before { content: @fa-var-empire; }
+.@{fa-css-prefix}-git-square:before { content: @fa-var-git-square; }
+.@{fa-css-prefix}-git:before { content: @fa-var-git; }
+.@{fa-css-prefix}-hacker-news:before { content: @fa-var-hacker-news; }
+.@{fa-css-prefix}-tencent-weibo:before { content: @fa-var-tencent-weibo; }
+.@{fa-css-prefix}-qq:before { content: @fa-var-qq; }
+.@{fa-css-prefix}-wechat:before,
+.@{fa-css-prefix}-weixin:before { content: @fa-var-weixin; }
+.@{fa-css-prefix}-send:before,
+.@{fa-css-prefix}-paper-plane:before { content: @fa-var-paper-plane; }
+.@{fa-css-prefix}-send-o:before,
+.@{fa-css-prefix}-paper-plane-o:before { content: @fa-var-paper-plane-o; }
+.@{fa-css-prefix}-history:before { content: @fa-var-history; }
+.@{fa-css-prefix}-circle-thin:before { content: @fa-var-circle-thin; }
+.@{fa-css-prefix}-header:before { content: @fa-var-header; }
+.@{fa-css-prefix}-paragraph:before { content: @fa-var-paragraph; }
+.@{fa-css-prefix}-sliders:before { content: @fa-var-sliders; }
+.@{fa-css-prefix}-share-alt:before { content: @fa-var-share-alt; }
+.@{fa-css-prefix}-share-alt-square:before { content: @fa-var-share-alt-square; }
+.@{fa-css-prefix}-bomb:before { content: @fa-var-bomb; }
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
index f7fdda5..19e5a64 100644
--- 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
@@ -1,48 +1,20 @@
// Mixins
// --------------------------
-.icon(@icon) {
- .icon-FontAwesome();
- content: @icon;
+.fa-icon-rotate(@degrees, @rotation) {
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=@rotation);
+ -webkit-transform: rotate(@degrees);
+ -moz-transform: rotate(@degrees);
+ -ms-transform: rotate(@degrees);
+ -o-transform: rotate(@degrees);
+ transform: rotate(@degrees);
}
-.icon-FontAwesome() {
- font-family: FontAwesome;
- font-weight: normal;
- font-style: normal;
- text-decoration: inherit;
- -webkit-font-smoothing: antialiased;
- *margin-right: .3em; // fixes ie7 issues
-}
-
-.border-radius(@radius) {
- -webkit-border-radius: @radius;
- -moz-border-radius: @radius;
- border-radius: @radius;
-}
-
-.icon-stack(@width: 2em, @height: 2em, @top-font-size: 1em, @base-font-size: 2em) {
- .icon-stack {
- position: relative;
- display: inline-block;
- width: @width;
- height: @height;
- line-height: @width;
- vertical-align: -35%;
- [class^="icon-"],
- [class*=" icon-"] {
- display: block;
- text-align: center;
- position: absolute;
- width: 100%;
- height: 100%;
- font-size: @top-font-size;
- line-height: inherit;
- *line-height: @height;
- }
- .icon-stack-base {
- font-size: @base-font-size;
- *line-height: @height / @base-font-size;
- }
- }
+.fa-icon-flip(@horiz, @vert, @rotation) {
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=@rotation, mirror=1);
+ -webkit-transform: scale(@horiz, @vert);
+ -moz-transform: scale(@horiz, @vert);
+ -ms-transform: scale(@horiz, @vert);
+ -o-transform: scale(@horiz, @vert);
+ transform: scale(@horiz, @vert);
}
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
index 8ccef8c..d73bff8 100644
--- 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
@@ -3,12 +3,12 @@
@font-face {
font-family: 'FontAwesome';
- src: url('@{FontAwesomePath}/fontawesome-webfont.eot?v=@{FontAwesomeVersion}');
- src: url('@{FontAwesomePath}/fontawesome-webfont.eot?#iefix&v=@{FontAwesomeVersion}') format('embedded-opentype'),
- url('@{FontAwesomePath}/fontawesome-webfont.woff?v=@{FontAwesomeVersion}') format('woff'),
- url('@{FontAwesomePath}/fontawesome-webfont.ttf?v=@{FontAwesomeVersion}') format('truetype'),
- url('@{FontAwesomePath}/fontawesome-webfont.svg#fontawesomeregular?v=@{FontAwesomeVersion}') format('svg');
-// src: url('@{FontAwesomePath}/FontAwesome.otf') format('opentype'); // used when developing fonts
+ src: ~"url('@{fa-font-path}/fontawesome-webfont.eot?v=@{fa-version}')";
+ src: ~"url('@{fa-font-path}/fontawesome-webfont.eot?#iefix&v=@{fa-version}') format('embedded-opentype')",
+ ~"url('@{fa-font-path}/fontawesome-webfont.woff?v=@{fa-version}') format('woff')",
+ ~"url('@{fa-font-path}/fontawesome-webfont.ttf?v=@{fa-version}') format('truetype')",
+ ~"url('@{fa-font-path}/fontawesome-webfont.svg?v=@{fa-version}#fontawesomeregular') format('svg')";
+// src: url('@{fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts
font-weight: normal;
font-style: normal;
}
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
index 9d0879b..d7e8bd7 100644
--- 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
@@ -1,735 +1,515 @@
// Variables
// --------------------------
-@FontAwesomePath: "../font";
-//@FontAwesomePath: "//netdna.bootstrapcdn.com/font-awesome/3.2.1/font"; // for referencing Bootstrap CDN font files directly
-@FontAwesomeVersion: "3.2.1";
-@borderColor: #eee;
-@iconMuted: #eee;
-@iconLight: #fff;
-@iconDark: #333;
-@icons-li-width: 30/14em;
-
-
- @glass: "\f000";
-
- @music: "\f001";
-
- @search: "\f002";
-
- @envelope-alt: "\f003";
-
- @heart: "\f004";
-
- @star: "\f005";
-
- @star-empty: "\f006";
-
- @user: "\f007";
-
- @film: "\f008";
-
- @th-large: "\f009";
-
- @th: "\f00a";
-
- @th-list: "\f00b";
-
- @ok: "\f00c";
-
- @remove: "\f00d";
-
- @zoom-in: "\f00e";
-
- @zoom-out: "\f010";
-
- @off: "\f011";
-
- @signal: "\f012";
-
- @cog: "\f013";
-
- @trash: "\f014";
-
- @home: "\f015";
-
- @file-alt: "\f016";
-
- @time: "\f017";
-
- @road: "\f018";
-
- @download-alt: "\f019";
-
- @download: "\f01a";
-
- @upload: "\f01b";
-
- @inbox: "\f01c";
-
- @play-circle: "\f01d";
-
- @repeat: "\f01e";
-
- @refresh: "\f021";
-
- @list-alt: "\f022";
-
- @lock: "\f023";
-
- @flag: "\f024";
-
- @headphones: "\f025";
-
- @volume-off: "\f026";
-
- @volume-down: "\f027";
-
- @volume-up: "\f028";
-
- @qrcode: "\f029";
-
- @barcode: "\f02a";
-
- @tag: "\f02b";
-
- @tags: "\f02c";
-
- @book: "\f02d";
-
- @bookmark: "\f02e";
-
- @print: "\f02f";
-
- @camera: "\f030";
-
- @font: "\f031";
-
- @bold: "\f032";
-
- @italic: "\f033";
-
- @text-height: "\f034";
-
- @text-width: "\f035";
-
- @align-left: "\f036";
-
- @align-center: "\f037";
-
- @align-right: "\f038";
-
- @align-justify: "\f039";
-
- @list: "\f03a";
-
- @indent-left: "\f03b";
-
- @indent-right: "\f03c";
-
- @facetime-video: "\f03d";
-
- @picture: "\f03e";
-
- @pencil: "\f040";
-
- @map-marker: "\f041";
-
- @adjust: "\f042";
-
- @tint: "\f043";
-
- @edit: "\f044";
-
- @share: "\f045";
-
- @check: "\f046";
-
- @move: "\f047";
-
- @step-backward: "\f048";
-
- @fast-backward: "\f049";
-
- @backward: "\f04a";
-
- @play: "\f04b";
-
- @pause: "\f04c";
-
- @stop: "\f04d";
-
- @forward: "\f04e";
-
- @fast-forward: "\f050";
-
- @step-forward: "\f051";
-
- @eject: "\f052";
-
- @chevron-left: "\f053";
-
- @chevron-right: "\f054";
-
- @plus-sign: "\f055";
-
- @minus-sign: "\f056";
-
- @remove-sign: "\f057";
-
- @ok-sign: "\f058";
-
- @question-sign: "\f059";
-
- @info-sign: "\f05a";
-
- @screenshot: "\f05b";
-
- @remove-circle: "\f05c";
-
- @ok-circle: "\f05d";
-
- @ban-circle: "\f05e";
-
- @arrow-left: "\f060";
-
- @arrow-right: "\f061";
-
- @arrow-up: "\f062";
-
- @arrow-down: "\f063";
-
- @share-alt: "\f064";
-
- @resize-full: "\f065";
-
- @resize-small: "\f066";
-
- @plus: "\f067";
-
- @minus: "\f068";
-
- @asterisk: "\f069";
-
- @exclamation-sign: "\f06a";
-
- @gift: "\f06b";
-
- @leaf: "\f06c";
-
- @fire: "\f06d";
-
- @eye-open: "\f06e";
-
- @eye-close: "\f070";
-
- @warning-sign: "\f071";
-
- @plane: "\f072";
-
- @calendar: "\f073";
-
- @random: "\f074";
-
- @comment: "\f075";
-
- @magnet: "\f076";
-
- @chevron-up: "\f077";
-
- @chevron-down: "\f078";
-
- @retweet: "\f079";
-
- @shopping-cart: "\f07a";
-
- @folder-close: "\f07b";
-
- @folder-open: "\f07c";
-
- @resize-vertical: "\f07d";
-
- @resize-horizontal: "\f07e";
-
- @bar-chart: "\f080";
-
- @twitter-sign: "\f081";
-
- @facebook-sign: "\f082";
-
- @camera-retro: "\f083";
-
- @key: "\f084";
-
- @cogs: "\f085";
-
- @comments: "\f086";
-
- @thumbs-up-alt: "\f087";
-
- @thumbs-down-alt: "\f088";
-
- @star-half: "\f089";
-
- @heart-empty: "\f08a";
-
- @signout: "\f08b";
-
- @linkedin-sign: "\f08c";
-
- @pushpin: "\f08d";
-
- @external-link: "\f08e";
-
- @signin: "\f090";
-
- @trophy: "\f091";
-
- @github-sign: "\f092";
-
- @upload-alt: "\f093";
-
- @lemon: "\f094";
-
- @phone: "\f095";
-
- @check-empty: "\f096";
-
- @bookmark-empty: "\f097";
-
- @phone-sign: "\f098";
-
- @twitter: "\f099";
-
- @facebook: "\f09a";
-
- @github: "\f09b";
-
- @unlock: "\f09c";
-
- @credit-card: "\f09d";
-
- @rss: "\f09e";
-
- @hdd: "\f0a0";
-
- @bullhorn: "\f0a1";
-
- @bell: "\f0a2";
-
- @certificate: "\f0a3";
-
- @hand-right: "\f0a4";
-
- @hand-left: "\f0a5";
-
- @hand-up: "\f0a6";
-
- @hand-down: "\f0a7";
-
- @circle-arrow-left: "\f0a8";
-
- @circle-arrow-right: "\f0a9";
-
- @circle-arrow-up: "\f0aa";
-
- @circle-arrow-down: "\f0ab";
-
- @globe: "\f0ac";
-
- @wrench: "\f0ad";
-
- @tasks: "\f0ae";
-
- @filter: "\f0b0";
-
- @briefcase: "\f0b1";
-
- @fullscreen: "\f0b2";
-
- @group: "\f0c0";
-
- @link: "\f0c1";
-
- @cloud: "\f0c2";
-
- @beaker: "\f0c3";
-
- @cut: "\f0c4";
-
- @copy: "\f0c5";
-
- @paper-clip: "\f0c6";
-
- @save: "\f0c7";
-
- @sign-blank: "\f0c8";
-
- @reorder: "\f0c9";
-
- @list-ul: "\f0ca";
-
- @list-ol: "\f0cb";
-
- @strikethrough: "\f0cc";
-
- @underline: "\f0cd";
-
- @table: "\f0ce";
-
- @magic: "\f0d0";
-
- @truck: "\f0d1";
-
- @pinterest: "\f0d2";
-
- @pinterest-sign: "\f0d3";
-
- @google-plus-sign: "\f0d4";
-
- @google-plus: "\f0d5";
-
- @money: "\f0d6";
-
- @caret-down: "\f0d7";
-
- @caret-up: "\f0d8";
-
- @caret-left: "\f0d9";
-
- @caret-right: "\f0da";
-
- @columns: "\f0db";
-
- @sort: "\f0dc";
-
- @sort-down: "\f0dd";
-
- @sort-up: "\f0de";
-
- @envelope: "\f0e0";
-
- @linkedin: "\f0e1";
-
- @undo: "\f0e2";
-
- @legal: "\f0e3";
-
- @dashboard: "\f0e4";
-
- @comment-alt: "\f0e5";
-
- @comments-alt: "\f0e6";
-
- @bolt: "\f0e7";
-
- @sitemap: "\f0e8";
-
- @umbrella: "\f0e9";
-
- @paste: "\f0ea";
-
- @lightbulb: "\f0eb";
-
- @exchange: "\f0ec";
-
- @cloud-download: "\f0ed";
-
- @cloud-upload: "\f0ee";
-
- @user-md: "\f0f0";
-
- @stethoscope: "\f0f1";
-
- @suitcase: "\f0f2";
-
- @bell-alt: "\f0f3";
-
- @coffee: "\f0f4";
-
- @food: "\f0f5";
-
- @file-text-alt: "\f0f6";
-
- @building: "\f0f7";
-
- @hospital: "\f0f8";
-
- @ambulance: "\f0f9";
-
- @medkit: "\f0fa";
-
- @fighter-jet: "\f0fb";
-
- @beer: "\f0fc";
-
- @h-sign: "\f0fd";
-
- @plus-sign-alt: "\f0fe";
-
- @double-angle-left: "\f100";
-
- @double-angle-right: "\f101";
-
- @double-angle-up: "\f102";
-
- @double-angle-down: "\f103";
-
- @angle-left: "\f104";
-
- @angle-right: "\f105";
-
- @angle-up: "\f106";
-
- @angle-down: "\f107";
-
- @desktop: "\f108";
-
- @laptop: "\f109";
-
- @tablet: "\f10a";
-
- @mobile-phone: "\f10b";
-
- @circle-blank: "\f10c";
-
- @quote-left: "\f10d";
-
- @quote-right: "\f10e";
-
- @spinner: "\f110";
-
- @circle: "\f111";
-
- @reply: "\f112";
-
- @github-alt: "\f113";
-
- @folder-close-alt: "\f114";
-
- @folder-open-alt: "\f115";
-
- @expand-alt: "\f116";
-
- @collapse-alt: "\f117";
-
- @smile: "\f118";
-
- @frown: "\f119";
-
- @meh: "\f11a";
-
- @gamepad: "\f11b";
-
- @keyboard: "\f11c";
-
- @flag-alt: "\f11d";
-
- @flag-checkered: "\f11e";
-
- @terminal: "\f120";
-
- @code: "\f121";
-
- @reply-all: "\f122";
-
- @mail-reply-all: "\f122";
-
- @star-half-empty: "\f123";
-
- @location-arrow: "\f124";
-
- @crop: "\f125";
-
- @code-fork: "\f126";
-
- @unlink: "\f127";
-
- @question: "\f128";
-
- @info: "\f129";
-
- @exclamation: "\f12a";
-
- @superscript: "\f12b";
-
- @subscript: "\f12c";
-
- @eraser: "\f12d";
-
- @puzzle-piece: "\f12e";
-
- @microphone: "\f130";
-
- @microphone-off: "\f131";
-
- @shield: "\f132";
-
- @calendar-empty: "\f133";
-
- @fire-extinguisher: "\f134";
-
- @rocket: "\f135";
-
- @maxcdn: "\f136";
-
- @chevron-sign-left: "\f137";
-
- @chevron-sign-right: "\f138";
-
- @chevron-sign-up: "\f139";
-
- @chevron-sign-down: "\f13a";
-
- @html5: "\f13b";
-
- @css3: "\f13c";
-
- @anchor: "\f13d";
-
- @unlock-alt: "\f13e";
-
- @bullseye: "\f140";
-
- @ellipsis-horizontal: "\f141";
-
- @ellipsis-vertical: "\f142";
-
- @rss-sign: "\f143";
-
- @play-sign: "\f144";
-
- @ticket: "\f145";
-
- @minus-sign-alt: "\f146";
-
- @check-minus: "\f147";
-
- @level-up: "\f148";
-
- @level-down: "\f149";
-
- @check-sign: "\f14a";
-
- @edit-sign: "\f14b";
-
- @external-link-sign: "\f14c";
-
- @share-sign: "\f14d";
-
- @compass: "\f14e";
-
- @collapse: "\f150";
-
- @collapse-top: "\f151";
-
- @expand: "\f152";
-
- @eur: "\f153";
-
- @gbp: "\f154";
-
- @usd: "\f155";
-
- @inr: "\f156";
-
- @jpy: "\f157";
-
- @cny: "\f158";
-
- @krw: "\f159";
-
- @btc: "\f15a";
-
- @file: "\f15b";
-
- @file-text: "\f15c";
-
- @sort-by-alphabet: "\f15d";
-
- @sort-by-alphabet-alt: "\f15e";
-
- @sort-by-attributes: "\f160";
-
- @sort-by-attributes-alt: "\f161";
-
- @sort-by-order: "\f162";
-
- @sort-by-order-alt: "\f163";
-
- @thumbs-up: "\f164";
-
- @thumbs-down: "\f165";
-
- @youtube-sign: "\f166";
-
- @youtube: "\f167";
-
- @xing: "\f168";
-
- @xing-sign: "\f169";
-
- @youtube-play: "\f16a";
-
- @dropbox: "\f16b";
-
- @stackexchange: "\f16c";
-
- @instagram: "\f16d";
-
- @flickr: "\f16e";
-
- @adn: "\f170";
-
- @bitbucket: "\f171";
-
- @bitbucket-sign: "\f172";
-
- @tumblr: "\f173";
-
- @tumblr-sign: "\f174";
-
- @long-arrow-down: "\f175";
-
- @long-arrow-up: "\f176";
-
- @long-arrow-left: "\f177";
-
- @long-arrow-right: "\f178";
-
- @apple: "\f179";
-
- @windows: "\f17a";
-
- @android: "\f17b";
-
- @linux: "\f17c";
-
- @dribbble: "\f17d";
-
- @skype: "\f17e";
-
- @foursquare: "\f180";
-
- @trello: "\f181";
-
- @female: "\f182";
-
- @male: "\f183";
-
- @gittip: "\f184";
-
- @sun: "\f185";
-
- @moon: "\f186";
-
- @archive: "\f187";
-
- @bug: "\f188";
-
- @vk: "\f189";
-
- @weibo: "\f18a";
-
- @renren: "\f18b";
+@fa-font-path: "../fonts";
+//@fa-font-path: "//netdna.bootstrapcdn.com/font-awesome/4.1.0/fonts"; // for referencing Bootstrap CDN font files directly
+@fa-css-prefix: fa;
+@fa-version: "4.1.0";
+@fa-border-color: #eee;
+@fa-inverse: #fff;
+@fa-li-width: (30em / 14);
+
+@fa-var-adjust: "\f042";
+@fa-var-adn: "\f170";
+@fa-var-align-center: "\f037";
+@fa-var-align-justify: "\f039";
+@fa-var-align-left: "\f036";
+@fa-var-align-right: "\f038";
+@fa-var-ambulance: "\f0f9";
+@fa-var-anchor: "\f13d";
+@fa-var-android: "\f17b";
+@fa-var-angle-double-down: "\f103";
+@fa-var-angle-double-left: "\f100";
+@fa-var-angle-double-right: "\f101";
+@fa-var-angle-double-up: "\f102";
+@fa-var-angle-down: "\f107";
+@fa-var-angle-left: "\f104";
+@fa-var-angle-right: "\f105";
+@fa-var-angle-up: "\f106";
+@fa-var-apple: "\f179";
+@fa-var-archive: "\f187";
+@fa-var-arrow-circle-down: "\f0ab";
+@fa-var-arrow-circle-left: "\f0a8";
+@fa-var-arrow-circle-o-down: "\f01a";
+@fa-var-arrow-circle-o-left: "\f190";
+@fa-var-arrow-circle-o-right: "\f18e";
+@fa-var-arrow-circle-o-up: "\f01b";
+@fa-var-arrow-circle-right: "\f0a9";
+@fa-var-arrow-circle-up: "\f0aa";
+@fa-var-arrow-down: "\f063";
+@fa-var-arrow-left: "\f060";
+@fa-var-arrow-right: "\f061";
+@fa-var-arrow-up: "\f062";
+@fa-var-arrows: "\f047";
+@fa-var-arrows-alt: "\f0b2";
+@fa-var-arrows-h: "\f07e";
+@fa-var-arrows-v: "\f07d";
+@fa-var-asterisk: "\f069";
+@fa-var-automobile: "\f1b9";
+@fa-var-backward: "\f04a";
+@fa-var-ban: "\f05e";
+@fa-var-bank: "\f19c";
+@fa-var-bar-chart-o: "\f080";
+@fa-var-barcode: "\f02a";
+@fa-var-bars: "\f0c9";
+@fa-var-beer: "\f0fc";
+@fa-var-behance: "\f1b4";
+@fa-var-behance-square: "\f1b5";
+@fa-var-bell: "\f0f3";
+@fa-var-bell-o: "\f0a2";
+@fa-var-bitbucket: "\f171";
+@fa-var-bitbucket-square: "\f172";
+@fa-var-bitcoin: "\f15a";
+@fa-var-bold: "\f032";
+@fa-var-bolt: "\f0e7";
+@fa-var-bomb: "\f1e2";
+@fa-var-book: "\f02d";
+@fa-var-bookmark: "\f02e";
+@fa-var-bookmark-o: "\f097";
+@fa-var-briefcase: "\f0b1";
+@fa-var-btc: "\f15a";
+@fa-var-bug: "\f188";
+@fa-var-building: "\f1ad";
+@fa-var-building-o: "\f0f7";
+@fa-var-bullhorn: "\f0a1";
+@fa-var-bullseye: "\f140";
+@fa-var-cab: "\f1ba";
+@fa-var-calendar: "\f073";
+@fa-var-calendar-o: "\f133";
+@fa-var-camera: "\f030";
+@fa-var-camera-retro: "\f083";
+@fa-var-car: "\f1b9";
+@fa-var-caret-down: "\f0d7";
+@fa-var-caret-left: "\f0d9";
+@fa-var-caret-right: "\f0da";
+@fa-var-caret-square-o-down: "\f150";
+@fa-var-caret-square-o-left: "\f191";
+@fa-var-caret-square-o-right: "\f152";
+@fa-var-caret-square-o-up: "\f151";
+@fa-var-caret-up: "\f0d8";
+@fa-var-certificate: "\f0a3";
+@fa-var-chain: "\f0c1";
+@fa-var-chain-broken: "\f127";
+@fa-var-check: "\f00c";
+@fa-var-check-circle: "\f058";
+@fa-var-check-circle-o: "\f05d";
+@fa-var-check-square: "\f14a";
+@fa-var-check-square-o: "\f046";
+@fa-var-chevron-circle-down: "\f13a";
+@fa-var-chevron-circle-left: "\f137";
+@fa-var-chevron-circle-right: "\f138";
+@fa-var-chevron-circle-up: "\f139";
+@fa-var-chevron-down: "\f078";
+@fa-var-chevron-left: "\f053";
+@fa-var-chevron-right: "\f054";
+@fa-var-chevron-up: "\f077";
+@fa-var-child: "\f1ae";
+@fa-var-circle: "\f111";
+@fa-var-circle-o: "\f10c";
+@fa-var-circle-o-notch: "\f1ce";
+@fa-var-circle-thin: "\f1db";
+@fa-var-clipboard: "\f0ea";
+@fa-var-clock-o: "\f017";
+@fa-var-cloud: "\f0c2";
+@fa-var-cloud-download: "\f0ed";
+@fa-var-cloud-upload: "\f0ee";
+@fa-var-cny: "\f157";
+@fa-var-code: "\f121";
+@fa-var-code-fork: "\f126";
+@fa-var-codepen: "\f1cb";
+@fa-var-coffee: "\f0f4";
+@fa-var-cog: "\f013";
+@fa-var-cogs: "\f085";
+@fa-var-columns: "\f0db";
+@fa-var-comment: "\f075";
+@fa-var-comment-o: "\f0e5";
+@fa-var-comments: "\f086";
+@fa-var-comments-o: "\f0e6";
+@fa-var-compass: "\f14e";
+@fa-var-compress: "\f066";
+@fa-var-copy: "\f0c5";
+@fa-var-credit-card: "\f09d";
+@fa-var-crop: "\f125";
+@fa-var-crosshairs: "\f05b";
+@fa-var-css3: "\f13c";
+@fa-var-cube: "\f1b2";
+@fa-var-cubes: "\f1b3";
+@fa-var-cut: "\f0c4";
+@fa-var-cutlery: "\f0f5";
+@fa-var-dashboard: "\f0e4";
+@fa-var-database: "\f1c0";
+@fa-var-dedent: "\f03b";
+@fa-var-delicious: "\f1a5";
+@fa-var-desktop: "\f108";
+@fa-var-deviantart: "\f1bd";
+@fa-var-digg: "\f1a6";
+@fa-var-dollar: "\f155";
+@fa-var-dot-circle-o: "\f192";
+@fa-var-download: "\f019";
+@fa-var-dribbble: "\f17d";
+@fa-var-dropbox: "\f16b";
+@fa-var-drupal: "\f1a9";
+@fa-var-edit: "\f044";
+@fa-var-eject: "\f052";
+@fa-var-ellipsis-h: "\f141";
+@fa-var-ellipsis-v: "\f142";
+@fa-var-empire: "\f1d1";
+@fa-var-envelope: "\f0e0";
+@fa-var-envelope-o: "\f003";
+@fa-var-envelope-square: "\f199";
+@fa-var-eraser: "\f12d";
+@fa-var-eur: "\f153";
+@fa-var-euro: "\f153";
+@fa-var-exchange: "\f0ec";
+@fa-var-exclamation: "\f12a";
+@fa-var-exclamation-circle: "\f06a";
+@fa-var-exclamation-triangle: "\f071";
+@fa-var-expand: "\f065";
+@fa-var-external-link: "\f08e";
+@fa-var-external-link-square: "\f14c";
+@fa-var-eye: "\f06e";
+@fa-var-eye-slash: "\f070";
+@fa-var-facebook: "\f09a";
+@fa-var-facebook-square: "\f082";
+@fa-var-fast-backward: "\f049";
+@fa-var-fast-forward: "\f050";
+@fa-var-fax: "\f1ac";
+@fa-var-female: "\f182";
+@fa-var-fighter-jet: "\f0fb";
+@fa-var-file: "\f15b";
+@fa-var-file-archive-o: "\f1c6";
+@fa-var-file-audio-o: "\f1c7";
+@fa-var-file-code-o: "\f1c9";
+@fa-var-file-excel-o: "\f1c3";
+@fa-var-file-image-o: "\f1c5";
+@fa-var-file-movie-o: "\f1c8";
+@fa-var-file-o: "\f016";
+@fa-var-file-pdf-o: "\f1c1";
+@fa-var-file-photo-o: "\f1c5";
+@fa-var-file-picture-o: "\f1c5";
+@fa-var-file-powerpoint-o: "\f1c4";
+@fa-var-file-sound-o: "\f1c7";
+@fa-var-file-text: "\f15c";
+@fa-var-file-text-o: "\f0f6";
+@fa-var-file-video-o: "\f1c8";
+@fa-var-file-word-o: "\f1c2";
+@fa-var-file-zip-o: "\f1c6";
+@fa-var-files-o: "\f0c5";
+@fa-var-film: "\f008";
+@fa-var-filter: "\f0b0";
+@fa-var-fire: "\f06d";
+@fa-var-fire-extinguisher: "\f134";
+@fa-var-flag: "\f024";
+@fa-var-flag-checkered: "\f11e";
+@fa-var-flag-o: "\f11d";
+@fa-var-flash: "\f0e7";
+@fa-var-flask: "\f0c3";
+@fa-var-flickr: "\f16e";
+@fa-var-floppy-o: "\f0c7";
+@fa-var-folder: "\f07b";
+@fa-var-folder-o: "\f114";
+@fa-var-folder-open: "\f07c";
+@fa-var-folder-open-o: "\f115";
+@fa-var-font: "\f031";
+@fa-var-forward: "\f04e";
+@fa-var-foursquare: "\f180";
+@fa-var-frown-o: "\f119";
+@fa-var-gamepad: "\f11b";
+@fa-var-gavel: "\f0e3";
+@fa-var-gbp: "\f154";
+@fa-var-ge: "\f1d1";
+@fa-var-gear: "\f013";
+@fa-var-gears: "\f085";
+@fa-var-gift: "\f06b";
+@fa-var-git: "\f1d3";
+@fa-var-git-square: "\f1d2";
+@fa-var-github: "\f09b";
+@fa-var-github-alt: "\f113";
+@fa-var-github-square: "\f092";
+@fa-var-gittip: "\f184";
+@fa-var-glass: "\f000";
+@fa-var-globe: "\f0ac";
+@fa-var-google: "\f1a0";
+@fa-var-google-plus: "\f0d5";
+@fa-var-google-plus-square: "\f0d4";
+@fa-var-graduation-cap: "\f19d";
+@fa-var-group: "\f0c0";
+@fa-var-h-square: "\f0fd";
+@fa-var-hacker-news: "\f1d4";
+@fa-var-hand-o-down: "\f0a7";
+@fa-var-hand-o-left: "\f0a5";
+@fa-var-hand-o-right: "\f0a4";
+@fa-var-hand-o-up: "\f0a6";
+@fa-var-hdd-o: "\f0a0";
+@fa-var-header: "\f1dc";
+@fa-var-headphones: "\f025";
+@fa-var-heart: "\f004";
+@fa-var-heart-o: "\f08a";
+@fa-var-history: "\f1da";
+@fa-var-home: "\f015";
+@fa-var-hospital-o: "\f0f8";
+@fa-var-html5: "\f13b";
+@fa-var-image: "\f03e";
+@fa-var-inbox: "\f01c";
+@fa-var-indent: "\f03c";
+@fa-var-info: "\f129";
+@fa-var-info-circle: "\f05a";
+@fa-var-inr: "\f156";
+@fa-var-instagram: "\f16d";
+@fa-var-institution: "\f19c";
+@fa-var-italic: "\f033";
+@fa-var-joomla: "\f1aa";
+@fa-var-jpy: "\f157";
+@fa-var-jsfiddle: "\f1cc";
+@fa-var-key: "\f084";
+@fa-var-keyboard-o: "\f11c";
+@fa-var-krw: "\f159";
+@fa-var-language: "\f1ab";
+@fa-var-laptop: "\f109";
+@fa-var-leaf: "\f06c";
+@fa-var-legal: "\f0e3";
+@fa-var-lemon-o: "\f094";
+@fa-var-level-down: "\f149";
+@fa-var-level-up: "\f148";
+@fa-var-life-bouy: "\f1cd";
+@fa-var-life-ring: "\f1cd";
+@fa-var-life-saver: "\f1cd";
+@fa-var-lightbulb-o: "\f0eb";
+@fa-var-link: "\f0c1";
+@fa-var-linkedin: "\f0e1";
+@fa-var-linkedin-square: "\f08c";
+@fa-var-linux: "\f17c";
+@fa-var-list: "\f03a";
+@fa-var-list-alt: "\f022";
+@fa-var-list-ol: "\f0cb";
+@fa-var-list-ul: "\f0ca";
+@fa-var-location-arrow: "\f124";
+@fa-var-lock: "\f023";
+@fa-var-long-arrow-down: "\f175";
+@fa-var-long-arrow-left: "\f177";
+@fa-var-long-arrow-right: "\f178";
+@fa-var-long-arrow-up: "\f176";
+@fa-var-magic: "\f0d0";
+@fa-var-magnet: "\f076";
+@fa-var-mail-forward: "\f064";
+@fa-var-mail-reply: "\f112";
+@fa-var-mail-reply-all: "\f122";
+@fa-var-male: "\f183";
+@fa-var-map-marker: "\f041";
+@fa-var-maxcdn: "\f136";
+@fa-var-medkit: "\f0fa";
+@fa-var-meh-o: "\f11a";
+@fa-var-microphone: "\f130";
+@fa-var-microphone-slash: "\f131";
+@fa-var-minus: "\f068";
+@fa-var-minus-circle: "\f056";
+@fa-var-minus-square: "\f146";
+@fa-var-minus-square-o: "\f147";
+@fa-var-mobile: "\f10b";
+@fa-var-mobile-phone: "\f10b";
+@fa-var-money: "\f0d6";
+@fa-var-moon-o: "\f186";
+@fa-var-mortar-board: "\f19d";
+@fa-var-music: "\f001";
+@fa-var-navicon: "\f0c9";
+@fa-var-openid: "\f19b";
+@fa-var-outdent: "\f03b";
+@fa-var-pagelines: "\f18c";
+@fa-var-paper-plane: "\f1d8";
+@fa-var-paper-plane-o: "\f1d9";
+@fa-var-paperclip: "\f0c6";
+@fa-var-paragraph: "\f1dd";
+@fa-var-paste: "\f0ea";
+@fa-var-pause: "\f04c";
+@fa-var-paw: "\f1b0";
+@fa-var-pencil: "\f040";
+@fa-var-pencil-square: "\f14b";
+@fa-var-pencil-square-o: "\f044";
+@fa-var-phone: "\f095";
+@fa-var-phone-square: "\f098";
+@fa-var-photo: "\f03e";
+@fa-var-picture-o: "\f03e";
+@fa-var-pied-piper: "\f1a7";
+@fa-var-pied-piper-alt: "\f1a8";
+@fa-var-pied-piper-square: "\f1a7";
+@fa-var-pinterest: "\f0d2";
+@fa-var-pinterest-square: "\f0d3";
+@fa-var-plane: "\f072";
+@fa-var-play: "\f04b";
+@fa-var-play-circle: "\f144";
+@fa-var-play-circle-o: "\f01d";
+@fa-var-plus: "\f067";
+@fa-var-plus-circle: "\f055";
+@fa-var-plus-square: "\f0fe";
+@fa-var-plus-square-o: "\f196";
+@fa-var-power-off: "\f011";
+@fa-var-print: "\f02f";
+@fa-var-puzzle-piece: "\f12e";
+@fa-var-qq: "\f1d6";
+@fa-var-qrcode: "\f029";
+@fa-var-question: "\f128";
+@fa-var-question-circle: "\f059";
+@fa-var-quote-left: "\f10d";
+@fa-var-quote-right: "\f10e";
+@fa-var-ra: "\f1d0";
+@fa-var-random: "\f074";
+@fa-var-rebel: "\f1d0";
+@fa-var-recycle: "\f1b8";
+@fa-var-reddit: "\f1a1";
+@fa-var-reddit-square: "\f1a2";
+@fa-var-refresh: "\f021";
+@fa-var-renren: "\f18b";
+@fa-var-reorder: "\f0c9";
+@fa-var-repeat: "\f01e";
+@fa-var-reply: "\f112";
+@fa-var-reply-all: "\f122";
+@fa-var-retweet: "\f079";
+@fa-var-rmb: "\f157";
+@fa-var-road: "\f018";
+@fa-var-rocket: "\f135";
+@fa-var-rotate-left: "\f0e2";
+@fa-var-rotate-right: "\f01e";
+@fa-var-rouble: "\f158";
+@fa-var-rss: "\f09e";
+@fa-var-rss-square: "\f143";
+@fa-var-rub: "\f158";
+@fa-var-ruble: "\f158";
+@fa-var-rupee: "\f156";
+@fa-var-save: "\f0c7";
+@fa-var-scissors: "\f0c4";
+@fa-var-search: "\f002";
+@fa-var-search-minus: "\f010";
+@fa-var-search-plus: "\f00e";
+@fa-var-send: "\f1d8";
+@fa-var-send-o: "\f1d9";
+@fa-var-share: "\f064";
+@fa-var-share-alt: "\f1e0";
+@fa-var-share-alt-square: "\f1e1";
+@fa-var-share-square: "\f14d";
+@fa-var-share-square-o: "\f045";
+@fa-var-shield: "\f132";
+@fa-var-shopping-cart: "\f07a";
+@fa-var-sign-in: "\f090";
+@fa-var-sign-out: "\f08b";
+@fa-var-signal: "\f012";
+@fa-var-sitemap: "\f0e8";
+@fa-var-skype: "\f17e";
+@fa-var-slack: "\f198";
+@fa-var-sliders: "\f1de";
+@fa-var-smile-o: "\f118";
+@fa-var-sort: "\f0dc";
+@fa-var-sort-alpha-asc: "\f15d";
+@fa-var-sort-alpha-desc: "\f15e";
+@fa-var-sort-amount-asc: "\f160";
+@fa-var-sort-amount-desc: "\f161";
+@fa-var-sort-asc: "\f0de";
+@fa-var-sort-desc: "\f0dd";
+@fa-var-sort-down: "\f0dd";
+@fa-var-sort-numeric-asc: "\f162";
+@fa-var-sort-numeric-desc: "\f163";
+@fa-var-sort-up: "\f0de";
+@fa-var-soundcloud: "\f1be";
+@fa-var-space-shuttle: "\f197";
+@fa-var-spinner: "\f110";
+@fa-var-spoon: "\f1b1";
+@fa-var-spotify: "\f1bc";
+@fa-var-square: "\f0c8";
+@fa-var-square-o: "\f096";
+@fa-var-stack-exchange: "\f18d";
+@fa-var-stack-overflow: "\f16c";
+@fa-var-star: "\f005";
+@fa-var-star-half: "\f089";
+@fa-var-star-half-empty: "\f123";
+@fa-var-star-half-full: "\f123";
+@fa-var-star-half-o: "\f123";
+@fa-var-star-o: "\f006";
+@fa-var-steam: "\f1b6";
+@fa-var-steam-square: "\f1b7";
+@fa-var-step-backward: "\f048";
+@fa-var-step-forward: "\f051";
+@fa-var-stethoscope: "\f0f1";
+@fa-var-stop: "\f04d";
+@fa-var-strikethrough: "\f0cc";
+@fa-var-stumbleupon: "\f1a4";
+@fa-var-stumbleupon-circle: "\f1a3";
+@fa-var-subscript: "\f12c";
+@fa-var-suitcase: "\f0f2";
+@fa-var-sun-o: "\f185";
+@fa-var-superscript: "\f12b";
+@fa-var-support: "\f1cd";
+@fa-var-table: "\f0ce";
+@fa-var-tablet: "\f10a";
+@fa-var-tachometer: "\f0e4";
+@fa-var-tag: "\f02b";
+@fa-var-tags: "\f02c";
+@fa-var-tasks: "\f0ae";
+@fa-var-taxi: "\f1ba";
+@fa-var-tencent-weibo: "\f1d5";
+@fa-var-terminal: "\f120";
+@fa-var-text-height: "\f034";
+@fa-var-text-width: "\f035";
+@fa-var-th: "\f00a";
+@fa-var-th-large: "\f009";
+@fa-var-th-list: "\f00b";
+@fa-var-thumb-tack: "\f08d";
+@fa-var-thumbs-down: "\f165";
+@fa-var-thumbs-o-down: "\f088";
+@fa-var-thumbs-o-up: "\f087";
+@fa-var-thumbs-up: "\f164";
+@fa-var-ticket: "\f145";
+@fa-var-times: "\f00d";
+@fa-var-times-circle: "\f057";
+@fa-var-times-circle-o: "\f05c";
+@fa-var-tint: "\f043";
+@fa-var-toggle-down: "\f150";
+@fa-var-toggle-left: "\f191";
+@fa-var-toggle-right: "\f152";
+@fa-var-toggle-up: "\f151";
+@fa-var-trash-o: "\f014";
+@fa-var-tree: "\f1bb";
+@fa-var-trello: "\f181";
+@fa-var-trophy: "\f091";
+@fa-var-truck: "\f0d1";
+@fa-var-try: "\f195";
+@fa-var-tumblr: "\f173";
+@fa-var-tumblr-square: "\f174";
+@fa-var-turkish-lira: "\f195";
+@fa-var-twitter: "\f099";
+@fa-var-twitter-square: "\f081";
+@fa-var-umbrella: "\f0e9";
+@fa-var-underline: "\f0cd";
+@fa-var-undo: "\f0e2";
+@fa-var-university: "\f19c";
+@fa-var-unlink: "\f127";
+@fa-var-unlock: "\f09c";
+@fa-var-unlock-alt: "\f13e";
+@fa-var-unsorted: "\f0dc";
+@fa-var-upload: "\f093";
+@fa-var-usd: "\f155";
+@fa-var-user: "\f007";
+@fa-var-user-md: "\f0f0";
+@fa-var-users: "\f0c0";
+@fa-var-video-camera: "\f03d";
+@fa-var-vimeo-square: "\f194";
+@fa-var-vine: "\f1ca";
+@fa-var-vk: "\f189";
+@fa-var-volume-down: "\f027";
+@fa-var-volume-off: "\f026";
+@fa-var-volume-up: "\f028";
+@fa-var-warning: "\f071";
+@fa-var-wechat: "\f1d7";
+@fa-var-weibo: "\f18a";
+@fa-var-weixin: "\f1d7";
+@fa-var-wheelchair: "\f193";
+@fa-var-windows: "\f17a";
+@fa-var-won: "\f159";
+@fa-var-wordpress: "\f19a";
+@fa-var-wrench: "\f0ad";
+@fa-var-xing: "\f168";
+@fa-var-xing-square: "\f169";
+@fa-var-yahoo: "\f19e";
+@fa-var-yen: "\f157";
+@fa-var-youtube: "\f167";
+@fa-var-youtube-play: "\f16a";
+@fa-var-youtube-square: "\f166";
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
index 0189c73..861ccd9 100644
--- 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
@@ -1,129 +1,12 @@
-/* FONT AWESOME CORE
- * -------------------------- */
-
-[class^="icon-"],
-[class*=" icon-"] {
- @include icon-FontAwesome();
-}
-
-[class^="icon-"]:before,
-[class*=" icon-"]:before {
- text-decoration: inherit;
- display: inline-block;
- speak: none;
-}
-
-/* makes the font 33% larger relative to the icon container */
-.icon-large:before {
- vertical-align: -10%;
- font-size: (4em/3);
-}
-
-/* makes sure icons active on rollover in links */
-a {
- [class^="icon-"],
- [class*=" icon-"] {
- display: inline;
- }
-}
-
-/* increased font size for icon-large */
-[class^="icon-"],
-[class*=" icon-"] {
- &.icon-fixed-width {
- display: inline-block;
- width: (16em/14);
- text-align: right;
- padding-right: (4em/14);
- &.icon-large {
- width: (20em/14);
- }
- }
-}
-
-.icons-ul {
- margin-left: $icons-li-width;
- list-style-type: none;
-
- > li { position: relative; }
-
- .icon-li {
- position: absolute;
- left: -$icons-li-width;
- width: $icons-li-width;
- text-align: center;
- line-height: inherit;
- }
-}
-
-// allows usage of the hide class directly on font awesome icons
-[class^="icon-"],
-[class*=" icon-"] {
- &.hide {
- display: none;
- }
-}
-
-.icon-muted { color: $iconMuted; }
-.icon-light { color: $iconLight; }
-.icon-dark { color: $iconDark; }
-
-// Icon Borders
+// Base Class Definition
// -------------------------
-.icon-border {
- border: solid 1px $borderColor;
- padding: .2em .25em .15em;
- @include border-radius(3px);
-}
-
-// Icon Sizes
-// -------------------------
-
-.icon-2x {
- font-size: 2em;
- &.icon-border {
- border-width: 2px;
- @include border-radius(4px);
- }
-}
-.icon-3x {
- font-size: 3em;
- &.icon-border {
- border-width: 3px;
- @include border-radius(5px);
- }
-}
-.icon-4x {
- font-size: 4em;
- &.icon-border {
- border-width: 4px;
- @include border-radius(6px);
- }
-}
-
-.icon-5x {
- font-size: 5em;
- &.icon-border {
- border-width: 5px;
- @include border-radius(7px);
- }
-}
-
-
-// Floats & Margins
-// -------------------------
-
-// Quick floats
-.pull-right { float: right; }
-.pull-left { float: left; }
-
-[class^="icon-"],
-[class*=" icon-"] {
- &.pull-left {
- margin-right: .3em;
- }
- &.pull-right {
- margin-left: .3em;
- }
+.#{$fa-css-prefix} {
+ display: inline-block;
+ font-family: FontAwesome;
+ font-style: normal;
+ font-weight: normal;
+ line-height: 1;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
}
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
index eefda0c..efb4435 100644
--- 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
@@ -1,381 +1,506 @@
/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
- * readers do not read off random characters that represent icons */
+ readers do not read off random characters that represent icons */
-.icon-glass:before { content: $glass; }
-.icon-music:before { content: $music; }
-.icon-search:before { content: $search; }
-.icon-envelope-alt:before { content: $envelope-alt; }
-.icon-heart:before { content: $heart; }
-.icon-star:before { content: $star; }
-.icon-star-empty:before { content: $star-empty; }
-.icon-user:before { content: $user; }
-.icon-film:before { content: $film; }
-.icon-th-large:before { content: $th-large; }
-.icon-th:before { content: $th; }
-.icon-th-list:before { content: $th-list; }
-.icon-ok:before { content: $ok; }
-.icon-remove:before { content: $remove; }
-.icon-zoom-in:before { content: $zoom-in; }
-.icon-zoom-out:before { content: $zoom-out; }
-.icon-power-off:before,
-.icon-off:before { content: $off; }
-.icon-signal:before { content: $signal; }
-.icon-gear:before,
-.icon-cog:before { content: $cog; }
-.icon-trash:before { content: $trash; }
-.icon-home:before { content: $home; }
-.icon-file-alt:before { content: $file-alt; }
-.icon-time:before { content: $time; }
-.icon-road:before { content: $road; }
-.icon-download-alt:before { content: $download-alt; }
-.icon-download:before { content: $download; }
-.icon-upload:before { content: $upload; }
-.icon-inbox:before { content: $inbox; }
-.icon-play-circle:before { content: $play-circle; }
-.icon-rotate-right:before,
-.icon-repeat:before { content: $repeat; }
-.icon-refresh:before { content: $refresh; }
-.icon-list-alt:before { content: $list-alt; }
-.icon-lock:before { content: $lock; }
-.icon-flag:before { content: $flag; }
-.icon-headphones:before { content: $headphones; }
-.icon-volume-off:before { content: $volume-off; }
-.icon-volume-down:before { content: $volume-down; }
-.icon-volume-up:before { content: $volume-up; }
-.icon-qrcode:before { content: $qrcode; }
-.icon-barcode:before { content: $barcode; }
-.icon-tag:before { content: $tag; }
-.icon-tags:before { content: $tags; }
-.icon-book:before { content: $book; }
-.icon-bookmark:before { content: $bookmark; }
-.icon-print:before { content: $print; }
-.icon-camera:before { content: $camera; }
-.icon-font:before { content: $font; }
-.icon-bold:before { content: $bold; }
-.icon-italic:before { content: $italic; }
-.icon-text-height:before { content: $text-height; }
-.icon-text-width:before { content: $text-width; }
-.icon-align-left:before { content: $align-left; }
-.icon-align-center:before { content: $align-center; }
-.icon-align-right:before { content: $align-right; }
-.icon-align-justify:before { content: $align-justify; }
-.icon-list:before { content: $list; }
-.icon-indent-left:before { content: $indent-left; }
-.icon-indent-right:before { content: $indent-right; }
-.icon-facetime-video:before { content: $facetime-video; }
-.icon-picture:before { content: $picture; }
-.icon-pencil:before { content: $pencil; }
-.icon-map-marker:before { content: $map-marker; }
-.icon-adjust:before { content: $adjust; }
-.icon-tint:before { content: $tint; }
-.icon-edit:before { content: $edit; }
-.icon-share:before { content: $share; }
-.icon-check:before { content: $check; }
-.icon-move:before { content: $move; }
-.icon-step-backward:before { content: $step-backward; }
-.icon-fast-backward:before { content: $fast-backward; }
-.icon-backward:before { content: $backward; }
-.icon-play:before { content: $play; }
-.icon-pause:before { content: $pause; }
-.icon-stop:before { content: $stop; }
-.icon-forward:before { content: $forward; }
-.icon-fast-forward:before { content: $fast-forward; }
-.icon-step-forward:before { content: $step-forward; }
-.icon-eject:before { content: $eject; }
-.icon-chevron-left:before { content: $chevron-left; }
-.icon-chevron-right:before { content: $chevron-right; }
-.icon-plus-sign:before { content: $plus-sign; }
-.icon-minus-sign:before { content: $minus-sign; }
-.icon-remove-sign:before { content: $remove-sign; }
-.icon-ok-sign:before { content: $ok-sign; }
-.icon-question-sign:before { content: $question-sign; }
-.icon-info-sign:before { content: $info-sign; }
-.icon-screenshot:before { content: $screenshot; }
-.icon-remove-circle:before { content: $remove-circle; }
-.icon-ok-circle:before { content: $ok-circle; }
-.icon-ban-circle:before { content: $ban-circle; }
-.icon-arrow-left:before { content: $arrow-left; }
-.icon-arrow-right:before { content: $arrow-right; }
-.icon-arrow-up:before { content: $arrow-up; }
-.icon-arrow-down:before { content: $arrow-down; }
-.icon-mail-forward:before,
-.icon-share-alt:before { content: $share-alt; }
-.icon-resize-full:before { content: $resize-full; }
-.icon-resize-small:before { content: $resize-small; }
-.icon-plus:before { content: $plus; }
-.icon-minus:before { content: $minus; }
-.icon-asterisk:before { content: $asterisk; }
-.icon-exclamation-sign:before { content: $exclamation-sign; }
-.icon-gift:before { content: $gift; }
-.icon-leaf:before { content: $leaf; }
-.icon-fire:before { content: $fire; }
-.icon-eye-open:before { content: $eye-open; }
-.icon-eye-close:before { content: $eye-close; }
-.icon-warning-sign:before { content: $warning-sign; }
-.icon-plane:before { content: $plane; }
-.icon-calendar:before { content: $calendar; }
-.icon-random:before { content: $random; }
-.icon-comment:before { content: $comment; }
-.icon-magnet:before { content: $magnet; }
-.icon-chevron-up:before { content: $chevron-up; }
-.icon-chevron-down:before { content: $chevron-down; }
-.icon-retweet:before { content: $retweet; }
-.icon-shopping-cart:before { content: $shopping-cart; }
-.icon-folder-close:before { content: $folder-close; }
-.icon-folder-open:before { content: $folder-open; }
-.icon-resize-vertical:before { content: $resize-vertical; }
-.icon-resize-horizontal:before { content: $resize-horizontal; }
-.icon-bar-chart:before { content: $bar-chart; }
-.icon-twitter-sign:before { content: $twitter-sign; }
-.icon-facebook-sign:before { content: $facebook-sign; }
-.icon-camera-retro:before { content: $camera-retro; }
-.icon-key:before { content: $key; }
-.icon-gears:before,
-.icon-cogs:before { content: $cogs; }
-.icon-comments:before { content: $comments; }
-.icon-thumbs-up-alt:before { content: $thumbs-up-alt; }
-.icon-thumbs-down-alt:before { content: $thumbs-down-alt; }
-.icon-star-half:before { content: $star-half; }
-.icon-heart-empty:before { content: $heart-empty; }
-.icon-signout:before { content: $signout; }
-.icon-linkedin-sign:before { content: $linkedin-sign; }
-.icon-pushpin:before { content: $pushpin; }
-.icon-external-link:before { content: $external-link; }
-.icon-signin:before { content: $signin; }
-.icon-trophy:before { content: $trophy; }
-.icon-github-sign:before { content: $github-sign; }
-.icon-upload-alt:before { content: $upload-alt; }
-.icon-lemon:before { content: $lemon; }
-.icon-phone:before { content: $phone; }
-.icon-unchecked:before,
-.icon-check-empty:before { content: $check-empty; }
-.icon-bookmark-empty:before { content: $bookmark-empty; }
-.icon-phone-sign:before { content: $phone-sign; }
-.icon-twitter:before { content: $twitter; }
-.icon-facebook:before { content: $facebook; }
-.icon-github:before { content: $github; }
-.icon-unlock:before { content: $unlock; }
-.icon-credit-card:before { content: $credit-card; }
-.icon-rss:before { content: $rss; }
-.icon-hdd:before { content: $hdd; }
-.icon-bullhorn:before { content: $bullhorn; }
-.icon-bell:before { content: $bell; }
-.icon-certificate:before { content: $certificate; }
-.icon-hand-right:before { content: $hand-right; }
-.icon-hand-left:before { content: $hand-left; }
-.icon-hand-up:before { content: $hand-up; }
-.icon-hand-down:before { content: $hand-down; }
-.icon-circle-arrow-left:before { content: $circle-arrow-left; }
-.icon-circle-arrow-right:before { content: $circle-arrow-right; }
-.icon-circle-arrow-up:before { content: $circle-arrow-up; }
-.icon-circle-arrow-down:before { content: $circle-arrow-down; }
-.icon-globe:before { content: $globe; }
-.icon-wrench:before { content: $wrench; }
-.icon-tasks:before { content: $tasks; }
-.icon-filter:before { content: $filter; }
-.icon-briefcase:before { content: $briefcase; }
-.icon-fullscreen:before { content: $fullscreen; }
-.icon-group:before { content: $group; }
-.icon-link:before { content: $link; }
-.icon-cloud:before { content: $cloud; }
-.icon-beaker:before { content: $beaker; }
-.icon-cut:before { content: $cut; }
-.icon-copy:before { content: $copy; }
-.icon-paperclip:before,
-.icon-paper-clip:before { content: $paper-clip; }
-.icon-save:before { content: $save; }
-.icon-sign-blank:before { content: $sign-blank; }
-.icon-reorder:before { content: $reorder; }
-.icon-list-ul:before { content: $list-ul; }
-.icon-list-ol:before { content: $list-ol; }
-.icon-strikethrough:before { content: $strikethrough; }
-.icon-underline:before { content: $underline; }
-.icon-table:before { content: $table; }
-.icon-magic:before { content: $magic; }
-.icon-truck:before { content: $truck; }
-.icon-pinterest:before { content: $pinterest; }
-.icon-pinterest-sign:before { content: $pinterest-sign; }
-.icon-google-plus-sign:before { content: $google-plus-sign; }
-.icon-google-plus:before { content: $google-plus; }
-.icon-money:before { content: $money; }
-.icon-caret-down:before { content: $caret-down; }
-.icon-caret-up:before { content: $caret-up; }
-.icon-caret-left:before { content: $caret-left; }
-.icon-caret-right:before { content: $caret-right; }
-.icon-columns:before { content: $columns; }
-.icon-sort:before { content: $sort; }
-.icon-sort-down:before { content: $sort-down; }
-.icon-sort-up:before { content: $sort-up; }
-.icon-envelope:before { content: $envelope; }
-.icon-linkedin:before { content: $linkedin; }
-.icon-rotate-left:before,
-.icon-undo:before { content: $undo; }
-.icon-legal:before { content: $legal; }
-.icon-dashboard:before { content: $dashboard; }
-.icon-comment-alt:before { content: $comment-alt; }
-.icon-comments-alt:before { content: $comments-alt; }
-.icon-bolt:before { content: $bolt; }
-.icon-sitemap:before { content: $sitemap; }
-.icon-umbrella:before { content: $umbrella; }
-.icon-paste:before { content: $paste; }
-.icon-lightbulb:before { content: $lightbulb; }
-.icon-exchange:before { content: $exchange; }
-.icon-cloud-download:before { content: $cloud-download; }
-.icon-cloud-upload:before { content: $cloud-upload; }
-.icon-user-md:before { content: $user-md; }
-.icon-stethoscope:before { content: $stethoscope; }
-.icon-suitcase:before { content: $suitcase; }
-.icon-bell-alt:before { content: $bell-alt; }
-.icon-coffee:before { content: $coffee; }
-.icon-food:before { content: $food; }
-.icon-file-text-alt:before { content: $file-text-alt; }
-.icon-building:before { content: $building; }
-.icon-hospital:before { content: $hospital; }
-.icon-ambulance:before { content: $ambulance; }
-.icon-medkit:before { content: $medkit; }
-.icon-fighter-jet:before { content: $fighter-jet; }
-.icon-beer:before { content: $beer; }
-.icon-h-sign:before { content: $h-sign; }
-.icon-plus-sign-alt:before { content: $plus-sign-alt; }
-.icon-double-angle-left:before { content: $double-angle-left; }
-.icon-double-angle-right:before { content: $double-angle-right; }
-.icon-double-angle-up:before { content: $double-angle-up; }
-.icon-double-angle-down:before { content: $double-angle-down; }
-.icon-angle-left:before { content: $angle-left; }
-.icon-angle-right:before { content: $angle-right; }
-.icon-angle-up:before { content: $angle-up; }
-.icon-angle-down:before { content: $angle-down; }
-.icon-desktop:before { content: $desktop; }
-.icon-laptop:before { content: $laptop; }
-.icon-tablet:before { content: $tablet; }
-.icon-mobile-phone:before { content: $mobile-phone; }
-.icon-circle-blank:before { content: $circle-blank; }
-.icon-quote-left:before { content: $quote-left; }
-.icon-quote-right:before { content: $quote-right; }
-.icon-spinner:before { content: $spinner; }
-.icon-circle:before { content: $circle; }
-.icon-mail-reply:before,
-.icon-reply:before { content: $reply; }
-.icon-github-alt:before { content: $github-alt; }
-.icon-folder-close-alt:before { content: $folder-close-alt; }
-.icon-folder-open-alt:before { content: $folder-open-alt; }
-.icon-expand-alt:before { content: $expand-alt; }
-.icon-collapse-alt:before { content: $collapse-alt; }
-.icon-smile:before { content: $smile; }
-.icon-frown:before { content: $frown; }
-.icon-meh:before { content: $meh; }
-.icon-gamepad:before { content: $gamepad; }
-.icon-keyboard:before { content: $keyboard; }
-.icon-flag-alt:before { content: $flag-alt; }
-.icon-flag-checkered:before { content: $flag-checkered; }
-.icon-terminal:before { content: $terminal; }
-.icon-code:before { content: $code; }
-.icon-reply-all:before { content: $reply-all; }
-.icon-mail-reply-all:before { content: $mail-reply-all; }
-.icon-star-half-full:before,
-.icon-star-half-empty:before { content: $star-half-empty; }
-.icon-location-arrow:before { content: $location-arrow; }
-.icon-crop:before { content: $crop; }
-.icon-code-fork:before { content: $code-fork; }
-.icon-unlink:before { content: $unlink; }
-.icon-question:before { content: $question; }
-.icon-info:before { content: $info; }
-.icon-exclamation:before { content: $exclamation; }
-.icon-superscript:before { content: $superscript; }
-.icon-subscript:before { content: $subscript; }
-.icon-eraser:before { content: $eraser; }
-.icon-puzzle-piece:before { content: $puzzle-piece; }
-.icon-microphone:before { content: $microphone; }
-.icon-microphone-off:before { content: $microphone-off; }
-.icon-shield:before { content: $shield; }
-.icon-calendar-empty:before { content: $calendar-empty; }
-.icon-fire-extinguisher:before { content: $fire-extinguisher; }
-.icon-rocket:before { content: $rocket; }
-.icon-maxcdn:before { content: $maxcdn; }
-.icon-chevron-sign-left:before { content: $chevron-sign-left; }
-.icon-chevron-sign-right:before { content: $chevron-sign-right; }
-.icon-chevron-sign-up:before { content: $chevron-sign-up; }
-.icon-chevron-sign-down:before { content: $chevron-sign-down; }
-.icon-html5:before { content: $html5; }
-.icon-css3:before { content: $css3; }
-.icon-anchor:before { content: $anchor; }
-.icon-unlock-alt:before { content: $unlock-alt; }
-.icon-bullseye:before { content: $bullseye; }
-.icon-ellipsis-horizontal:before { content: $ellipsis-horizontal; }
-.icon-ellipsis-vertical:before { content: $ellipsis-vertical; }
-.icon-rss-sign:before { content: $rss-sign; }
-.icon-play-sign:before { content: $play-sign; }
-.icon-ticket:before { content: $ticket; }
-.icon-minus-sign-alt:before { content: $minus-sign-alt; }
-.icon-check-minus:before { content: $check-minus; }
-.icon-level-up:before { content: $level-up; }
-.icon-level-down:before { content: $level-down; }
-.icon-check-sign:before { content: $check-sign; }
-.icon-edit-sign:before { content: $edit-sign; }
-.icon-external-link-sign:before { content: $external-link-sign; }
-.icon-share-sign:before { content: $share-sign; }
-.icon-compass:before { content: $compass; }
-.icon-collapse:before { content: $collapse; }
-.icon-collapse-top:before { content: $collapse-top; }
-.icon-expand:before { content: $expand; }
-.icon-euro:before,
-.icon-eur:before { content: $eur; }
-.icon-gbp:before { content: $gbp; }
-.icon-dollar:before,
-.icon-usd:before { content: $usd; }
-.icon-rupee:before,
-.icon-inr:before { content: $inr; }
-.icon-yen:before,
-.icon-jpy:before { content: $jpy; }
-.icon-renminbi:before,
-.icon-cny:before { content: $cny; }
-.icon-won:before,
-.icon-krw:before { content: $krw; }
-.icon-bitcoin:before,
-.icon-btc:before { content: $btc; }
-.icon-file:before { content: $file; }
-.icon-file-text:before { content: $file-text; }
-.icon-sort-by-alphabet:before { content: $sort-by-alphabet; }
-.icon-sort-by-alphabet-alt:before { content: $sort-by-alphabet-alt; }
-.icon-sort-by-attributes:before { content: $sort-by-attributes; }
-.icon-sort-by-attributes-alt:before { content: $sort-by-attributes-alt; }
-.icon-sort-by-order:before { content: $sort-by-order; }
-.icon-sort-by-order-alt:before { content: $sort-by-order-alt; }
-.icon-thumbs-up:before { content: $thumbs-up; }
-.icon-thumbs-down:before { content: $thumbs-down; }
-.icon-youtube-sign:before { content: $youtube-sign; }
-.icon-youtube:before { content: $youtube; }
-.icon-xing:before { content: $xing; }
-.icon-xing-sign:before { content: $xing-sign; }
-.icon-youtube-play:before { content: $youtube-play; }
-.icon-dropbox:before { content: $dropbox; }
-.icon-stackexchange:before { content: $stackexchange; }
-.icon-instagram:before { content: $instagram; }
-.icon-flickr:before { content: $flickr; }
-.icon-adn:before { content: $adn; }
-.icon-bitbucket:before { content: $bitbucket; }
-.icon-bitbucket-sign:before { content: $bitbucket-sign; }
-.icon-tumblr:before { content: $tumblr; }
-.icon-tumblr-sign:before { content: $tumblr-sign; }
-.icon-long-arrow-down:before { content: $long-arrow-down; }
-.icon-long-arrow-up:before { content: $long-arrow-up; }
-.icon-long-arrow-left:before { content: $long-arrow-left; }
-.icon-long-arrow-right:before { content: $long-arrow-right; }
-.icon-apple:before { content: $apple; }
-.icon-windows:before { content: $windows; }
-.icon-android:before { content: $android; }
-.icon-linux:before { content: $linux; }
-.icon-dribbble:before { content: $dribbble; }
-.icon-skype:before { content: $skype; }
-.icon-foursquare:before { content: $foursquare; }
-.icon-trello:before { content: $trello; }
-.icon-female:before { content: $female; }
-.icon-male:before { content: $male; }
-.icon-gittip:before { content: $gittip; }
-.icon-sun:before { content: $sun; }
-.icon-moon:before { content: $moon; }
-.icon-archive:before { content: $archive; }
-.icon-bug:before { content: $bug; }
-.icon-vk:before { content: $vk; }
-.icon-weibo:before { content: $weibo; }
-.icon-renren:before { content: $renren; }
+.#{$fa-css-prefix}-glass:before { content: $fa-var-glass; }
+.#{$fa-css-prefix}-music:before { content: $fa-var-music; }
+.#{$fa-css-prefix}-search:before { content: $fa-var-search; }
+.#{$fa-css-prefix}-envelope-o:before { content: $fa-var-envelope-o; }
+.#{$fa-css-prefix}-heart:before { content: $fa-var-heart; }
+.#{$fa-css-prefix}-star:before { content: $fa-var-star; }
+.#{$fa-css-prefix}-star-o:before { content: $fa-var-star-o; }
+.#{$fa-css-prefix}-user:before { content: $fa-var-user; }
+.#{$fa-css-prefix}-film:before { content: $fa-var-film; }
+.#{$fa-css-prefix}-th-large:before { content: $fa-var-th-large; }
+.#{$fa-css-prefix}-th:before { content: $fa-var-th; }
+.#{$fa-css-prefix}-th-list:before { content: $fa-var-th-list; }
+.#{$fa-css-prefix}-check:before { content: $fa-var-check; }
+.#{$fa-css-prefix}-times:before { content: $fa-var-times; }
+.#{$fa-css-prefix}-search-plus:before { content: $fa-var-search-plus; }
+.#{$fa-css-prefix}-search-minus:before { content: $fa-var-search-minus; }
+.#{$fa-css-prefix}-power-off:before { content: $fa-var-power-off; }
+.#{$fa-css-prefix}-signal:before { content: $fa-var-signal; }
+.#{$fa-css-prefix}-gear:before,
+.#{$fa-css-prefix}-cog:before { content: $fa-var-cog; }
+.#{$fa-css-prefix}-trash-o:before { content: $fa-var-trash-o; }
+.#{$fa-css-prefix}-home:before { content: $fa-var-home; }
+.#{$fa-css-prefix}-file-o:before { content: $fa-var-file-o; }
+.#{$fa-css-prefix}-clock-o:before { content: $fa-var-clock-o; }
+.#{$fa-css-prefix}-road:before { content: $fa-var-road; }
+.#{$fa-css-prefix}-download:before { content: $fa-var-download; }
+.#{$fa-css-prefix}-arrow-circle-o-down:before { content: $fa-var-arrow-circle-o-down; }
+.#{$fa-css-prefix}-arrow-circle-o-up:before { content: $fa-var-arrow-circle-o-up; }
+.#{$fa-css-prefix}-inbox:before { content: $fa-var-inbox; }
+.#{$fa-css-prefix}-play-circle-o:before { content: $fa-var-play-circle-o; }
+.#{$fa-css-prefix}-rotate-right:before,
+.#{$fa-css-prefix}-repeat:before { content: $fa-var-repeat; }
+.#{$fa-css-prefix}-refresh:before { content: $fa-var-refresh; }
+.#{$fa-css-prefix}-list-alt:before { content: $fa-var-list-alt; }
+.#{$fa-css-prefix}-lock:before { content: $fa-var-lock; }
+.#{$fa-css-prefix}-flag:before { content: $fa-var-flag; }
+.#{$fa-css-prefix}-headphones:before { content: $fa-var-headphones; }
+.#{$fa-css-prefix}-volume-off:before { content: $fa-var-volume-off; }
+.#{$fa-css-prefix}-volume-down:before { content: $fa-var-volume-down; }
+.#{$fa-css-prefix}-volume-up:before { content: $fa-var-volume-up; }
+.#{$fa-css-prefix}-qrcode:before { content: $fa-var-qrcode; }
+.#{$fa-css-prefix}-barcode:before { content: $fa-var-barcode; }
+.#{$fa-css-prefix}-tag:before { content: $fa-var-tag; }
+.#{$fa-css-prefix}-tags:before { content: $fa-var-tags; }
+.#{$fa-css-prefix}-book:before { content: $fa-var-book; }
+.#{$fa-css-prefix}-bookmark:before { content: $fa-var-bookmark; }
+.#{$fa-css-prefix}-print:before { content: $fa-var-print; }
+.#{$fa-css-prefix}-camera:before { content: $fa-var-camera; }
+.#{$fa-css-prefix}-font:before { content: $fa-var-font; }
+.#{$fa-css-prefix}-bold:before { content: $fa-var-bold; }
+.#{$fa-css-prefix}-italic:before { content: $fa-var-italic; }
+.#{$fa-css-prefix}-text-height:before { content: $fa-var-text-height; }
+.#{$fa-css-prefix}-text-width:before { content: $fa-var-text-width; }
+.#{$fa-css-prefix}-align-left:before { content: $fa-var-align-left; }
+.#{$fa-css-prefix}-align-center:before { content: $fa-var-align-center; }
+.#{$fa-css-prefix}-align-right:before { content: $fa-var-align-right; }
+.#{$fa-css-prefix}-align-justify:before { content: $fa-var-align-justify; }
+.#{$fa-css-prefix}-list:before { content: $fa-var-list; }
+.#{$fa-css-prefix}-dedent:before,
+.#{$fa-css-prefix}-outdent:before { content: $fa-var-outdent; }
+.#{$fa-css-prefix}-indent:before { content: $fa-var-indent; }
+.#{$fa-css-prefix}-video-camera:before { content: $fa-var-video-camera; }
+.#{$fa-css-prefix}-photo:before,
+.#{$fa-css-prefix}-image:before,
+.#{$fa-css-prefix}-picture-o:before { content: $fa-var-picture-o; }
+.#{$fa-css-prefix}-pencil:before { content: $fa-var-pencil; }
+.#{$fa-css-prefix}-map-marker:before { content: $fa-var-map-marker; }
+.#{$fa-css-prefix}-adjust:before { content: $fa-var-adjust; }
+.#{$fa-css-prefix}-tint:before { content: $fa-var-tint; }
+.#{$fa-css-prefix}-edit:before,
+.#{$fa-css-prefix}-pencil-square-o:before { content: $fa-var-pencil-square-o; }
+.#{$fa-css-prefix}-share-square-o:before { content: $fa-var-share-square-o; }
+.#{$fa-css-prefix}-check-square-o:before { content: $fa-var-check-square-o; }
+.#{$fa-css-prefix}-arrows:before { content: $fa-var-arrows; }
+.#{$fa-css-prefix}-step-backward:before { content: $fa-var-step-backward; }
+.#{$fa-css-prefix}-fast-backward:before { content: $fa-var-fast-backward; }
+.#{$fa-css-prefix}-backward:before { content: $fa-var-backward; }
+.#{$fa-css-prefix}-play:before { content: $fa-var-play; }
+.#{$fa-css-prefix}-pause:before { content: $fa-var-pause; }
+.#{$fa-css-prefix}-stop:before { content: $fa-var-stop; }
+.#{$fa-css-prefix}-forward:before { content: $fa-var-forward; }
+.#{$fa-css-prefix}-fast-forward:before { content: $fa-var-fast-forward; }
+.#{$fa-css-prefix}-step-forward:before { content: $fa-var-step-forward; }
+.#{$fa-css-prefix}-eject:before { content: $fa-var-eject; }
+.#{$fa-css-prefix}-chevron-left:before { content: $fa-var-chevron-left; }
+.#{$fa-css-prefix}-chevron-right:before { content: $fa-var-chevron-right; }
+.#{$fa-css-prefix}-plus-circle:before { content: $fa-var-plus-circle; }
+.#{$fa-css-prefix}-minus-circle:before { content: $fa-var-minus-circle; }
+.#{$fa-css-prefix}-times-circle:before { content: $fa-var-times-circle; }
+.#{$fa-css-prefix}-check-circle:before { content: $fa-var-check-circle; }
+.#{$fa-css-prefix}-question-circle:before { content: $fa-var-question-circle; }
+.#{$fa-css-prefix}-info-circle:before { content: $fa-var-info-circle; }
+.#{$fa-css-prefix}-crosshairs:before { content: $fa-var-crosshairs; }
+.#{$fa-css-prefix}-times-circle-o:before { content: $fa-var-times-circle-o; }
+.#{$fa-css-prefix}-check-circle-o:before { content: $fa-var-check-circle-o; }
+.#{$fa-css-prefix}-ban:before { content: $fa-var-ban; }
+.#{$fa-css-prefix}-arrow-left:before { content: $fa-var-arrow-left; }
+.#{$fa-css-prefix}-arrow-right:before { content: $fa-var-arrow-right; }
+.#{$fa-css-prefix}-arrow-up:before { content: $fa-var-arrow-up; }
+.#{$fa-css-prefix}-arrow-down:before { content: $fa-var-arrow-down; }
+.#{$fa-css-prefix}-mail-forward:before,
+.#{$fa-css-prefix}-share:before { content: $fa-var-share; }
+.#{$fa-css-prefix}-expand:before { content: $fa-var-expand; }
+.#{$fa-css-prefix}-compress:before { content: $fa-var-compress; }
+.#{$fa-css-prefix}-plus:before { content: $fa-var-plus; }
+.#{$fa-css-prefix}-minus:before { content: $fa-var-minus; }
+.#{$fa-css-prefix}-asterisk:before { content: $fa-var-asterisk; }
+.#{$fa-css-prefix}-exclamation-circle:before { content: $fa-var-exclamation-circle; }
+.#{$fa-css-prefix}-gift:before { content: $fa-var-gift; }
+.#{$fa-css-prefix}-leaf:before { content: $fa-var-leaf; }
+.#{$fa-css-prefix}-fire:before { content: $fa-var-fire; }
+.#{$fa-css-prefix}-eye:before { content: $fa-var-eye; }
+.#{$fa-css-prefix}-eye-slash:before { content: $fa-var-eye-slash; }
+.#{$fa-css-prefix}-warning:before,
+.#{$fa-css-prefix}-exclamation-triangle:before { content: $fa-var-exclamation-triangle; }
+.#{$fa-css-prefix}-plane:before { content: $fa-var-plane; }
+.#{$fa-css-prefix}-calendar:before { content: $fa-var-calendar; }
+.#{$fa-css-prefix}-random:before { content: $fa-var-random; }
+.#{$fa-css-prefix}-comment:before { content: $fa-var-comment; }
+.#{$fa-css-prefix}-magnet:before { content: $fa-var-magnet; }
+.#{$fa-css-prefix}-chevron-up:before { content: $fa-var-chevron-up; }
+.#{$fa-css-prefix}-chevron-down:before { content: $fa-var-chevron-down; }
+.#{$fa-css-prefix}-retweet:before { content: $fa-var-retweet; }
+.#{$fa-css-prefix}-shopping-cart:before { content: $fa-var-shopping-cart; }
+.#{$fa-css-prefix}-folder:before { content: $fa-var-folder; }
+.#{$fa-css-prefix}-folder-open:before { content: $fa-var-folder-open; }
+.#{$fa-css-prefix}-arrows-v:before { content: $fa-var-arrows-v; }
+.#{$fa-css-prefix}-arrows-h:before { content: $fa-var-arrows-h; }
+.#{$fa-css-prefix}-bar-chart-o:before { content: $fa-var-bar-chart-o; }
+.#{$fa-css-prefix}-twitter-square:before { content: $fa-var-twitter-square; }
+.#{$fa-css-prefix}-facebook-square:before { content: $fa-var-facebook-square; }
+.#{$fa-css-prefix}-camera-retro:before { content: $fa-var-camera-retro; }
+.#{$fa-css-prefix}-key:before { content: $fa-var-key; }
+.#{$fa-css-prefix}-gears:before,
+.#{$fa-css-prefix}-cogs:before { content: $fa-var-cogs; }
+.#{$fa-css-prefix}-comments:before { content: $fa-var-comments; }
+.#{$fa-css-prefix}-thumbs-o-up:before { content: $fa-var-thumbs-o-up; }
+.#{$fa-css-prefix}-thumbs-o-down:before { content: $fa-var-thumbs-o-down; }
+.#{$fa-css-prefix}-star-half:before { content: $fa-var-star-half; }
+.#{$fa-css-prefix}-heart-o:before { content: $fa-var-heart-o; }
+.#{$fa-css-prefix}-sign-out:before { content: $fa-var-sign-out; }
+.#{$fa-css-prefix}-linkedin-square:before { content: $fa-var-linkedin-square; }
+.#{$fa-css-prefix}-thumb-tack:before { content: $fa-var-thumb-tack; }
+.#{$fa-css-prefix}-external-link:before { content: $fa-var-external-link; }
+.#{$fa-css-prefix}-sign-in:before { content: $fa-var-sign-in; }
+.#{$fa-css-prefix}-trophy:before { content: $fa-var-trophy; }
+.#{$fa-css-prefix}-github-square:before { content: $fa-var-github-square; }
+.#{$fa-css-prefix}-upload:before { content: $fa-var-upload; }
+.#{$fa-css-prefix}-lemon-o:before { content: $fa-var-lemon-o; }
+.#{$fa-css-prefix}-phone:before { content: $fa-var-phone; }
+.#{$fa-css-prefix}-square-o:before { content: $fa-var-square-o; }
+.#{$fa-css-prefix}-bookmark-o:before { content: $fa-var-bookmark-o; }
+.#{$fa-css-prefix}-phone-square:before { content: $fa-var-phone-square; }
+.#{$fa-css-prefix}-twitter:before { content: $fa-var-twitter; }
+.#{$fa-css-prefix}-facebook:before { content: $fa-var-facebook; }
+.#{$fa-css-prefix}-github:before { content: $fa-var-github; }
+.#{$fa-css-prefix}-unlock:before { content: $fa-var-unlock; }
+.#{$fa-css-prefix}-credit-card:before { content: $fa-var-credit-card; }
+.#{$fa-css-prefix}-rss:before { content: $fa-var-rss; }
+.#{$fa-css-prefix}-hdd-o:before { content: $fa-var-hdd-o; }
+.#{$fa-css-prefix}-bullhorn:before { content: $fa-var-bullhorn; }
+.#{$fa-css-prefix}-bell:before { content: $fa-var-bell; }
+.#{$fa-css-prefix}-certificate:before { content: $fa-var-certificate; }
+.#{$fa-css-prefix}-hand-o-right:before { content: $fa-var-hand-o-right; }
+.#{$fa-css-prefix}-hand-o-left:before { content: $fa-var-hand-o-left; }
+.#{$fa-css-prefix}-hand-o-up:before { content: $fa-var-hand-o-up; }
+.#{$fa-css-prefix}-hand-o-down:before { content: $fa-var-hand-o-down; }
+.#{$fa-css-prefix}-arrow-circle-left:before { content: $fa-var-arrow-circle-left; }
+.#{$fa-css-prefix}-arrow-circle-right:before { content: $fa-var-arrow-circle-right; }
+.#{$fa-css-prefix}-arrow-circle-up:before { content: $fa-var-arrow-circle-up; }
+.#{$fa-css-prefix}-arrow-circle-down:before { content: $fa-var-arrow-circle-down; }
+.#{$fa-css-prefix}-globe:before { content: $fa-var-globe; }
+.#{$fa-css-prefix}-wrench:before { content: $fa-var-wrench; }
+.#{$fa-css-prefix}-tasks:before { content: $fa-var-tasks; }
+.#{$fa-css-prefix}-filter:before { content: $fa-var-filter; }
+.#{$fa-css-prefix}-briefcase:before { content: $fa-var-briefcase; }
+.#{$fa-css-prefix}-arrows-alt:before { content: $fa-var-arrows-alt; }
+.#{$fa-css-prefix}-group:before,
+.#{$fa-css-prefix}-users:before { content: $fa-var-users; }
+.#{$fa-css-prefix}-chain:before,
+.#{$fa-css-prefix}-link:before { content: $fa-var-link; }
+.#{$fa-css-prefix}-cloud:before { content: $fa-var-cloud; }
+.#{$fa-css-prefix}-flask:before { content: $fa-var-flask; }
+.#{$fa-css-prefix}-cut:before,
+.#{$fa-css-prefix}-scissors:before { content: $fa-var-scissors; }
+.#{$fa-css-prefix}-copy:before,
+.#{$fa-css-prefix}-files-o:before { content: $fa-var-files-o; }
+.#{$fa-css-prefix}-paperclip:before { content: $fa-var-paperclip; }
+.#{$fa-css-prefix}-save:before,
+.#{$fa-css-prefix}-floppy-o:before { content: $fa-var-floppy-o; }
+.#{$fa-css-prefix}-square:before { content: $fa-var-square; }
+.#{$fa-css-prefix}-navicon:before,
+.#{$fa-css-prefix}-reorder:before,
+.#{$fa-css-prefix}-bars:before { content: $fa-var-bars; }
+.#{$fa-css-prefix}-list-ul:before { content: $fa-var-list-ul; }
+.#{$fa-css-prefix}-list-ol:before { content: $fa-var-list-ol; }
+.#{$fa-css-prefix}-strikethrough:before { content: $fa-var-strikethrough; }
+.#{$fa-css-prefix}-underline:before { content: $fa-var-underline; }
+.#{$fa-css-prefix}-table:before { content: $fa-var-table; }
+.#{$fa-css-prefix}-magic:before { content: $fa-var-magic; }
+.#{$fa-css-prefix}-truck:before { content: $fa-var-truck; }
+.#{$fa-css-prefix}-pinterest:before { content: $fa-var-pinterest; }
+.#{$fa-css-prefix}-pinterest-square:before { content: $fa-var-pinterest-square; }
+.#{$fa-css-prefix}-google-plus-square:before { content: $fa-var-google-plus-square; }
+.#{$fa-css-prefix}-google-plus:before { content: $fa-var-google-plus; }
+.#{$fa-css-prefix}-money:before { content: $fa-var-money; }
+.#{$fa-css-prefix}-caret-down:before { content: $fa-var-caret-down; }
+.#{$fa-css-prefix}-caret-up:before { content: $fa-var-caret-up; }
+.#{$fa-css-prefix}-caret-left:before { content: $fa-var-caret-left; }
+.#{$fa-css-prefix}-caret-right:before { content: $fa-var-caret-right; }
+.#{$fa-css-prefix}-columns:before { content: $fa-var-columns; }
+.#{$fa-css-prefix}-unsorted:before,
+.#{$fa-css-prefix}-sort:before { content: $fa-var-sort; }
+.#{$fa-css-prefix}-sort-down:before,
+.#{$fa-css-prefix}-sort-desc:before { content: $fa-var-sort-desc; }
+.#{$fa-css-prefix}-sort-up:before,
+.#{$fa-css-prefix}-sort-asc:before { content: $fa-var-sort-asc; }
+.#{$fa-css-prefix}-envelope:before { content: $fa-var-envelope; }
+.#{$fa-css-prefix}-linkedin:before { content: $fa-var-linkedin; }
+.#{$fa-css-prefix}-rotate-left:before,
+.#{$fa-css-prefix}-undo:before { content: $fa-var-undo; }
+.#{$fa-css-prefix}-legal:before,
+.#{$fa-css-prefix}-gavel:before { content: $fa-var-gavel; }
+.#{$fa-css-prefix}-dashboard:before,
+.#{$fa-css-prefix}-tachometer:before { content: $fa-var-tachometer; }
+.#{$fa-css-prefix}-comment-o:before { content: $fa-var-comment-o; }
+.#{$fa-css-prefix}-comments-o:before { content: $fa-var-comments-o; }
+.#{$fa-css-prefix}-flash:before,
+.#{$fa-css-prefix}-bolt:before { content: $fa-var-bolt; }
+.#{$fa-css-prefix}-sitemap:before { content: $fa-var-sitemap; }
+.#{$fa-css-prefix}-umbrella:before { content: $fa-var-umbrella; }
+.#{$fa-css-prefix}-paste:before,
+.#{$fa-css-prefix}-clipboard:before { content: $fa-var-clipboard; }
+.#{$fa-css-prefix}-lightbulb-o:before { content: $fa-var-lightbulb-o; }
+.#{$fa-css-prefix}-exchange:before { content: $fa-var-exchange; }
+.#{$fa-css-prefix}-cloud-download:before { content: $fa-var-cloud-download; }
+.#{$fa-css-prefix}-cloud-upload:before { content: $fa-var-cloud-upload; }
+.#{$fa-css-prefix}-user-md:before { content: $fa-var-user-md; }
+.#{$fa-css-prefix}-stethoscope:before { content: $fa-var-stethoscope; }
+.#{$fa-css-prefix}-suitcase:before { content: $fa-var-suitcase; }
+.#{$fa-css-prefix}-bell-o:before { content: $fa-var-bell-o; }
+.#{$fa-css-prefix}-coffee:before { content: $fa-var-coffee; }
+.#{$fa-css-prefix}-cutlery:before { content: $fa-var-cutlery; }
+.#{$fa-css-prefix}-file-text-o:before { content: $fa-var-file-text-o; }
+.#{$fa-css-prefix}-building-o:before { content: $fa-var-building-o; }
+.#{$fa-css-prefix}-hospital-o:before { content: $fa-var-hospital-o; }
+.#{$fa-css-prefix}-ambulance:before { content: $fa-var-ambulance; }
+.#{$fa-css-prefix}-medkit:before { content: $fa-var-medkit; }
+.#{$fa-css-prefix}-fighter-jet:before { content: $fa-var-fighter-jet; }
+.#{$fa-css-prefix}-beer:before { content: $fa-var-beer; }
+.#{$fa-css-prefix}-h-square:before { content: $fa-var-h-square; }
+.#{$fa-css-prefix}-plus-square:before { content: $fa-var-plus-square; }
+.#{$fa-css-prefix}-angle-double-left:before { content: $fa-var-angle-double-left; }
+.#{$fa-css-prefix}-angle-double-right:before { content: $fa-var-angle-double-right; }
+.#{$fa-css-prefix}-angle-double-up:before { content: $fa-var-angle-double-up; }
+.#{$fa-css-prefix}-angle-double-down:before { content: $fa-var-angle-double-down; }
+.#{$fa-css-prefix}-angle-left:before { content: $fa-var-angle-left; }
+.#{$fa-css-prefix}-angle-right:before { content: $fa-var-angle-right; }
+.#{$fa-css-prefix}-angle-up:before { content: $fa-var-angle-up; }
+.#{$fa-css-prefix}-angle-down:before { content: $fa-var-angle-down; }
+.#{$fa-css-prefix}-desktop:before { content: $fa-var-desktop; }
+.#{$fa-css-prefix}-laptop:before { content: $fa-var-laptop; }
+.#{$fa-css-prefix}-tablet:before { content: $fa-var-tablet; }
+.#{$fa-css-prefix}-mobile-phone:before,
+.#{$fa-css-prefix}-mobile:before { content: $fa-var-mobile; }
+.#{$fa-css-prefix}-circle-o:before { content: $fa-var-circle-o; }
+.#{$fa-css-prefix}-quote-left:before { content: $fa-var-quote-left; }
+.#{$fa-css-prefix}-quote-right:before { content: $fa-var-quote-right; }
+.#{$fa-css-prefix}-spinner:before { content: $fa-var-spinner; }
+.#{$fa-css-prefix}-circle:before { content: $fa-var-circle; }
+.#{$fa-css-prefix}-mail-reply:before,
+.#{$fa-css-prefix}-reply:before { content: $fa-var-reply; }
+.#{$fa-css-prefix}-github-alt:before { content: $fa-var-github-alt; }
+.#{$fa-css-prefix}-folder-o:before { content: $fa-var-folder-o; }
+.#{$fa-css-prefix}-folder-open-o:before { content: $fa-var-folder-open-o; }
+.#{$fa-css-prefix}-smile-o:before { content: $fa-var-smile-o; }
+.#{$fa-css-prefix}-frown-o:before { content: $fa-var-frown-o; }
+.#{$fa-css-prefix}-meh-o:before { content: $fa-var-meh-o; }
+.#{$fa-css-prefix}-gamepad:before { content: $fa-var-gamepad; }
+.#{$fa-css-prefix}-keyboard-o:before { content: $fa-var-keyboard-o; }
+.#{$fa-css-prefix}-flag-o:before { content: $fa-var-flag-o; }
+.#{$fa-css-prefix}-flag-checkered:before { content: $fa-var-flag-checkered; }
+.#{$fa-css-prefix}-terminal:before { content: $fa-var-terminal; }
+.#{$fa-css-prefix}-code:before { content: $fa-var-code; }
+.#{$fa-css-prefix}-mail-reply-all:before,
+.#{$fa-css-prefix}-reply-all:before { content: $fa-var-reply-all; }
+.#{$fa-css-prefix}-star-half-empty:before,
+.#{$fa-css-prefix}-star-half-full:before,
+.#{$fa-css-prefix}-star-half-o:before { content: $fa-var-star-half-o; }
+.#{$fa-css-prefix}-location-arrow:before { content: $fa-var-location-arrow; }
+.#{$fa-css-prefix}-crop:before { content: $fa-var-crop; }
+.#{$fa-css-prefix}-code-fork:before { content: $fa-var-code-fork; }
+.#{$fa-css-prefix}-unlink:before,
+.#{$fa-css-prefix}-chain-broken:before { content: $fa-var-chain-broken; }
+.#{$fa-css-prefix}-question:before { content: $fa-var-question; }
+.#{$fa-css-prefix}-info:before { content: $fa-var-info; }
+.#{$fa-css-prefix}-exclamation:before { content: $fa-var-exclamation; }
+.#{$fa-css-prefix}-superscript:before { content: $fa-var-superscript; }
+.#{$fa-css-prefix}-subscript:before { content: $fa-var-subscript; }
+.#{$fa-css-prefix}-eraser:before { content: $fa-var-eraser; }
+.#{$fa-css-prefix}-puzzle-piece:before { content: $fa-var-puzzle-piece; }
+.#{$fa-css-prefix}-microphone:before { content: $fa-var-microphone; }
+.#{$fa-css-prefix}-microphone-slash:before { content: $fa-var-microphone-slash; }
+.#{$fa-css-prefix}-shield:before { content: $fa-var-shield; }
+.#{$fa-css-prefix}-calendar-o:before { content: $fa-var-calendar-o; }
+.#{$fa-css-prefix}-fire-extinguisher:before { content: $fa-var-fire-extinguisher; }
+.#{$fa-css-prefix}-rocket:before { content: $fa-var-rocket; }
+.#{$fa-css-prefix}-maxcdn:before { content: $fa-var-maxcdn; }
+.#{$fa-css-prefix}-chevron-circle-left:before { content: $fa-var-chevron-circle-left; }
+.#{$fa-css-prefix}-chevron-circle-right:before { content: $fa-var-chevron-circle-right; }
+.#{$fa-css-prefix}-chevron-circle-up:before { content: $fa-var-chevron-circle-up; }
+.#{$fa-css-prefix}-chevron-circle-down:before { content: $fa-var-chevron-circle-down; }
+.#{$fa-css-prefix}-html5:before { content: $fa-var-html5; }
+.#{$fa-css-prefix}-css3:before { content: $fa-var-css3; }
+.#{$fa-css-prefix}-anchor:before { content: $fa-var-anchor; }
+.#{$fa-css-prefix}-unlock-alt:before { content: $fa-var-unlock-alt; }
+.#{$fa-css-prefix}-bullseye:before { content: $fa-var-bullseye; }
+.#{$fa-css-prefix}-ellipsis-h:before { content: $fa-var-ellipsis-h; }
+.#{$fa-css-prefix}-ellipsis-v:before { content: $fa-var-ellipsis-v; }
+.#{$fa-css-prefix}-rss-square:before { content: $fa-var-rss-square; }
+.#{$fa-css-prefix}-play-circle:before { content: $fa-var-play-circle; }
+.#{$fa-css-prefix}-ticket:before { content: $fa-var-ticket; }
+.#{$fa-css-prefix}-minus-square:before { content: $fa-var-minus-square; }
+.#{$fa-css-prefix}-minus-square-o:before { content: $fa-var-minus-square-o; }
+.#{$fa-css-prefix}-level-up:before { content: $fa-var-level-up; }
+.#{$fa-css-prefix}-level-down:before { content: $fa-var-level-down; }
+.#{$fa-css-prefix}-check-square:before { content: $fa-var-check-square; }
+.#{$fa-css-prefix}-pencil-square:before { content: $fa-var-pencil-square; }
+.#{$fa-css-prefix}-external-link-square:before { content: $fa-var-external-link-square; }
+.#{$fa-css-prefix}-share-square:before { content: $fa-var-share-square; }
+.#{$fa-css-prefix}-compass:before { content: $fa-var-compass; }
+.#{$fa-css-prefix}-toggle-down:before,
+.#{$fa-css-prefix}-caret-square-o-down:before { content: $fa-var-caret-square-o-down; }
+.#{$fa-css-prefix}-toggle-up:before,
+.#{$fa-css-prefix}-caret-square-o-up:before { content: $fa-var-caret-square-o-up; }
+.#{$fa-css-prefix}-toggle-right:before,
+.#{$fa-css-prefix}-caret-square-o-right:before { content: $fa-var-caret-square-o-right; }
+.#{$fa-css-prefix}-euro:before,
+.#{$fa-css-prefix}-eur:before { content: $fa-var-eur; }
+.#{$fa-css-prefix}-gbp:before { content: $fa-var-gbp; }
+.#{$fa-css-prefix}-dollar:before,
+.#{$fa-css-prefix}-usd:before { content: $fa-var-usd; }
+.#{$fa-css-prefix}-rupee:before,
+.#{$fa-css-prefix}-inr:before { content: $fa-var-inr; }
+.#{$fa-css-prefix}-cny:before,
+.#{$fa-css-prefix}-rmb:before,
+.#{$fa-css-prefix}-yen:before,
+.#{$fa-css-prefix}-jpy:before { content: $fa-var-jpy; }
+.#{$fa-css-prefix}-ruble:before,
+.#{$fa-css-prefix}-rouble:before,
+.#{$fa-css-prefix}-rub:before { content: $fa-var-rub; }
+.#{$fa-css-prefix}-won:before,
+.#{$fa-css-prefix}-krw:before { content: $fa-var-krw; }
+.#{$fa-css-prefix}-bitcoin:before,
+.#{$fa-css-prefix}-btc:before { content: $fa-var-btc; }
+.#{$fa-css-prefix}-file:before { content: $fa-var-file; }
+.#{$fa-css-prefix}-file-text:before { content: $fa-var-file-text; }
+.#{$fa-css-prefix}-sort-alpha-asc:before { content: $fa-var-sort-alpha-asc; }
+.#{$fa-css-prefix}-sort-alpha-desc:before { content: $fa-var-sort-alpha-desc; }
+.#{$fa-css-prefix}-sort-amount-asc:before { content: $fa-var-sort-amount-asc; }
+.#{$fa-css-prefix}-sort-amount-desc:before { content: $fa-var-sort-amount-desc; }
+.#{$fa-css-prefix}-sort-numeric-asc:before { content: $fa-var-sort-numeric-asc; }
+.#{$fa-css-prefix}-sort-numeric-desc:before { content: $fa-var-sort-numeric-desc; }
+.#{$fa-css-prefix}-thumbs-up:before { content: $fa-var-thumbs-up; }
+.#{$fa-css-prefix}-thumbs-down:before { content: $fa-var-thumbs-down; }
+.#{$fa-css-prefix}-youtube-square:before { content: $fa-var-youtube-square; }
+.#{$fa-css-prefix}-youtube:before { content: $fa-var-youtube; }
+.#{$fa-css-prefix}-xing:before { content: $fa-var-xing; }
+.#{$fa-css-prefix}-xing-square:before { content: $fa-var-xing-square; }
+.#{$fa-css-prefix}-youtube-play:before { content: $fa-var-youtube-play; }
+.#{$fa-css-prefix}-dropbox:before { content: $fa-var-dropbox; }
+.#{$fa-css-prefix}-stack-overflow:before { content: $fa-var-stack-overflow; }
+.#{$fa-css-prefix}-instagram:before { content: $fa-var-instagram; }
+.#{$fa-css-prefix}-flickr:before { content: $fa-var-flickr; }
+.#{$fa-css-prefix}-adn:before { content: $fa-var-adn; }
+.#{$fa-css-prefix}-bitbucket:before { content: $fa-var-bitbucket; }
+.#{$fa-css-prefix}-bitbucket-square:before { content: $fa-var-bitbucket-square; }
+.#{$fa-css-prefix}-tumblr:before { content: $fa-var-tumblr; }
+.#{$fa-css-prefix}-tumblr-square:before { content: $fa-var-tumblr-square; }
+.#{$fa-css-prefix}-long-arrow-down:before { content: $fa-var-long-arrow-down; }
+.#{$fa-css-prefix}-long-arrow-up:before { content: $fa-var-long-arrow-up; }
+.#{$fa-css-prefix}-long-arrow-left:before { content: $fa-var-long-arrow-left; }
+.#{$fa-css-prefix}-long-arrow-right:before { content: $fa-var-long-arrow-right; }
+.#{$fa-css-prefix}-apple:before { content: $fa-var-apple; }
+.#{$fa-css-prefix}-windows:before { content: $fa-var-windows; }
+.#{$fa-css-prefix}-android:before { content: $fa-var-android; }
+.#{$fa-css-prefix}-linux:before { content: $fa-var-linux; }
+.#{$fa-css-prefix}-dribbble:before { content: $fa-var-dribbble; }
+.#{$fa-css-prefix}-skype:before { content: $fa-var-skype; }
+.#{$fa-css-prefix}-foursquare:before { content: $fa-var-foursquare; }
+.#{$fa-css-prefix}-trello:before { content: $fa-var-trello; }
+.#{$fa-css-prefix}-female:before { content: $fa-var-female; }
+.#{$fa-css-prefix}-male:before { content: $fa-var-male; }
+.#{$fa-css-prefix}-gittip:before { content: $fa-var-gittip; }
+.#{$fa-css-prefix}-sun-o:before { content: $fa-var-sun-o; }
+.#{$fa-css-prefix}-moon-o:before { content: $fa-var-moon-o; }
+.#{$fa-css-prefix}-archive:before { content: $fa-var-archive; }
+.#{$fa-css-prefix}-bug:before { content: $fa-var-bug; }
+.#{$fa-css-prefix}-vk:before { content: $fa-var-vk; }
+.#{$fa-css-prefix}-weibo:before { content: $fa-var-weibo; }
+.#{$fa-css-prefix}-renren:before { content: $fa-var-renren; }
+.#{$fa-css-prefix}-pagelines:before { content: $fa-var-pagelines; }
+.#{$fa-css-prefix}-stack-exchange:before { content: $fa-var-stack-exchange; }
+.#{$fa-css-prefix}-arrow-circle-o-right:before { content: $fa-var-arrow-circle-o-right; }
+.#{$fa-css-prefix}-arrow-circle-o-left:before { content: $fa-var-arrow-circle-o-left; }
+.#{$fa-css-prefix}-toggle-left:before,
+.#{$fa-css-prefix}-caret-square-o-left:before { content: $fa-var-caret-square-o-left; }
+.#{$fa-css-prefix}-dot-circle-o:before { content: $fa-var-dot-circle-o; }
+.#{$fa-css-prefix}-wheelchair:before { content: $fa-var-wheelchair; }
+.#{$fa-css-prefix}-vimeo-square:before { content: $fa-var-vimeo-square; }
+.#{$fa-css-prefix}-turkish-lira:before,
+.#{$fa-css-prefix}-try:before { content: $fa-var-try; }
+.#{$fa-css-prefix}-plus-square-o:before { content: $fa-var-plus-square-o; }
+.#{$fa-css-prefix}-space-shuttle:before { content: $fa-var-space-shuttle; }
+.#{$fa-css-prefix}-slack:before { content: $fa-var-slack; }
+.#{$fa-css-prefix}-envelope-square:before { content: $fa-var-envelope-square; }
+.#{$fa-css-prefix}-wordpress:before { content: $fa-var-wordpress; }
+.#{$fa-css-prefix}-openid:before { content: $fa-var-openid; }
+.#{$fa-css-prefix}-institution:before,
+.#{$fa-css-prefix}-bank:before,
+.#{$fa-css-prefix}-university:before { content: $fa-var-university; }
+.#{$fa-css-prefix}-mortar-board:before,
+.#{$fa-css-prefix}-graduation-cap:before { content: $fa-var-graduation-cap; }
+.#{$fa-css-prefix}-yahoo:before { content: $fa-var-yahoo; }
+.#{$fa-css-prefix}-google:before { content: $fa-var-google; }
+.#{$fa-css-prefix}-reddit:before { content: $fa-var-reddit; }
+.#{$fa-css-prefix}-reddit-square:before { content: $fa-var-reddit-square; }
+.#{$fa-css-prefix}-stumbleupon-circle:before { content: $fa-var-stumbleupon-circle; }
+.#{$fa-css-prefix}-stumbleupon:before { content: $fa-var-stumbleupon; }
+.#{$fa-css-prefix}-delicious:before { content: $fa-var-delicious; }
+.#{$fa-css-prefix}-digg:before { content: $fa-var-digg; }
+.#{$fa-css-prefix}-pied-piper-square:before,
+.#{$fa-css-prefix}-pied-piper:before { content: $fa-var-pied-piper; }
+.#{$fa-css-prefix}-pied-piper-alt:before { content: $fa-var-pied-piper-alt; }
+.#{$fa-css-prefix}-drupal:before { content: $fa-var-drupal; }
+.#{$fa-css-prefix}-joomla:before { content: $fa-var-joomla; }
+.#{$fa-css-prefix}-language:before { content: $fa-var-language; }
+.#{$fa-css-prefix}-fax:before { content: $fa-var-fax; }
+.#{$fa-css-prefix}-building:before { content: $fa-var-building; }
+.#{$fa-css-prefix}-child:before { content: $fa-var-child; }
+.#{$fa-css-prefix}-paw:before { content: $fa-var-paw; }
+.#{$fa-css-prefix}-spoon:before { content: $fa-var-spoon; }
+.#{$fa-css-prefix}-cube:before { content: $fa-var-cube; }
+.#{$fa-css-prefix}-cubes:before { content: $fa-var-cubes; }
+.#{$fa-css-prefix}-behance:before { content: $fa-var-behance; }
+.#{$fa-css-prefix}-behance-square:before { content: $fa-var-behance-square; }
+.#{$fa-css-prefix}-steam:before { content: $fa-var-steam; }
+.#{$fa-css-prefix}-steam-square:before { content: $fa-var-steam-square; }
+.#{$fa-css-prefix}-recycle:before { content: $fa-var-recycle; }
+.#{$fa-css-prefix}-automobile:before,
+.#{$fa-css-prefix}-car:before { content: $fa-var-car; }
+.#{$fa-css-prefix}-cab:before,
+.#{$fa-css-prefix}-taxi:before { content: $fa-var-taxi; }
+.#{$fa-css-prefix}-tree:before { content: $fa-var-tree; }
+.#{$fa-css-prefix}-spotify:before { content: $fa-var-spotify; }
+.#{$fa-css-prefix}-deviantart:before { content: $fa-var-deviantart; }
+.#{$fa-css-prefix}-soundcloud:before { content: $fa-var-soundcloud; }
+.#{$fa-css-prefix}-database:before { content: $fa-var-database; }
+.#{$fa-css-prefix}-file-pdf-o:before { content: $fa-var-file-pdf-o; }
+.#{$fa-css-prefix}-file-word-o:before { content: $fa-var-file-word-o; }
+.#{$fa-css-prefix}-file-excel-o:before { content: $fa-var-file-excel-o; }
+.#{$fa-css-prefix}-file-powerpoint-o:before { content: $fa-var-file-powerpoint-o; }
+.#{$fa-css-prefix}-file-photo-o:before,
+.#{$fa-css-prefix}-file-picture-o:before,
+.#{$fa-css-prefix}-file-image-o:before { content: $fa-var-file-image-o; }
+.#{$fa-css-prefix}-file-zip-o:before,
+.#{$fa-css-prefix}-file-archive-o:before { content: $fa-var-file-archive-o; }
+.#{$fa-css-prefix}-file-sound-o:before,
+.#{$fa-css-prefix}-file-audio-o:before { content: $fa-var-file-audio-o; }
+.#{$fa-css-prefix}-file-movie-o:before,
+.#{$fa-css-prefix}-file-video-o:before { content: $fa-var-file-video-o; }
+.#{$fa-css-prefix}-file-code-o:before { content: $fa-var-file-code-o; }
+.#{$fa-css-prefix}-vine:before { content: $fa-var-vine; }
+.#{$fa-css-prefix}-codepen:before { content: $fa-var-codepen; }
+.#{$fa-css-prefix}-jsfiddle:before { content: $fa-var-jsfiddle; }
+.#{$fa-css-prefix}-life-bouy:before,
+.#{$fa-css-prefix}-life-saver:before,
+.#{$fa-css-prefix}-support:before,
+.#{$fa-css-prefix}-life-ring:before { content: $fa-var-life-ring; }
+.#{$fa-css-prefix}-circle-o-notch:before { content: $fa-var-circle-o-notch; }
+.#{$fa-css-prefix}-ra:before,
+.#{$fa-css-prefix}-rebel:before { content: $fa-var-rebel; }
+.#{$fa-css-prefix}-ge:before,
+.#{$fa-css-prefix}-empire:before { content: $fa-var-empire; }
+.#{$fa-css-prefix}-git-square:before { content: $fa-var-git-square; }
+.#{$fa-css-prefix}-git:before { content: $fa-var-git; }
+.#{$fa-css-prefix}-hacker-news:before { content: $fa-var-hacker-news; }
+.#{$fa-css-prefix}-tencent-weibo:before { content: $fa-var-tencent-weibo; }
+.#{$fa-css-prefix}-qq:before { content: $fa-var-qq; }
+.#{$fa-css-prefix}-wechat:before,
+.#{$fa-css-prefix}-weixin:before { content: $fa-var-weixin; }
+.#{$fa-css-prefix}-send:before,
+.#{$fa-css-prefix}-paper-plane:before { content: $fa-var-paper-plane; }
+.#{$fa-css-prefix}-send-o:before,
+.#{$fa-css-prefix}-paper-plane-o:before { content: $fa-var-paper-plane-o; }
+.#{$fa-css-prefix}-history:before { content: $fa-var-history; }
+.#{$fa-css-prefix}-circle-thin:before { content: $fa-var-circle-thin; }
+.#{$fa-css-prefix}-header:before { content: $fa-var-header; }
+.#{$fa-css-prefix}-paragraph:before { content: $fa-var-paragraph; }
+.#{$fa-css-prefix}-sliders:before { content: $fa-var-sliders; }
+.#{$fa-css-prefix}-share-alt:before { content: $fa-var-share-alt; }
+.#{$fa-css-prefix}-share-alt-square:before { content: $fa-var-share-alt-square; }
+.#{$fa-css-prefix}-bomb:before { content: $fa-var-bomb; }
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
index ca9c593..3354e69 100644
--- 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
@@ -1,48 +1,20 @@
// Mixins
// --------------------------
-@mixin icon($icon) {
- @include icon-FontAwesome();
- content: $icon;
+@mixin fa-icon-rotate($degrees, $rotation) {
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation});
+ -webkit-transform: rotate($degrees);
+ -moz-transform: rotate($degrees);
+ -ms-transform: rotate($degrees);
+ -o-transform: rotate($degrees);
+ transform: rotate($degrees);
}
-@mixin icon-FontAwesome() {
- font-family: FontAwesome;
- font-weight: normal;
- font-style: normal;
- text-decoration: inherit;
- -webkit-font-smoothing: antialiased;
- *margin-right: .3em; // fixes ie7 issues
-}
-
-@mixin border-radius($radius) {
- -webkit-border-radius: $radius;
- -moz-border-radius: $radius;
- border-radius: $radius;
-}
-
-@mixin icon-stack($width: 2em, $height: 2em, $top-font-size: 1em, $base-font-size: 2em) {
- .icon-stack {
- position: relative;
- display: inline-block;
- width: $width;
- height: $height;
- line-height: $width;
- vertical-align: -35%;
- [class^="icon-"],
- [class*=" icon-"] {
- display: block;
- text-align: center;
- position: absolute;
- width: 100%;
- height: 100%;
- font-size: $top-font-size;
- line-height: inherit;
- *line-height: $height;
- }
- .icon-stack-base {
- font-size: $base-font-size;
- *line-height: #{$height / $base-font-size}em;
- }
- }
+@mixin fa-icon-flip($horiz, $vert, $rotation) {
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation});
+ -webkit-transform: scale($horiz, $vert);
+ -moz-transform: scale($horiz, $vert);
+ -ms-transform: scale($horiz, $vert);
+ -o-transform: scale($horiz, $vert);
+ transform: scale($horiz, $vert);
}
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
index bb3f36b..fd21c35 100644
--- 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
@@ -3,12 +3,12 @@
@font-face {
font-family: 'FontAwesome';
- src: url('#{$FontAwesomePath}/fontawesome-webfont.eot?v=#{$FontAwesomeVersion}');
- src: url('#{$FontAwesomePath}/fontawesome-webfont.eot?#iefix&v=#{$FontAwesomeVersion}') format('embedded-opentype'),
- url('#{$FontAwesomePath}/fontawesome-webfont.woff?v=#{$FontAwesomeVersion}') format('woff'),
- url('#{$FontAwesomePath}/fontawesome-webfont.ttf?v=#{$FontAwesomeVersion}') format('truetype'),
- url('#{$FontAwesomePath}/fontawesome-webfont.svg#fontawesomeregular?v=#{$FontAwesomeVersion}') format('svg');
-// src: url('#{$FontAwesomePath}/FontAwesome.otf') format('opentype'); // used when developing fonts
+ src: url('#{$fa-font-path}/fontawesome-webfont.eot?v=#{$fa-version}');
+ src: url('#{$fa-font-path}/fontawesome-webfont.eot?#iefix&v=#{$fa-version}') format('embedded-opentype'),
+ url('#{$fa-font-path}/fontawesome-webfont.woff?v=#{$fa-version}') format('woff'),
+ url('#{$fa-font-path}/fontawesome-webfont.ttf?v=#{$fa-version}') format('truetype'),
+ url('#{$fa-font-path}/fontawesome-webfont.svg?v=#{$fa-version}#fontawesomeregular') format('svg');
+ //src: url('#{$fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts
font-weight: normal;
font-style: normal;
}
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
index 7d6bbc5..ac2b505 100644
--- 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
@@ -1,734 +1,515 @@
// Variables
// --------------------------
-$FontAwesomePath: "../font" !default;
-$FontAwesomeVersion: "3.2.1" !default;
-$borderColor: #eeeeee !default;
-$iconMuted: #eeeeee !default;
-$iconLight: white !default;
-$iconDark: #333333 !default;
-$icons-li-width: (30em/14);
-
-
-$glass: "\f000";
-
-$music: "\f001";
-
-$search: "\f002";
-
-$envelope-alt: "\f003";
-
-$heart: "\f004";
-
-$star: "\f005";
-
-$star-empty: "\f006";
-
-$user: "\f007";
-
-$film: "\f008";
-
-$th-large: "\f009";
-
-$th: "\f00a";
-
-$th-list: "\f00b";
-
-$ok: "\f00c";
-
-$remove: "\f00d";
-
-$zoom-in: "\f00e";
-
-$zoom-out: "\f010";
-
-$off: "\f011";
-
-$signal: "\f012";
-
-$cog: "\f013";
-
-$trash: "\f014";
-
-$home: "\f015";
-
-$file-alt: "\f016";
-
-$time: "\f017";
-
-$road: "\f018";
-
-$download-alt: "\f019";
-
-$download: "\f01a";
-
-$upload: "\f01b";
-
-$inbox: "\f01c";
-
-$play-circle: "\f01d";
-
-$repeat: "\f01e";
-
-$refresh: "\f021";
-
-$list-alt: "\f022";
-
-$lock: "\f023";
-
-$flag: "\f024";
-
-$headphones: "\f025";
-
-$volume-off: "\f026";
-
-$volume-down: "\f027";
-
-$volume-up: "\f028";
-
-$qrcode: "\f029";
-
-$barcode: "\f02a";
-
-$tag: "\f02b";
-
-$tags: "\f02c";
-
-$book: "\f02d";
-
-$bookmark: "\f02e";
-
-$print: "\f02f";
-
-$camera: "\f030";
-
-$font: "\f031";
-
-$bold: "\f032";
-
-$italic: "\f033";
-
-$text-height: "\f034";
-
-$text-width: "\f035";
-
-$align-left: "\f036";
-
-$align-center: "\f037";
-
-$align-right: "\f038";
-
-$align-justify: "\f039";
-
-$list: "\f03a";
-
-$indent-left: "\f03b";
-
-$indent-right: "\f03c";
-
-$facetime-video: "\f03d";
-
-$picture: "\f03e";
-
-$pencil: "\f040";
-
-$map-marker: "\f041";
-
-$adjust: "\f042";
-
-$tint: "\f043";
-
-$edit: "\f044";
-
-$share: "\f045";
-
-$check: "\f046";
-
-$move: "\f047";
-
-$step-backward: "\f048";
-
-$fast-backward: "\f049";
-
-$backward: "\f04a";
-
-$play: "\f04b";
-
-$pause: "\f04c";
-
-$stop: "\f04d";
-
-$forward: "\f04e";
-
-$fast-forward: "\f050";
-
-$step-forward: "\f051";
-
-$eject: "\f052";
-
-$chevron-left: "\f053";
-
-$chevron-right: "\f054";
-
-$plus-sign: "\f055";
-
-$minus-sign: "\f056";
-
-$remove-sign: "\f057";
-
-$ok-sign: "\f058";
-
-$question-sign: "\f059";
-
-$info-sign: "\f05a";
-
-$screenshot: "\f05b";
-
-$remove-circle: "\f05c";
-
-$ok-circle: "\f05d";
-
-$ban-circle: "\f05e";
-
-$arrow-left: "\f060";
-
-$arrow-right: "\f061";
-
-$arrow-up: "\f062";
-
-$arrow-down: "\f063";
-
-$share-alt: "\f064";
-
-$resize-full: "\f065";
-
-$resize-small: "\f066";
-
-$plus: "\f067";
-
-$minus: "\f068";
-
-$asterisk: "\f069";
-
-$exclamation-sign: "\f06a";
-
-$gift: "\f06b";
-
-$leaf: "\f06c";
-
-$fire: "\f06d";
-
-$eye-open: "\f06e";
-
-$eye-close: "\f070";
-
-$warning-sign: "\f071";
-
-$plane: "\f072";
-
-$calendar: "\f073";
-
-$random: "\f074";
-
-$comment: "\f075";
-
-$magnet: "\f076";
-
-$chevron-up: "\f077";
-
-$chevron-down: "\f078";
-
-$retweet: "\f079";
-
-$shopping-cart: "\f07a";
-
-$folder-close: "\f07b";
-
-$folder-open: "\f07c";
-
-$resize-vertical: "\f07d";
-
-$resize-horizontal: "\f07e";
-
-$bar-chart: "\f080";
-
-$twitter-sign: "\f081";
-
-$facebook-sign: "\f082";
-
-$camera-retro: "\f083";
-
-$key: "\f084";
-
-$cogs: "\f085";
-
-$comments: "\f086";
-
-$thumbs-up-alt: "\f087";
-
-$thumbs-down-alt: "\f088";
-
-$star-half: "\f089";
-
-$heart-empty: "\f08a";
-
-$signout: "\f08b";
-
-$linkedin-sign: "\f08c";
-
-$pushpin: "\f08d";
-
-$external-link: "\f08e";
-
-$signin: "\f090";
-
-$trophy: "\f091";
-
-$github-sign: "\f092";
-
-$upload-alt: "\f093";
-
-$lemon: "\f094";
-
-$phone: "\f095";
-
-$check-empty: "\f096";
-
-$bookmark-empty: "\f097";
-
-$phone-sign: "\f098";
-
-$twitter: "\f099";
-
-$facebook: "\f09a";
-
-$github: "\f09b";
-
-$unlock: "\f09c";
-
-$credit-card: "\f09d";
-
-$rss: "\f09e";
-
-$hdd: "\f0a0";
-
-$bullhorn: "\f0a1";
-
-$bell: "\f0a2";
-
-$certificate: "\f0a3";
-
-$hand-right: "\f0a4";
-
-$hand-left: "\f0a5";
-
-$hand-up: "\f0a6";
-
-$hand-down: "\f0a7";
-
-$circle-arrow-left: "\f0a8";
-
-$circle-arrow-right: "\f0a9";
-
-$circle-arrow-up: "\f0aa";
-
-$circle-arrow-down: "\f0ab";
-
-$globe: "\f0ac";
-
-$wrench: "\f0ad";
-
-$tasks: "\f0ae";
-
-$filter: "\f0b0";
-
-$briefcase: "\f0b1";
-
-$fullscreen: "\f0b2";
-
-$group: "\f0c0";
-
-$link: "\f0c1";
-
-$cloud: "\f0c2";
-
-$beaker: "\f0c3";
-
-$cut: "\f0c4";
-
-$copy: "\f0c5";
-
-$paper-clip: "\f0c6";
-
-$save: "\f0c7";
-
-$sign-blank: "\f0c8";
-
-$reorder: "\f0c9";
-
-$list-ul: "\f0ca";
-
-$list-ol: "\f0cb";
-
-$strikethrough: "\f0cc";
-
-$underline: "\f0cd";
-
-$table: "\f0ce";
-
-$magic: "\f0d0";
-
-$truck: "\f0d1";
-
-$pinterest: "\f0d2";
-
-$pinterest-sign: "\f0d3";
-
-$google-plus-sign: "\f0d4";
-
-$google-plus: "\f0d5";
-
-$money: "\f0d6";
-
-$caret-down: "\f0d7";
-
-$caret-up: "\f0d8";
-
-$caret-left: "\f0d9";
-
-$caret-right: "\f0da";
-
-$columns: "\f0db";
-
-$sort: "\f0dc";
-
-$sort-down: "\f0dd";
-
-$sort-up: "\f0de";
-
-$envelope: "\f0e0";
-
-$linkedin: "\f0e1";
-
-$undo: "\f0e2";
-
-$legal: "\f0e3";
-
-$dashboard: "\f0e4";
-
-$comment-alt: "\f0e5";
-
-$comments-alt: "\f0e6";
-
-$bolt: "\f0e7";
-
-$sitemap: "\f0e8";
-
-$umbrella: "\f0e9";
-
-$paste: "\f0ea";
-
-$lightbulb: "\f0eb";
-
-$exchange: "\f0ec";
-
-$cloud-download: "\f0ed";
-
-$cloud-upload: "\f0ee";
-
-$user-md: "\f0f0";
-
-$stethoscope: "\f0f1";
-
-$suitcase: "\f0f2";
-
-$bell-alt: "\f0f3";
-
-$coffee: "\f0f4";
-
-$food: "\f0f5";
-
-$file-text-alt: "\f0f6";
-
-$building: "\f0f7";
-
-$hospital: "\f0f8";
-
-$ambulance: "\f0f9";
-
-$medkit: "\f0fa";
-
-$fighter-jet: "\f0fb";
-
-$beer: "\f0fc";
-
-$h-sign: "\f0fd";
-
-$plus-sign-alt: "\f0fe";
-
-$double-angle-left: "\f100";
-
-$double-angle-right: "\f101";
-
-$double-angle-up: "\f102";
-
-$double-angle-down: "\f103";
-
-$angle-left: "\f104";
-
-$angle-right: "\f105";
-
-$angle-up: "\f106";
-
-$angle-down: "\f107";
-
-$desktop: "\f108";
-
-$laptop: "\f109";
-
-$tablet: "\f10a";
-
-$mobile-phone: "\f10b";
-
-$circle-blank: "\f10c";
-
-$quote-left: "\f10d";
-
-$quote-right: "\f10e";
-
-$spinner: "\f110";
-
-$circle: "\f111";
-
-$reply: "\f112";
-
-$github-alt: "\f113";
-
-$folder-close-alt: "\f114";
-
-$folder-open-alt: "\f115";
-
-$expand-alt: "\f116";
-
-$collapse-alt: "\f117";
-
-$smile: "\f118";
-
-$frown: "\f119";
-
-$meh: "\f11a";
-
-$gamepad: "\f11b";
-
-$keyboard: "\f11c";
-
-$flag-alt: "\f11d";
-
-$flag-checkered: "\f11e";
-
-$terminal: "\f120";
-
-$code: "\f121";
-
-$reply-all: "\f122";
-
-$mail-reply-all: "\f122";
-
-$star-half-empty: "\f123";
-
-$location-arrow: "\f124";
-
-$crop: "\f125";
-
-$code-fork: "\f126";
-
-$unlink: "\f127";
-
-$question: "\f128";
-
-$info: "\f129";
-
-$exclamation: "\f12a";
-
-$superscript: "\f12b";
-
-$subscript: "\f12c";
-
-$eraser: "\f12d";
-
-$puzzle-piece: "\f12e";
-
-$microphone: "\f130";
-
-$microphone-off: "\f131";
-
-$shield: "\f132";
-
-$calendar-empty: "\f133";
-
-$fire-extinguisher: "\f134";
-
-$rocket: "\f135";
-
-$maxcdn: "\f136";
-
-$chevron-sign-left: "\f137";
-
-$chevron-sign-right: "\f138";
-
-$chevron-sign-up: "\f139";
-
-$chevron-sign-down: "\f13a";
-
-$html5: "\f13b";
-
-$css3: "\f13c";
-
-$anchor: "\f13d";
-
-$unlock-alt: "\f13e";
-
-$bullseye: "\f140";
-
-$ellipsis-horizontal: "\f141";
-
-$ellipsis-vertical: "\f142";
-
-$rss-sign: "\f143";
-
-$play-sign: "\f144";
-
-$ticket: "\f145";
-
-$minus-sign-alt: "\f146";
-
-$check-minus: "\f147";
-
-$level-up: "\f148";
-
-$level-down: "\f149";
-
-$check-sign: "\f14a";
-
-$edit-sign: "\f14b";
-
-$external-link-sign: "\f14c";
-
-$share-sign: "\f14d";
-
-$compass: "\f14e";
-
-$collapse: "\f150";
-
-$collapse-top: "\f151";
-
-$expand: "\f152";
-
-$eur: "\f153";
-
-$gbp: "\f154";
-
-$usd: "\f155";
-
-$inr: "\f156";
-
-$jpy: "\f157";
-
-$cny: "\f158";
-
-$krw: "\f159";
-
-$btc: "\f15a";
-
-$file: "\f15b";
-
-$file-text: "\f15c";
-
-$sort-by-alphabet: "\f15d";
-
-$sort-by-alphabet-alt: "\f15e";
-
-$sort-by-attributes: "\f160";
-
-$sort-by-attributes-alt: "\f161";
-
-$sort-by-order: "\f162";
-
-$sort-by-order-alt: "\f163";
-
-$thumbs-up: "\f164";
-
-$thumbs-down: "\f165";
-
-$youtube-sign: "\f166";
-
-$youtube: "\f167";
-
-$xing: "\f168";
-
-$xing-sign: "\f169";
-
-$youtube-play: "\f16a";
-
-$dropbox: "\f16b";
-
-$stackexchange: "\f16c";
-
-$instagram: "\f16d";
-
-$flickr: "\f16e";
-
-$adn: "\f170";
-
-$bitbucket: "\f171";
-
-$bitbucket-sign: "\f172";
-
-$tumblr: "\f173";
-
-$tumblr-sign: "\f174";
-
-$long-arrow-down: "\f175";
-
-$long-arrow-up: "\f176";
-
-$long-arrow-left: "\f177";
-
-$long-arrow-right: "\f178";
-
-$apple: "\f179";
-
-$windows: "\f17a";
-
-$android: "\f17b";
-
-$linux: "\f17c";
-
-$dribbble: "\f17d";
-
-$skype: "\f17e";
-
-$foursquare: "\f180";
-
-$trello: "\f181";
-
-$female: "\f182";
-
-$male: "\f183";
-
-$gittip: "\f184";
-
-$sun: "\f185";
-
-$moon: "\f186";
-
-$archive: "\f187";
-
-$bug: "\f188";
-
-$vk: "\f189";
-
-$weibo: "\f18a";
-
-$renren: "\f18b";
+$fa-font-path: "../fonts" !default;
+//$fa-font-path: "//netdna.bootstrapcdn.com/font-awesome/4.1.0/fonts" !default; // for referencing Bootstrap CDN font files directly
+$fa-css-prefix: fa !default;
+$fa-version: "4.1.0" !default;
+$fa-border-color: #eee !default;
+$fa-inverse: #fff !default;
+$fa-li-width: (30em / 14) !default;
+
+$fa-var-adjust: "\f042";
+$fa-var-adn: "\f170";
+$fa-var-align-center: "\f037";
+$fa-var-align-justify: "\f039";
+$fa-var-align-left: "\f036";
+$fa-var-align-right: "\f038";
+$fa-var-ambulance: "\f0f9";
+$fa-var-anchor: "\f13d";
+$fa-var-android: "\f17b";
+$fa-var-angle-double-down: "\f103";
+$fa-var-angle-double-left: "\f100";
+$fa-var-angle-double-right: "\f101";
+$fa-var-angle-double-up: "\f102";
+$fa-var-angle-down: "\f107";
+$fa-var-angle-left: "\f104";
+$fa-var-angle-right: "\f105";
+$fa-var-angle-up: "\f106";
+$fa-var-apple: "\f179";
+$fa-var-archive: "\f187";
+$fa-var-arrow-circle-down: "\f0ab";
+$fa-var-arrow-circle-left: "\f0a8";
+$fa-var-arrow-circle-o-down: "\f01a";
+$fa-var-arrow-circle-o-left: "\f190";
+$fa-var-arrow-circle-o-right: "\f18e";
+$fa-var-arrow-circle-o-up: "\f01b";
+$fa-var-arrow-circle-right: "\f0a9";
+$fa-var-arrow-circle-up: "\f0aa";
+$fa-var-arrow-down: "\f063";
+$fa-var-arrow-left: "\f060";
+$fa-var-arrow-right: "\f061";
+$fa-var-arrow-up: "\f062";
+$fa-var-arrows: "\f047";
+$fa-var-arrows-alt: "\f0b2";
+$fa-var-arrows-h: "\f07e";
+$fa-var-arrows-v: "\f07d";
+$fa-var-asterisk: "\f069";
+$fa-var-automobile: "\f1b9";
+$fa-var-backward: "\f04a";
+$fa-var-ban: "\f05e";
+$fa-var-bank: "\f19c";
+$fa-var-bar-chart-o: "\f080";
+$fa-var-barcode: "\f02a";
+$fa-var-bars: "\f0c9";
+$fa-var-beer: "\f0fc";
+$fa-var-behance: "\f1b4";
+$fa-var-behance-square: "\f1b5";
+$fa-var-bell: "\f0f3";
+$fa-var-bell-o: "\f0a2";
+$fa-var-bitbucket: "\f171";
+$fa-var-bitbucket-square: "\f172";
+$fa-var-bitcoin: "\f15a";
+$fa-var-bold: "\f032";
+$fa-var-bolt: "\f0e7";
+$fa-var-bomb: "\f1e2";
+$fa-var-book: "\f02d";
+$fa-var-bookmark: "\f02e";
+$fa-var-bookmark-o: "\f097";
+$fa-var-briefcase: "\f0b1";
+$fa-var-btc: "\f15a";
+$fa-var-bug: "\f188";
+$fa-var-building: "\f1ad";
+$fa-var-building-o: "\f0f7";
+$fa-var-bullhorn: "\f0a1";
+$fa-var-bullseye: "\f140";
+$fa-var-cab: "\f1ba";
+$fa-var-calendar: "\f073";
+$fa-var-calendar-o: "\f133";
+$fa-var-camera: "\f030";
+$fa-var-camera-retro: "\f083";
+$fa-var-car: "\f1b9";
+$fa-var-caret-down: "\f0d7";
+$fa-var-caret-left: "\f0d9";
+$fa-var-caret-right: "\f0da";
+$fa-var-caret-square-o-down: "\f150";
+$fa-var-caret-square-o-left: "\f191";
+$fa-var-caret-square-o-right: "\f152";
+$fa-var-caret-square-o-up: "\f151";
+$fa-var-caret-up: "\f0d8";
+$fa-var-certificate: "\f0a3";
+$fa-var-chain: "\f0c1";
+$fa-var-chain-broken: "\f127";
+$fa-var-check: "\f00c";
+$fa-var-check-circle: "\f058";
+$fa-var-check-circle-o: "\f05d";
+$fa-var-check-square: "\f14a";
+$fa-var-check-square-o: "\f046";
+$fa-var-chevron-circle-down: "\f13a";
+$fa-var-chevron-circle-left: "\f137";
+$fa-var-chevron-circle-right: "\f138";
+$fa-var-chevron-circle-up: "\f139";
+$fa-var-chevron-down: "\f078";
+$fa-var-chevron-left: "\f053";
+$fa-var-chevron-right: "\f054";
+$fa-var-chevron-up: "\f077";
+$fa-var-child: "\f1ae";
+$fa-var-circle: "\f111";
+$fa-var-circle-o: "\f10c";
+$fa-var-circle-o-notch: "\f1ce";
+$fa-var-circle-thin: "\f1db";
+$fa-var-clipboard: "\f0ea";
+$fa-var-clock-o: "\f017";
+$fa-var-cloud: "\f0c2";
+$fa-var-cloud-download: "\f0ed";
+$fa-var-cloud-upload: "\f0ee";
+$fa-var-cny: "\f157";
+$fa-var-code: "\f121";
+$fa-var-code-fork: "\f126";
+$fa-var-codepen: "\f1cb";
+$fa-var-coffee: "\f0f4";
+$fa-var-cog: "\f013";
+$fa-var-cogs: "\f085";
+$fa-var-columns: "\f0db";
+$fa-var-comment: "\f075";
+$fa-var-comment-o: "\f0e5";
+$fa-var-comments: "\f086";
+$fa-var-comments-o: "\f0e6";
+$fa-var-compass: "\f14e";
+$fa-var-compress: "\f066";
+$fa-var-copy: "\f0c5";
+$fa-var-credit-card: "\f09d";
+$fa-var-crop: "\f125";
+$fa-var-crosshairs: "\f05b";
+$fa-var-css3: "\f13c";
+$fa-var-cube: "\f1b2";
+$fa-var-cubes: "\f1b3";
+$fa-var-cut: "\f0c4";
+$fa-var-cutlery: "\f0f5";
+$fa-var-dashboard: "\f0e4";
+$fa-var-database: "\f1c0";
+$fa-var-dedent: "\f03b";
+$fa-var-delicious: "\f1a5";
+$fa-var-desktop: "\f108";
+$fa-var-deviantart: "\f1bd";
+$fa-var-digg: "\f1a6";
+$fa-var-dollar: "\f155";
+$fa-var-dot-circle-o: "\f192";
+$fa-var-download: "\f019";
+$fa-var-dribbble: "\f17d";
+$fa-var-dropbox: "\f16b";
+$fa-var-drupal: "\f1a9";
+$fa-var-edit: "\f044";
+$fa-var-eject: "\f052";
+$fa-var-ellipsis-h: "\f141";
+$fa-var-ellipsis-v: "\f142";
+$fa-var-empire: "\f1d1";
+$fa-var-envelope: "\f0e0";
+$fa-var-envelope-o: "\f003";
+$fa-var-envelope-square: "\f199";
+$fa-var-eraser: "\f12d";
+$fa-var-eur: "\f153";
+$fa-var-euro: "\f153";
+$fa-var-exchange: "\f0ec";
+$fa-var-exclamation: "\f12a";
+$fa-var-exclamation-circle: "\f06a";
+$fa-var-exclamation-triangle: "\f071";
+$fa-var-expand: "\f065";
+$fa-var-external-link: "\f08e";
+$fa-var-external-link-square: "\f14c";
+$fa-var-eye: "\f06e";
+$fa-var-eye-slash: "\f070";
+$fa-var-facebook: "\f09a";
+$fa-var-facebook-square: "\f082";
+$fa-var-fast-backward: "\f049";
+$fa-var-fast-forward: "\f050";
+$fa-var-fax: "\f1ac";
+$fa-var-female: "\f182";
+$fa-var-fighter-jet: "\f0fb";
+$fa-var-file: "\f15b";
+$fa-var-file-archive-o: "\f1c6";
+$fa-var-file-audio-o: "\f1c7";
+$fa-var-file-code-o: "\f1c9";
+$fa-var-file-excel-o: "\f1c3";
+$fa-var-file-image-o: "\f1c5";
+$fa-var-file-movie-o: "\f1c8";
+$fa-var-file-o: "\f016";
+$fa-var-file-pdf-o: "\f1c1";
+$fa-var-file-photo-o: "\f1c5";
+$fa-var-file-picture-o: "\f1c5";
+$fa-var-file-powerpoint-o: "\f1c4";
+$fa-var-file-sound-o: "\f1c7";
+$fa-var-file-text: "\f15c";
+$fa-var-file-text-o: "\f0f6";
+$fa-var-file-video-o: "\f1c8";
+$fa-var-file-word-o: "\f1c2";
+$fa-var-file-zip-o: "\f1c6";
+$fa-var-files-o: "\f0c5";
+$fa-var-film: "\f008";
+$fa-var-filter: "\f0b0";
+$fa-var-fire: "\f06d";
+$fa-var-fire-extinguisher: "\f134";
+$fa-var-flag: "\f024";
+$fa-var-flag-checkered: "\f11e";
+$fa-var-flag-o: "\f11d";
+$fa-var-flash: "\f0e7";
+$fa-var-flask: "\f0c3";
+$fa-var-flickr: "\f16e";
+$fa-var-floppy-o: "\f0c7";
+$fa-var-folder: "\f07b";
+$fa-var-folder-o: "\f114";
+$fa-var-folder-open: "\f07c";
+$fa-var-folder-open-o: "\f115";
+$fa-var-font: "\f031";
+$fa-var-forward: "\f04e";
+$fa-var-foursquare: "\f180";
+$fa-var-frown-o: "\f119";
+$fa-var-gamepad: "\f11b";
+$fa-var-gavel: "\f0e3";
+$fa-var-gbp: "\f154";
+$fa-var-ge: "\f1d1";
+$fa-var-gear: "\f013";
+$fa-var-gears: "\f085";
+$fa-var-gift: "\f06b";
+$fa-var-git: "\f1d3";
+$fa-var-git-square: "\f1d2";
+$fa-var-github: "\f09b";
+$fa-var-github-alt: "\f113";
+$fa-var-github-square: "\f092";
+$fa-var-gittip: "\f184";
+$fa-var-glass: "\f000";
+$fa-var-globe: "\f0ac";
+$fa-var-google: "\f1a0";
+$fa-var-google-plus: "\f0d5";
+$fa-var-google-plus-square: "\f0d4";
+$fa-var-graduation-cap: "\f19d";
+$fa-var-group: "\f0c0";
+$fa-var-h-square: "\f0fd";
+$fa-var-hacker-news: "\f1d4";
+$fa-var-hand-o-down: "\f0a7";
+$fa-var-hand-o-left: "\f0a5";
+$fa-var-hand-o-right: "\f0a4";
+$fa-var-hand-o-up: "\f0a6";
+$fa-var-hdd-o: "\f0a0";
+$fa-var-header: "\f1dc";
+$fa-var-headphones: "\f025";
+$fa-var-heart: "\f004";
+$fa-var-heart-o: "\f08a";
+$fa-var-history: "\f1da";
+$fa-var-home: "\f015";
+$fa-var-hospital-o: "\f0f8";
+$fa-var-html5: "\f13b";
+$fa-var-image: "\f03e";
+$fa-var-inbox: "\f01c";
+$fa-var-indent: "\f03c";
+$fa-var-info: "\f129";
+$fa-var-info-circle: "\f05a";
+$fa-var-inr: "\f156";
+$fa-var-instagram: "\f16d";
+$fa-var-institution: "\f19c";
+$fa-var-italic: "\f033";
+$fa-var-joomla: "\f1aa";
+$fa-var-jpy: "\f157";
+$fa-var-jsfiddle: "\f1cc";
+$fa-var-key: "\f084";
+$fa-var-keyboard-o: "\f11c";
+$fa-var-krw: "\f159";
+$fa-var-language: "\f1ab";
+$fa-var-laptop: "\f109";
+$fa-var-leaf: "\f06c";
+$fa-var-legal: "\f0e3";
+$fa-var-lemon-o: "\f094";
+$fa-var-level-down: "\f149";
+$fa-var-level-up: "\f148";
+$fa-var-life-bouy: "\f1cd";
+$fa-var-life-ring: "\f1cd";
+$fa-var-life-saver: "\f1cd";
+$fa-var-lightbulb-o: "\f0eb";
+$fa-var-link: "\f0c1";
+$fa-var-linkedin: "\f0e1";
+$fa-var-linkedin-square: "\f08c";
+$fa-var-linux: "\f17c";
+$fa-var-list: "\f03a";
+$fa-var-list-alt: "\f022";
+$fa-var-list-ol: "\f0cb";
+$fa-var-list-ul: "\f0ca";
+$fa-var-location-arrow: "\f124";
+$fa-var-lock: "\f023";
+$fa-var-long-arrow-down: "\f175";
+$fa-var-long-arrow-left: "\f177";
+$fa-var-long-arrow-right: "\f178";
+$fa-var-long-arrow-up: "\f176";
+$fa-var-magic: "\f0d0";
+$fa-var-magnet: "\f076";
+$fa-var-mail-forward: "\f064";
+$fa-var-mail-reply: "\f112";
+$fa-var-mail-reply-all: "\f122";
+$fa-var-male: "\f183";
+$fa-var-map-marker: "\f041";
+$fa-var-maxcdn: "\f136";
+$fa-var-medkit: "\f0fa";
+$fa-var-meh-o: "\f11a";
+$fa-var-microphone: "\f130";
+$fa-var-microphone-slash: "\f131";
+$fa-var-minus: "\f068";
+$fa-var-minus-circle: "\f056";
+$fa-var-minus-square: "\f146";
+$fa-var-minus-square-o: "\f147";
+$fa-var-mobile: "\f10b";
+$fa-var-mobile-phone: "\f10b";
+$fa-var-money: "\f0d6";
+$fa-var-moon-o: "\f186";
+$fa-var-mortar-board: "\f19d";
+$fa-var-music: "\f001";
+$fa-var-navicon: "\f0c9";
+$fa-var-openid: "\f19b";
+$fa-var-outdent: "\f03b";
+$fa-var-pagelines: "\f18c";
+$fa-var-paper-plane: "\f1d8";
+$fa-var-paper-plane-o: "\f1d9";
+$fa-var-paperclip: "\f0c6";
+$fa-var-paragraph: "\f1dd";
+$fa-var-paste: "\f0ea";
+$fa-var-pause: "\f04c";
+$fa-var-paw: "\f1b0";
+$fa-var-pencil: "\f040";
+$fa-var-pencil-square: "\f14b";
+$fa-var-pencil-square-o: "\f044";
+$fa-var-phone: "\f095";
+$fa-var-phone-square: "\f098";
+$fa-var-photo: "\f03e";
+$fa-var-picture-o: "\f03e";
+$fa-var-pied-piper: "\f1a7";
+$fa-var-pied-piper-alt: "\f1a8";
+$fa-var-pied-piper-square: "\f1a7";
+$fa-var-pinterest: "\f0d2";
+$fa-var-pinterest-square: "\f0d3";
+$fa-var-plane: "\f072";
+$fa-var-play: "\f04b";
+$fa-var-play-circle: "\f144";
+$fa-var-play-circle-o: "\f01d";
+$fa-var-plus: "\f067";
+$fa-var-plus-circle: "\f055";
+$fa-var-plus-square: "\f0fe";
+$fa-var-plus-square-o: "\f196";
+$fa-var-power-off: "\f011";
+$fa-var-print: "\f02f";
+$fa-var-puzzle-piece: "\f12e";
+$fa-var-qq: "\f1d6";
+$fa-var-qrcode: "\f029";
+$fa-var-question: "\f128";
+$fa-var-question-circle: "\f059";
+$fa-var-quote-left: "\f10d";
+$fa-var-quote-right: "\f10e";
+$fa-var-ra: "\f1d0";
+$fa-var-random: "\f074";
+$fa-var-rebel: "\f1d0";
+$fa-var-recycle: "\f1b8";
+$fa-var-reddit: "\f1a1";
+$fa-var-reddit-square: "\f1a2";
+$fa-var-refresh: "\f021";
+$fa-var-renren: "\f18b";
+$fa-var-reorder: "\f0c9";
+$fa-var-repeat: "\f01e";
+$fa-var-reply: "\f112";
+$fa-var-reply-all: "\f122";
+$fa-var-retweet: "\f079";
+$fa-var-rmb: "\f157";
+$fa-var-road: "\f018";
+$fa-var-rocket: "\f135";
+$fa-var-rotate-left: "\f0e2";
+$fa-var-rotate-right: "\f01e";
+$fa-var-rouble: "\f158";
+$fa-var-rss: "\f09e";
+$fa-var-rss-square: "\f143";
+$fa-var-rub: "\f158";
+$fa-var-ruble: "\f158";
+$fa-var-rupee: "\f156";
+$fa-var-save: "\f0c7";
+$fa-var-scissors: "\f0c4";
+$fa-var-search: "\f002";
+$fa-var-search-minus: "\f010";
+$fa-var-search-plus: "\f00e";
+$fa-var-send: "\f1d8";
+$fa-var-send-o: "\f1d9";
+$fa-var-share: "\f064";
+$fa-var-share-alt: "\f1e0";
+$fa-var-share-alt-square: "\f1e1";
+$fa-var-share-square: "\f14d";
+$fa-var-share-square-o: "\f045";
+$fa-var-shield: "\f132";
+$fa-var-shopping-cart: "\f07a";
+$fa-var-sign-in: "\f090";
+$fa-var-sign-out: "\f08b";
+$fa-var-signal: "\f012";
+$fa-var-sitemap: "\f0e8";
+$fa-var-skype: "\f17e";
+$fa-var-slack: "\f198";
+$fa-var-sliders: "\f1de";
+$fa-var-smile-o: "\f118";
+$fa-var-sort: "\f0dc";
+$fa-var-sort-alpha-asc: "\f15d";
+$fa-var-sort-alpha-desc: "\f15e";
+$fa-var-sort-amount-asc: "\f160";
+$fa-var-sort-amount-desc: "\f161";
+$fa-var-sort-asc: "\f0de";
+$fa-var-sort-desc: "\f0dd";
+$fa-var-sort-down: "\f0dd";
+$fa-var-sort-numeric-asc: "\f162";
+$fa-var-sort-numeric-desc: "\f163";
+$fa-var-sort-up: "\f0de";
+$fa-var-soundcloud: "\f1be";
+$fa-var-space-shuttle: "\f197";
+$fa-var-spinner: "\f110";
+$fa-var-spoon: "\f1b1";
+$fa-var-spotify: "\f1bc";
+$fa-var-square: "\f0c8";
+$fa-var-square-o: "\f096";
+$fa-var-stack-exchange: "\f18d";
+$fa-var-stack-overflow: "\f16c";
+$fa-var-star: "\f005";
+$fa-var-star-half: "\f089";
+$fa-var-star-half-empty: "\f123";
+$fa-var-star-half-full: "\f123";
+$fa-var-star-half-o: "\f123";
+$fa-var-star-o: "\f006";
+$fa-var-steam: "\f1b6";
+$fa-var-steam-square: "\f1b7";
+$fa-var-step-backward: "\f048";
+$fa-var-step-forward: "\f051";
+$fa-var-stethoscope: "\f0f1";
+$fa-var-stop: "\f04d";
+$fa-var-strikethrough: "\f0cc";
+$fa-var-stumbleupon: "\f1a4";
+$fa-var-stumbleupon-circle: "\f1a3";
+$fa-var-subscript: "\f12c";
+$fa-var-suitcase: "\f0f2";
+$fa-var-sun-o: "\f185";
+$fa-var-superscript: "\f12b";
+$fa-var-support: "\f1cd";
+$fa-var-table: "\f0ce";
+$fa-var-tablet: "\f10a";
+$fa-var-tachometer: "\f0e4";
+$fa-var-tag: "\f02b";
+$fa-var-tags: "\f02c";
+$fa-var-tasks: "\f0ae";
+$fa-var-taxi: "\f1ba";
+$fa-var-tencent-weibo: "\f1d5";
+$fa-var-terminal: "\f120";
+$fa-var-text-height: "\f034";
+$fa-var-text-width: "\f035";
+$fa-var-th: "\f00a";
+$fa-var-th-large: "\f009";
+$fa-var-th-list: "\f00b";
+$fa-var-thumb-tack: "\f08d";
+$fa-var-thumbs-down: "\f165";
+$fa-var-thumbs-o-down: "\f088";
+$fa-var-thumbs-o-up: "\f087";
+$fa-var-thumbs-up: "\f164";
+$fa-var-ticket: "\f145";
+$fa-var-times: "\f00d";
+$fa-var-times-circle: "\f057";
+$fa-var-times-circle-o: "\f05c";
+$fa-var-tint: "\f043";
+$fa-var-toggle-down: "\f150";
+$fa-var-toggle-left: "\f191";
+$fa-var-toggle-right: "\f152";
+$fa-var-toggle-up: "\f151";
+$fa-var-trash-o: "\f014";
+$fa-var-tree: "\f1bb";
+$fa-var-trello: "\f181";
+$fa-var-trophy: "\f091";
+$fa-var-truck: "\f0d1";
+$fa-var-try: "\f195";
+$fa-var-tumblr: "\f173";
+$fa-var-tumblr-square: "\f174";
+$fa-var-turkish-lira: "\f195";
+$fa-var-twitter: "\f099";
+$fa-var-twitter-square: "\f081";
+$fa-var-umbrella: "\f0e9";
+$fa-var-underline: "\f0cd";
+$fa-var-undo: "\f0e2";
+$fa-var-university: "\f19c";
+$fa-var-unlink: "\f127";
+$fa-var-unlock: "\f09c";
+$fa-var-unlock-alt: "\f13e";
+$fa-var-unsorted: "\f0dc";
+$fa-var-upload: "\f093";
+$fa-var-usd: "\f155";
+$fa-var-user: "\f007";
+$fa-var-user-md: "\f0f0";
+$fa-var-users: "\f0c0";
+$fa-var-video-camera: "\f03d";
+$fa-var-vimeo-square: "\f194";
+$fa-var-vine: "\f1ca";
+$fa-var-vk: "\f189";
+$fa-var-volume-down: "\f027";
+$fa-var-volume-off: "\f026";
+$fa-var-volume-up: "\f028";
+$fa-var-warning: "\f071";
+$fa-var-wechat: "\f1d7";
+$fa-var-weibo: "\f18a";
+$fa-var-weixin: "\f1d7";
+$fa-var-wheelchair: "\f193";
+$fa-var-windows: "\f17a";
+$fa-var-won: "\f159";
+$fa-var-wordpress: "\f19a";
+$fa-var-wrench: "\f0ad";
+$fa-var-xing: "\f168";
+$fa-var-xing-square: "\f169";
+$fa-var-yahoo: "\f19e";
+$fa-var-yen: "\f157";
+$fa-var-youtube: "\f167";
+$fa-var-youtube-play: "\f16a";
+$fa-var-youtube-square: "\f166";
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
index e5903d8..2307dbd 100644
--- 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
@@ -1,33 +1,17 @@
/*!
- * Font Awesome 3.2.1
- * the iconic font designed for Bootstrap
- * ------------------------------------------------------------------------------
- * The full suite of pictographic icons, examples, and documentation can be
- * found at http://fontawesome.io. Stay up to date on Twitter at
- * http://twitter.com/fontawesome.
- *
- * License
- * ------------------------------------------------------------------------------
- * - The Font Awesome font is licensed under SIL OFL 1.1 -
- * http://scripts.sil.org/OFL
- * - Font Awesome CSS, LESS, and SASS files are licensed under MIT License -
- * http://opensource.org/licenses/mit-license.html
- * - Font Awesome documentation licensed under CC BY 3.0 -
- * http://creativecommons.org/licenses/by/3.0/
- * - Attribution is no longer required in Font Awesome 3.0, but much appreciated:
- * "Font Awesome by Dave Gandy - http://fontawesome.io"
- *
- * Author - Dave Gandy
- * ------------------------------------------------------------------------------
- * Email: dave@fontawesome.io
- * Twitter: http://twitter.com/davegandy
- * Work: Lead Product Designer @ Kyruus - http://kyruus.com
+ * Font Awesome 4.1.0 by @davegandy - http://fontawesome.io - @fontawesome
+ * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
*/
@import "variables";
@import "mixins";
@import "path";
@import "core";
-@import "bootstrap";
-@import "extras";
+@import "larger";
+@import "fixed-width";
+@import "list";
+@import "bordered-pulled";
+@import "spinning";
+@import "rotated-flipped";
+@import "stacked";
@import "icons";
sm-shop/src/main/webapp/resources/css/sm.css 80(+12 -68)
diff --git a/sm-shop/src/main/webapp/resources/css/sm.css b/sm-shop/src/main/webapp/resources/css/sm.css
index ed48f43..7c26a02 100755
--- a/sm-shop/src/main/webapp/resources/css/sm.css
+++ b/sm-shop/src/main/webapp/resources/css/sm.css
@@ -46,6 +46,14 @@
display: inline;
}
+/** signin **/
+
+#signinPane {
+ padding: 15px;
+ padding-bottom: 0px;
+}
+
+
/** shopping cart **/
.cartmessage {
margin-left:10px;
@@ -57,75 +65,7 @@
background-color: transparent;
}
-/** typeahead search **/
-.tt-dropdown-menu,
-.gist {
- text-align: left;
-}
-
-.typeahead,
-.tt-query,
-.tt-hint {
- width: 250px;
- padding: 8px 12px;
- font-size: 15px;
- line-height: 30px;
- border: 2px solid #ccc;
- outline: none;
-}
-
-.twitter-typeahead {
- vertical-align:top;
-}
-
-.typeahead {
- background-color: #fff;
-}
-
-.typeahead:focus {
- border: 2px solid #0097cf;
-}
-
-.tt-query {
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
- -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-}
-.tt-hint {
- color: #999
-}
-
-.tt-dropdown-menu {
- width: 276px;
- margin-top: 12px;
- padding: 8px 0;
- background-color: #fff;
- border: 1px solid #ccc;
- border: 1px solid rgba(0, 0, 0, 0.2);
- -webkit-border-radius: 8px;
- -moz-border-radius: 8px;
- border-radius: 8px;
- -webkit-box-shadow: 0 5px 10px rgba(0,0,0,.2);
- -moz-box-shadow: 0 5px 10px rgba(0,0,0,.2);
- box-shadow: 0 5px 10px rgba(0,0,0,.2);
-}
-
-.tt-suggestion {
- padding: 3px 20px;
- font-size: 18px;
- line-height: 24px;
-}
-
-.tt-suggestion.tt-is-under-cursor {
- color: #fff;
- background-color: #0097cf;
-
-}
-
-.tt-suggestion p {
- margin: 0;
-}
@@ -242,6 +182,7 @@ form input.valid {
background-color: #FFFFFF;
padding-bottom: 20px;
margin-bottom:18px;
+ height:50px;
}
#orderTableTitle {
@@ -303,6 +244,9 @@ form input.valid {
padding: 10px;
}
+.checkoutButton {
+ margin-top:5px;
+}
diff --git a/sm-shop/src/main/webapp/resources/js/functions.jsp b/sm-shop/src/main/webapp/resources/js/functions.jsp
index ec754c5..ef5e2fe 100644
--- a/sm-shop/src/main/webapp/resources/js/functions.jsp
+++ b/sm-shop/src/main/webapp/resources/js/functions.jsp
@@ -37,11 +37,12 @@ function getLoginErrorLabel() {
}
function emptyCartLabel(){
+ log('Display empty cart');
$("#cartMessage").html('<s:message code="cart.empty" text="Your Shopping cart is empty" />');
var labelItem = '<s:message code="label.generic.item" text="item" />';
$("#cartinfo").html('<span id="cartqty">(' + 0 + ' ' + labelItem + ')</span> <span id="cartprice"></span>');
- $('#shoppingcart').hide();
- $('#cartMessage').show();
+ $('#shoppingcart').hide();
+ $('#cartMessage').show();
}
function getInvalidEmailMessage() {
@@ -63,7 +64,15 @@ function getInvalidCheckPasswordMessage() {
function cartInfoLabel(cart){
var labelItem = getItemLabel(cart.quantity);
- $("#cartinfo").html('<span id="cartqty">(' + cart.quantity + ' ' + labelItem + ')</span> <span id="cartprice">' + cart.total + '</span>');
+ <!-- A configuration is required to display quantity and price -->
+ <c:choose>
+ <c:when test="${requestScope.CONFIGS['displayFullMiniCartInfo'] == true}">
+ $("#cartinfo").html('<span id="cartqty">(' + cart.quantity + ' ' + labelItem + ')</span> <span id="cartprice">' + cart.total + '</span>');
+ </c:when>
+ <c:otherwise>
+ $("#cartinfo").html('<span id="cartqty">(' + cart.quantity + ' ' + labelItem + ')</span>');
+ </c:otherwise>
+ </c:choose>
}
function cartSubTotal(cart) {
@@ -71,37 +80,6 @@ function cartSubTotal(cart) {
}
-/**
-* Builds the product container div from the product list
-**/
-function buildProductsList(productList, divProductsContainer) {
-
-
- for (var i = 0; i < productList.products.length; i++) {
- var productHtml = '<li 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"><a href="<c:url value="/shop/product/" />' + productList.products[i].description.friendlyUrl + '.html<sm:breadcrumbParam/>">';
- productHtml = productHtml + '<h4 class="name" itemprop="name">' + productList.products[i].description.name +'</h4></a>';
- if(productList.products[i].discounted) {
- productHtml = productHtml + '<h3><del>' + productList.products[i].originalPrice +'</del> <span class="specialPrice">' + productList.products[i].finalPrice + '</span></h3>';
- } else {
- productHtml = productHtml + '<h3>' + productList.products[i].finalPrice +'</h3>';
- }
- var productUrl = '<c:url value="/shop/product/" />' + productList.products[i].description.friendlyUrl + '.html<sm:breadcrumbParam/>';
- //if(ref!=null) {
- //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 + '<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>'
- productHtml = productHtml + '</li>'
- $(divProductsContainer).append(productHtml);
-
- }
-
- initBindings();
-}
</script>
\ No newline at end of file
diff --git a/sm-shop/src/main/webapp/resources/js/login.js b/sm-shop/src/main/webapp/resources/js/login.js
index ae98d05..ec5c97b 100644
--- a/sm-shop/src/main/webapp/resources/js/login.js
+++ b/sm-shop/src/main/webapp/resources/js/login.js
@@ -1,18 +1,38 @@
$(function() {
$("#signinDrop").click(function(e){
+ log('Signin drop down');
$("#loginError").hide();
e.preventDefault();
});
+
+ $('.dropdown-menu').click(function(e) {
+ log('Drop down menu clicked');
+ e.preventDefault();
+ e.stopPropagation();
+ });
+
+ $('#registerLink').click(function(e) {
+ e.preventDefault();
+ e.stopPropagation();
+ });
+
+ $("#login-button").click(function(e) {
+ log('Login');
+ login();
+ });
- $("#login").submit(function(e) {
- e.preventDefault();//do not submit form
-
+ });
+
+ function login() {
+ //$("#login").submit(function(e) {
+ //e.preventDefault();//do not submit form
+ log('Signin');
$("#loginError").hide();
- var userName = $(this).find('#userName').val();
- var password = $(this).find('#password').val();
- var storeCode = $(this).find('#storeCode').val();
+ var userName = $('#signin_userName').val();
+ var password = $('#signin_password').val();
+ var storeCode = $('#signin_storeCode').val();
if(userName=='' || password=='') {
$("#loginError").html(getLoginErrorLabel());
$("#loginError").show();
@@ -20,6 +40,8 @@
}
$('#signinPane').showLoading();
+
+ log('Username ' + userName + ' password ' + password + ' storeCode ' + storeCode);
$.ajax({
type: "POST",
@@ -30,7 +52,7 @@
dataType:'json',
'success': function(response) {
$('#signinPane').hideLoading();
- //console.log(response);
+ log(response);
if (response.response.status==0) {//success
//SHOPPING_CART
console.log(response.response.SHOPPING_CART);
@@ -50,5 +72,5 @@
}
});
return false;
- });
- });
\ No newline at end of file
+ //});
+ }
\ No newline at end of file
diff --git a/sm-shop/src/main/webapp/resources/js/shop-functions.js b/sm-shop/src/main/webapp/resources/js/shop-functions.js
index 3df6a1c..044ce97 100644
--- a/sm-shop/src/main/webapp/resources/js/shop-functions.js
+++ b/sm-shop/src/main/webapp/resources/js/shop-functions.js
@@ -1,3 +1,6 @@
+var trace = 1;
+
+
function validateEmail($email) {
var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
if ( $email.length > 0 && emailReg.test($email)) {
@@ -11,6 +14,12 @@ function emptyString($value) {
return !$value || !/[^\s]+/.test($value);
}
+function log(value) {
+ if(trace==1) {
+ console.log(value);
+ }
+}
+
function loadProducts(url,divProductsContainer) {
$(divProductsContainer).showLoading();
diff --git a/sm-shop/src/main/webapp/resources/js/shopping-cart.js b/sm-shop/src/main/webapp/resources/js/shopping-cart.js
index d579f39..2ce6efb 100644
--- a/sm-shop/src/main/webapp/resources/js/shopping-cart.js
+++ b/sm-shop/src/main/webapp/resources/js/shopping-cart.js
@@ -10,7 +10,7 @@
function initMiniCart() {
var cartCode = getCartCode();
- //console.log('Cart code ' + cartCode);
+ log('Cart code ' + cartCode);
if(cartCode!=null) {
displayMiniCartSummary(cartCode);
}
@@ -35,6 +35,7 @@
});
$("#open-cart").click(function(e) {
+ log('Open cart');
displayMiniCart();
});
@@ -225,11 +226,8 @@ function updateCart(cartDiv) {
function displayMiniCart(){
var cartCode = getCartCode();
-
- if(cartCode==null) {
- emptyCartLabel();
- return;
- }
+
+ log('Display cart content');
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
index 5f4f25a..e32c14e 100644
--- a/sm-shop/src/main/webapp/resources/templates/bootstrap/css/theme.css
+++ b/sm-shop/src/main/webapp/resources/templates/bootstrap/css/theme.css
@@ -25,6 +25,9 @@ body{
.row-fluid ul.thumbnails li.span4:nth-child(3n + 4) { margin-left : 0px; }
.row-fluid ul.thumbnails li.span3:nth-child(4n + 5) { margin-left : 0px; }
+.common-row {
+ margin-left:0px;
+}
a:link,a:visited{
color:#666;
@@ -324,6 +327,10 @@ a:hover{
color: #FF8C00;
font-style: bold;
}
+
+ .total-box-grand-total {
+ float:right;
+ }
.cartbox {
@@ -502,4 +509,74 @@ ul.social li{float:left;margin-right:10px;}
.productMainImage {
margin-bottom:20px;
+}
+
+/** typeahead search **/
+.tt-dropdown-menu,
+.gist {
+ text-align: left;
+}
+
+.typeahead,
+.tt-query,
+.tt-hint {
+ width: 250px;
+ padding: 8px 12px;
+ font-size: 15px;
+ line-height: 30px;
+ border: 2px solid #ccc;
+ outline: none;
+}
+
+.twitter-typeahead {
+ vertical-align:top;
+}
+
+.typeahead {
+ background-color: #fff;
+}
+
+.typeahead:focus {
+ border: 2px solid #0097cf;
+}
+
+.tt-query {
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+}
+
+.tt-hint {
+ color: #999
+}
+
+.tt-dropdown-menu {
+ width: 276px;
+ margin-top: 12px;
+ padding: 8px 0;
+ background-color: #fff;
+ border: 1px solid #ccc;
+ border: 1px solid rgba(0, 0, 0, 0.2);
+ -webkit-border-radius: 8px;
+ -moz-border-radius: 8px;
+ border-radius: 8px;
+ -webkit-box-shadow: 0 5px 10px rgba(0,0,0,.2);
+ -moz-box-shadow: 0 5px 10px rgba(0,0,0,.2);
+ box-shadow: 0 5px 10px rgba(0,0,0,.2);
+}
+
+.tt-suggestion {
+ padding: 3px 20px;
+ font-size: 18px;
+ line-height: 24px;
+}
+
+.tt-suggestion.tt-is-under-cursor {
+ color: #fff;
+ background-color: #0097cf;
+
+}
+
+.tt-suggestion p {
+ margin: 0;
}
\ No newline at end of file
diff --git a/sm-shop/src/main/webapp/WEB-INF/shopizer-tags.tld b/sm-shop/src/main/webapp/WEB-INF/shopizer-tags.tld
index c19abb6..c0e3974 100644
--- a/sm-shop/src/main/webapp/WEB-INF/shopizer-tags.tld
+++ b/sm-shop/src/main/webapp/WEB-INF/shopizer-tags.tld
@@ -263,7 +263,33 @@
</tag>
+<tag>
+ <!-- Decides if the link anlalyzed has to be handled as the active link -->
+ <name>activeLink</name>
+ <tag-class>com.salesmanager.web.tags.ActiveLinkTag</tag-class>
+ <body-content>scriptless</body-content>
+
+ <attribute>
+ <name>linkCode</name>
+ <required>true</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>java.lang.String</type>
+ </attribute>
+ <attribute>
+ <name>activeReturnCode</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ </attribute>
+ <attribute>
+ <name>inactiveReturnCode</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ </attribute>
+
+</tag>
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
index 4f34411..88db02f 100644
--- 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
@@ -45,8 +45,10 @@
<!-- templates -->
+ <!-- Add new templates in the list, should point to pages/shop/templates and resources/templates -->
<util:list id="templates" value-type="java.lang.String">
<value>bootstrap</value>
+ <value>bootstrap3</value>
</util:list>
<bean id="initData" class="com.salesmanager.web.init.data.InitStoreData"/>